# What’s new in 0.24.1 (February 3, 2019)

Warning

The 0.24.x series of releases will be the last to support Python 2. Future feature releases will support Python 3 only. See Dropping Python 2.7 for more.

These are the changes in pandas 0.24.1. See Release notes for a full changelog including other versions of pandas. See What’s new in 0.24.0 (January 25, 2019) for the 0.24.0 changelog.

## API changes

### Changing the `sort` parameter for `Index` set operations

The default `sort` value for `Index.union()` has changed from `True` to `None` (GH24959). The default behavior, however, remains the same: the result is sorted, unless

1. `self` and `other` are identical

2. `self` or `other` is empty

3. `self` or `other` contain values that can not be compared (a `RuntimeWarning` is raised).

This change will allow `sort=True` to mean “always sort” in a future release.

The same change applies to `Index.difference()` and `Index.symmetric_difference()`, which would not sort the result when the values could not be compared.

The `sort` option for `Index.intersection()` has changed in three ways.

1. The default has changed from `True` to `False`, to restore the pandas 0.23.4 and earlier behavior of not sorting by default.

2. The behavior of `sort=True` can now be obtained with `sort=None`. This will sort the result only if the values in `self` and `other` are not identical.

3. The value `sort=True` is no longer allowed. A future version of pandas will properly support `sort=True` meaning “always sort”.

## Fixed regressions

- Fixed regression in `DataFrame.to_dict()` with `records` orient raising an `AttributeError` when the `DataFrame` contained more than 255 columns, or wrongly converting column names that were not valid python identifiers (GH24939, GH24940).

- Fixed regression in `read_sql()` when passing certain queries with MySQL/pymysql (GH24988).

- Fixed regression in `Index.intersection` incorrectly sorting the values by default (GH24959).

- Fixed regression in `merge()` when merging an empty `DataFrame` with multiple timezone-aware columns on one of the timezone-aware columns (GH25014).

- Fixed regression in `Series.rename_axis()` and `DataFrame.rename_axis()` where passing `None` failed to remove the axis name (GH25034)

- Fixed regression in `to_timedelta()` with `box=False` incorrectly returning a `datetime64` object instead of a `timedelta64` object (GH24961)

- Fixed regression where custom hashable types could not be used as column keys in `DataFrame.set_index()` (GH24969)

## Bug fixes

Reshaping

- Bug in `DataFrame.groupby()` with `Grouper` when there is a time change (DST) and grouping frequency is `'1d'` (GH24972)

Visualization

- Fixed the warning for implicitly registered matplotlib converters not showing. See Restore Matplotlib datetime converter registration for more (GH24963).

Other

- Fixed AttributeError when printing a DataFrame’s HTML repr after accessing the IPython config object (GH25036)

## Contributors

A total of 7 people contributed patches to this release. People with a “+” by their names contributed a patch for the first time.

- Alex Buchkovsky

- Roman Yurchak

- h-vetinari

- jbrockmendel

- Jeremy Schendel

- Joris Van den Bossche

- Tom Augspurger