What’s new in 1.0.4 (May 28, 2020)

These are the changes in pandas 1.0.4. See Release notes for a full changelog including other versions of pandas.

Fixed regressions

  • Fix regression where Series.isna() and DataFrame.isna() would raise for categorical dtype when pandas.options.mode.use_inf_as_na was set to True (GH33594)

  • Fix regression in GroupBy.first() and GroupBy.last() where None is not preserved in object dtype (GH32800)

  • Fix regression in DataFrame reductions using numeric_only=True and ExtensionArrays (GH33256).

  • Fix performance regression in memory_usage(deep=True) for object dtype (GH33012)

  • Fix regression where Categorical.replace() would replace with NaN whenever the new value and replacement value were equal (GH33288)

  • Fix regression where an ordered Categorical containing only NaN values would raise rather than returning NaN when taking the minimum or maximum (GH33450)

  • Fix regression in DataFrameGroupBy.agg() with dictionary input losing ExtensionArray dtypes (GH32194)

  • Fix to preserve the ability to index with the “nearest” method with xarray’s CFTimeIndex, an Index subclass (pydata/xarray#3751, GH32905).

  • Fix regression in DataFrame.describe() raising TypeError: unhashable type: 'dict' (GH32409)

  • Fix regression in DataFrame.replace() casts columns to object dtype if items in to_replace not in values (GH32988)

  • Fix regression in Series.groupby() would raise ValueError when grouping by PeriodIndex level (GH34010)

  • Fix regression in GroupBy.rolling.apply() ignores args and kwargs parameters (GH33433)

  • Fix regression in error message with np.min or np.max on unordered Categorical (GH33115)

  • Fix regression in DataFrame.loc() and Series.loc() throwing an error when a datetime64[ns, tz] value is provided (GH32395)

Bug fixes

  • Bug in SeriesGroupBy.first(), SeriesGroupBy.last(), SeriesGroupBy.min(), and SeriesGroupBy.max() returning floats when applied to nullable Booleans (GH33071)

  • Bug in Rolling.min() and Rolling.max(): Growing memory usage after multiple calls when using a fixed window (GH30726)

  • Bug in to_parquet() was not raising PermissionError when writing to a private s3 bucket with invalid creds. (GH27679)

  • Bug in to_csv() was silently failing when writing to an invalid s3 bucket. (GH32486)

  • Bug in read_parquet() was raising a FileNotFoundError when passed an s3 directory path. (GH26388)

  • Bug in to_parquet() was throwing an AttributeError when writing a partitioned parquet file to s3 (GH27596)

  • Bug in GroupBy.quantile() causes the quantiles to be shifted when the by axis contains NaN (GH33200, GH33569)


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

  • Daniel Saxton

  • JDkuba +

  • Joris Van den Bossche

  • Kaiqi Dong

  • Mabel Villalba

  • MeeseeksMachine

  • MomIsBestFriend

  • Pandas Development Team

  • Simon Hawkins

  • Spencer Clark +

  • Tom Augspurger

  • Vikas Pandey +

  • alimcmaster1

  • h-vishal +

  • jbrockmendel

  • mproszewska +

  • neilkg +

  • rebecca-palmer +