.. _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 `_ 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