What’s new in 0.25.1 (August 21, 2019)¶
These are the changes in pandas 0.25.1. See Release Notes for a full changelog including other versions of pandas.
I/O and LZMA¶
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 (:issue: 27575). 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.
Bug fixes¶
Categorical¶
- Bug in
Categorical.fillna()
that would replace all values, not just those that areNaN
(GH26215)
Datetimelike¶
- Bug in
to_datetime()
where passing a timezone-naiveDatetimeArray
orDatetimeIndex
andutc=True
would incorrectly return a timezone-naive result (GH27733) - Bug in
Period.to_timestamp()
where aPeriod
outside theTimestamp
implementation bounds (roughly 1677-09-21 to 2262-04-11) would return an incorrectTimestamp
instead of raisingOutOfBoundsDatetime
(GH19643) - Bug in iterating over
DatetimeIndex
when the underlying data is read-only (GH28055)
Timezones¶
- Bug in
Index
where a numpy object array with a timezone awareTimestamp
andnp.nan
would not return aDatetimeIndex
(GH27011)
Numeric¶
- Bug in
Series.interpolate()
when using a timezone awareDatetimeIndex
(GH27548) - Bug when printing negative floating point complex numbers would raise an
IndexError
(GH27484) - Bug where
DataFrame
arithmetic operators such asDataFrame.mul()
with aSeries
with axis=1 would raise anAttributeError
onDataFrame
larger than the minimum threshold to invoke numexpr (GH27636) - Bug in
DataFrame
arithmetic where missing values in results were incorrectly masked withNaN
instead ofInf
(GH27464)
Conversion¶
- Improved the warnings for the deprecated methods
Series.real()
andSeries.imag()
(GH27610)
Indexing¶
- Bug in partial-string indexing returning a NumPy array rather than a
Series
when indexing with a scalar like.loc['2015']
(GH27516) - 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). - Fix regression in
.ix
fallback with anIntervalIndex
(GH27865).
Missing¶
- Bug in
pandas.isnull()
orpandas.isna()
when the input is a type e.g.type(pandas.Series())
(GH27482)
I/O¶
- Avoid calling
S3File.s3
when reading parquet, as this was removed in s3fs version 0.3.0 (GH27756) - Better error message when a negative header is passed in
pandas.read_csv()
(GH27779) - Follow the
min_rows
display option (introduced in v0.25.0) correctly in the HTML repr in the notebook (GH27991).
Plotting¶
- Added a
pandas_plotting_backends
entrypoint group for registering plot backends. See Plotting backends for more (GH26747). - Fixed the re-instatement of Matplotlib datetime converters after calling
pandas.plotting.deregister_matplotlib_converters()
(GH27481). - Fix compatibility issue with matplotlib when passing a pandas
Index
to a plot call (GH27775).
Groupby/resample/rolling¶
- Fixed regression in
pands.core.groupby.DataFrameGroupBy.quantile()
raising when multiple quantiles are given (GH27526) - Bug in
pandas.core.groupby.DataFrameGroupBy.transform()
where applying a timezone conversion lambda function would drop timezone information (GH27496) - Bug in
pandas.core.groupby.GroupBy.nth()
whereobserved=False
was being ignored for Categorical groupers (GH26385) - Bug in windowing over read-only arrays (GH27766)
- Fixed segfault in pandas.core.groupby.DataFrameGroupBy.quantile when an invalid quantile was passed (GH27470)
Reshaping¶
- A
KeyError
is now raised if.unstack()
is called on aSeries
orDataFrame
with a flatIndex
passing a name which is not the correct one (GH18303) - Bug
merge_asof()
could not mergeTimedelta
objects when passing tolerance kwarg (GH27642) - Bug in
DataFrame.crosstab()
whenmargins
set toTrue
andnormalize
is notFalse
, an error is raised. (GH27500) DataFrame.join()
now suppresses theFutureWarning
when the sort parameter is specified (GH21952)- Bug in
DataFrame.join()
raising with readonly arrays (GH27943)
Contributors¶
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