Back to Pandas

What's new in 0.24.1 (February 3, 2019)

doc/source/whatsnew/v0.24.1.rst

3.1.0.dev03.9 KB
Original Source

.. _whatsnew_0241:

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 <https://pandas.pydata.org/pandas-docs/version/0.24/install.html#install-dropping-27>_ for more.

{{ header }}

These are the changes in pandas 0.24.1. See :ref:release for a full changelog including other versions of pandas. See :ref:whatsnew_0240 for the 0.24.0 changelog.

.. _whatsnew_0241.api:

API changes


Changing the ``sort`` parameter for :class:`Index` set operations
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The default ``sort`` value for :meth:`Index.union` has changed from ``True`` to ``None`` (:issue:`24959`).
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 :meth:`Index.difference` and :meth:`Index.symmetric_difference`, which
would not sort the result when the values could not be compared.

The ``sort`` option for :meth:`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".

.. _whatsnew_0241.regressions:

Fixed regressions
  • Fixed regression in :meth: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 (:issue:24939, :issue:24940).
  • Fixed regression in :func:read_sql when passing certain queries with MySQL/pymysql (:issue:24988).
  • Fixed regression in :class:Index.intersection incorrectly sorting the values by default (:issue:24959).
  • Fixed regression in :func:merge when merging an empty DataFrame with multiple timezone-aware columns on one of the timezone-aware columns (:issue:25014).
  • Fixed regression in :meth:Series.rename_axis and :meth:DataFrame.rename_axis where passing None failed to remove the axis name (:issue:25034)
  • Fixed regression in :func:to_timedelta with box=False incorrectly returning a datetime64 object instead of a timedelta64 object (:issue:24961)
  • Fixed regression where custom hashable types could not be used as column keys in :meth:DataFrame.set_index (:issue:24969)

.. _whatsnew_0241.bug_fixes:

Bug fixes


**Reshaping**

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

**Visualization**

- Fixed the warning for implicitly registered matplotlib converters not showing. See :ref:`whatsnew_0211.converters` for more (:issue:`24963`).

**Other**

- Fixed AttributeError when printing a DataFrame's HTML repr after accessing the IPython config object (:issue:`25036`)

.. _whatsnew_0.241.contributors:

Contributors

.. Including the contributors hardcoded for this release, as backporting with MeeseeksDev loses the commit authors

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