These are the changes in pandas 0.25.1. See Release notes for a full changelog including other versions of pandas.
Some users may unknowingly have an incomplete Python installation lacking the lzma module from the standard library. In this case, import pandas failed due to an ImportError (GH27575). pandas will now warn, rather than raising an ImportError if the lzma module is not present. Any subsequent attempt to use lzma methods will raise a RuntimeError. A possible fix for the lack of the lzma module is to ensure you have the necessary libraries and then re-install Python. For example, on MacOS installing Python with pyenv may lead to an incomplete Python installation due to unmet system dependencies at compilation time (like xz). Compilation will succeed, but Python might fail at run time. The issue can be solved by installing the necessary dependencies and then re-installing Python.
lzma
import pandas
ImportError
RuntimeError
pyenv
xz
Bug in Categorical.fillna() that would replace all values, not just those that are NaN (GH26215)
Categorical.fillna()
NaN
Bug in to_datetime() where passing a timezone-naive DatetimeArray or DatetimeIndex and utc=True would incorrectly return a timezone-naive result (GH27733)
to_datetime()
DatetimeArray
DatetimeIndex
utc=True
Bug in Period.to_timestamp() where a Period outside the Timestamp implementation bounds (roughly 1677-09-21 to 2262-04-11) would return an incorrect Timestamp instead of raising OutOfBoundsDatetime (GH19643)
Period.to_timestamp()
Period
Timestamp
OutOfBoundsDatetime
Bug in iterating over DatetimeIndex when the underlying data is read-only (GH28055)
Bug in Index where a numpy object array with a timezone aware Timestamp and np.nan would not return a DatetimeIndex (GH27011)
Index
np.nan
Bug in Series.interpolate() when using a timezone aware DatetimeIndex (GH27548)
Series.interpolate()
Bug when printing negative floating point complex numbers would raise an IndexError (GH27484)
IndexError
Bug where DataFrame arithmetic operators such as DataFrame.mul() with a Series with axis=1 would raise an AttributeError on DataFrame larger than the minimum threshold to invoke numexpr (GH27636)
DataFrame
DataFrame.mul()
Series
AttributeError
Bug in DataFrame arithmetic where missing values in results were incorrectly masked with NaN instead of Inf (GH27464)
Inf
Improved the warnings for the deprecated methods Series.real() and Series.imag() (GH27610)
Series.real()
Series.imag()
Bug in IntervalIndex where dir(obj) would raise ValueError (GH27571)
IntervalIndex
dir(obj)
ValueError
Bug in partial-string indexing returning a NumPy array rather than a Series when indexing with a scalar like .loc['2015'] (GH27516)
.loc['2015']
Break reference cycle involving Index and other index classes to allow garbage collection of index objects without running the GC. (GH27585, GH27840)
Fix regression in assigning values to a single column of a DataFrame with a MultiIndex columns (GH27841).
MultiIndex
Fix regression in .ix fallback with an IntervalIndex (GH27865).
.ix
Bug in pandas.isnull() or pandas.isna() when the input is a type e.g. type(pandas.Series()) (GH27482)
pandas.isnull()
pandas.isna()
type(pandas.Series())
Avoid calling S3File.s3 when reading parquet, as this was removed in s3fs version 0.3.0 (GH27756)
S3File.s3
Better error message when a negative header is passed in pandas.read_csv() (GH27779)
pandas.read_csv()
Follow the min_rows display option (introduced in v0.25.0) correctly in the HTML repr in the notebook (GH27991).
min_rows
Added a pandas_plotting_backends entrypoint group for registering plot backends. See Plotting backends for more (GH26747).
pandas_plotting_backends
Fixed the re-instatement of Matplotlib datetime converters after calling pandas.plotting.deregister_matplotlib_converters() (GH27481).
pandas.plotting.deregister_matplotlib_converters()
Fix compatibility issue with matplotlib when passing a pandas Index to a plot call (GH27775).
Fixed regression in pands.core.groupby.DataFrameGroupBy.quantile() raising when multiple quantiles are given (GH27526)
pands.core.groupby.DataFrameGroupBy.quantile()
Bug in pandas.core.groupby.DataFrameGroupBy.transform() where applying a timezone conversion lambda function would drop timezone information (GH27496)
pandas.core.groupby.DataFrameGroupBy.transform()
Bug in pandas.core.groupby.GroupBy.nth() where observed=False was being ignored for Categorical groupers (GH26385)
pandas.core.groupby.GroupBy.nth()
observed=False
Bug in windowing over read-only arrays (GH27766)
Fixed segfault in pandas.core.groupby.DataFrameGroupBy.quantile when an invalid quantile was passed (GH27470)
pandas.core.groupby.DataFrameGroupBy.quantile
A KeyError is now raised if .unstack() is called on a Series or DataFrame with a flat Index passing a name which is not the correct one (GH18303)
KeyError
.unstack()
Bug merge_asof() could not merge Timedelta objects when passing tolerance kwarg (GH27642)
merge_asof()
Timedelta
tolerance
Bug in DataFrame.crosstab() when margins set to True and normalize is not False, an error is raised. (GH27500)
DataFrame.crosstab()
margins
True
normalize
False
DataFrame.join() now suppresses the FutureWarning when the sort parameter is specified (GH21952)
DataFrame.join()
FutureWarning
Bug in DataFrame.join() raising with readonly arrays (GH27943)
Bug in reductions for Series with Sparse dtypes (GH27080)
Bug in Series.replace() and DataFrame.replace() when replacing timezone-aware timestamps using a dict-like replacer (GH27720)
Series.replace()
DataFrame.replace()
Bug in Series.rename() when using a custom type indexer. Now any value that isn’t callable or dict-like is treated as a scalar. (GH27814)
Series.rename()
A total of 5 people contributed patches to this release. People with a “+” by their names contributed a patch for the first time.
Jeff Reback
Joris Van den Bossche
MeeseeksMachine +
Tom Augspurger
jbrockmendel