|
1 | 1 | .. _whatsnew_0251: |
2 | 2 |
|
3 | | -What's new in 0.25.1 (July XX, 2019) |
4 | | ------------------------------------- |
5 | | - |
6 | | -Enhancements |
7 | | -~~~~~~~~~~~~ |
| 3 | +What's new in 0.25.1 (August 21, 2019) |
| 4 | +-------------------------------------- |
8 | 5 |
|
| 6 | +These are the changes in pandas 0.25.1. See :ref:`release` for a full changelog |
| 7 | +including other versions of pandas. |
9 | 8 |
|
10 | | -.. _whatsnew_0251.enhancements.other: |
11 | | - |
12 | | -Other enhancements |
13 | | -^^^^^^^^^^^^^^^^^^ |
| 9 | +I/O and LZMA |
| 10 | +~~~~~~~~~~~~ |
14 | 11 |
|
15 | | -- |
16 | | -- |
17 | | -- |
| 12 | +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`). |
| 13 | +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`. |
| 14 | +A possible fix for the lack of the `lzma` module is to ensure you have the necessary libraries and then re-install Python. |
| 15 | +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. |
18 | 16 |
|
19 | 17 | .. _whatsnew_0251.bug_fixes: |
20 | 18 |
|
21 | 19 | Bug fixes |
22 | 20 | ~~~~~~~~~ |
23 | 21 |
|
24 | | - |
25 | 22 | Categorical |
26 | 23 | ^^^^^^^^^^^ |
27 | 24 |
|
28 | | -- |
29 | | -- |
30 | | -- |
| 25 | +- Bug in :meth:`Categorical.fillna` that would replace all values, not just those that are ``NaN`` (:issue:`26215`) |
31 | 26 |
|
32 | 27 | Datetimelike |
33 | 28 | ^^^^^^^^^^^^ |
34 | | -- Bug in :func:`to_datetime` where passing a timezone-naive :class:`DatetimeArray` or :class:`DatetimeIndex` and ``utc=True`` would incorrectly return a timezone-naive result (:issue:`27733`) |
35 | | -- |
36 | | -- |
37 | | -- |
38 | 29 |
|
39 | | -Timedelta |
40 | | -^^^^^^^^^ |
41 | | - |
42 | | -- |
43 | | -- |
44 | | -- |
| 30 | +- Bug in :func:`to_datetime` where passing a timezone-naive :class:`DatetimeArray` or :class:`DatetimeIndex` and ``utc=True`` would incorrectly return a timezone-naive result (:issue:`27733`) |
| 31 | +- Bug in :meth:`Period.to_timestamp` where a :class:`Period` outside the :class:`Timestamp` implementation bounds (roughly 1677-09-21 to 2262-04-11) would return an incorrect :class:`Timestamp` instead of raising ``OutOfBoundsDatetime`` (:issue:`19643`) |
| 32 | +- Bug in iterating over :class:`DatetimeIndex` when the underlying data is read-only (:issue:`28055`) |
45 | 33 |
|
46 | 34 | Timezones |
47 | 35 | ^^^^^^^^^ |
48 | 36 |
|
49 | 37 | - Bug in :class:`Index` where a numpy object array with a timezone aware :class:`Timestamp` and ``np.nan`` would not return a :class:`DatetimeIndex` (:issue:`27011`) |
50 | | -- |
51 | | -- |
52 | 38 |
|
53 | 39 | Numeric |
54 | 40 | ^^^^^^^ |
| 41 | + |
55 | 42 | - Bug in :meth:`Series.interpolate` when using a timezone aware :class:`DatetimeIndex` (:issue:`27548`) |
56 | 43 | - Bug when printing negative floating point complex numbers would raise an ``IndexError`` (:issue:`27484`) |
57 | | -- |
58 | | -- |
| 44 | +- Bug where :class:`DataFrame` arithmetic operators such as :meth:`DataFrame.mul` with a :class:`Series` with axis=1 would raise an ``AttributeError`` on :class:`DataFrame` larger than the minimum threshold to invoke numexpr (:issue:`27636`) |
| 45 | +- Bug in :class:`DataFrame` arithmetic where missing values in results were incorrectly masked with ``NaN`` instead of ``Inf`` (:issue:`27464`) |
59 | 46 |
|
60 | 47 | Conversion |
61 | 48 | ^^^^^^^^^^ |
62 | 49 |
|
63 | 50 | - Improved the warnings for the deprecated methods :meth:`Series.real` and :meth:`Series.imag` (:issue:`27610`) |
64 | | -- |
65 | | -- |
66 | | - |
67 | | -Strings |
68 | | -^^^^^^^ |
69 | | - |
70 | | -- |
71 | | -- |
72 | | -- |
73 | | - |
74 | 51 |
|
75 | 52 | Interval |
76 | 53 | ^^^^^^^^ |
| 54 | + |
77 | 55 | - Bug in :class:`IntervalIndex` where `dir(obj)` would raise ``ValueError`` (:issue:`27571`) |
78 | | -- |
79 | | -- |
80 | | -- |
81 | 56 |
|
82 | 57 | Indexing |
83 | 58 | ^^^^^^^^ |
84 | 59 |
|
85 | 60 | - Bug in partial-string indexing returning a NumPy array rather than a ``Series`` when indexing with a scalar like ``.loc['2015']`` (:issue:`27516`) |
86 | 61 | - Break reference cycle involving :class:`Index` and other index classes to allow garbage collection of index objects without running the GC. (:issue:`27585`, :issue:`27840`) |
87 | 62 | - Fix regression in assigning values to a single column of a DataFrame with a ``MultiIndex`` columns (:issue:`27841`). |
88 | | -- |
| 63 | +- Fix regression in ``.ix`` fallback with an ``IntervalIndex`` (:issue:`27865`). |
89 | 64 |
|
90 | 65 | Missing |
91 | 66 | ^^^^^^^ |
92 | 67 |
|
93 | | -- |
94 | | -- |
95 | | -- |
96 | | - |
97 | | -MultiIndex |
98 | | -^^^^^^^^^^ |
99 | | - |
100 | | -- |
101 | | -- |
102 | | -- |
| 68 | +- Bug in :func:`pandas.isnull` or :func:`pandas.isna` when the input is a type e.g. ``type(pandas.Series())`` (:issue:`27482`) |
103 | 69 |
|
104 | 70 | I/O |
105 | 71 | ^^^ |
106 | 72 |
|
107 | 73 | - Avoid calling ``S3File.s3`` when reading parquet, as this was removed in s3fs version 0.3.0 (:issue:`27756`) |
108 | | -- |
109 | | -- |
| 74 | +- Better error message when a negative header is passed in :func:`pandas.read_csv` (:issue:`27779`) |
| 75 | +- Follow the ``min_rows`` display option (introduced in v0.25.0) correctly in the HTML repr in the notebook (:issue:`27991`). |
110 | 76 |
|
111 | 77 | Plotting |
112 | 78 | ^^^^^^^^ |
113 | 79 |
|
114 | | -- Added a pandas_plotting_backends entrypoint group for registering plot backends. See :ref:`extending.plotting-backends` for more (:issue:`26747`). |
| 80 | +- Added a ``pandas_plotting_backends`` entrypoint group for registering plot backends. See :ref:`extending.plotting-backends` for more (:issue:`26747`). |
| 81 | +- Fixed the re-instatement of Matplotlib datetime converters after calling |
| 82 | + :meth:`pandas.plotting.deregister_matplotlib_converters` (:issue:`27481`). |
115 | 83 | - Fix compatibility issue with matplotlib when passing a pandas ``Index`` to a plot call (:issue:`27775`). |
116 | | -- |
117 | 84 |
|
118 | 85 | Groupby/resample/rolling |
119 | 86 | ^^^^^^^^^^^^^^^^^^^^^^^^ |
120 | 87 |
|
| 88 | +- Fixed regression in :meth:`pands.core.groupby.DataFrameGroupBy.quantile` raising when multiple quantiles are given (:issue:`27526`) |
121 | 89 | - Bug in :meth:`pandas.core.groupby.DataFrameGroupBy.transform` where applying a timezone conversion lambda function would drop timezone information (:issue:`27496`) |
| 90 | +- Bug in :meth:`pandas.core.groupby.GroupBy.nth` where ``observed=False`` was being ignored for Categorical groupers (:issue:`26385`) |
122 | 91 | - Bug in windowing over read-only arrays (:issue:`27766`) |
123 | 92 | - Fixed segfault in `pandas.core.groupby.DataFrameGroupBy.quantile` when an invalid quantile was passed (:issue:`27470`) |
124 | | -- |
125 | 93 |
|
126 | 94 | Reshaping |
127 | 95 | ^^^^^^^^^ |
128 | 96 |
|
129 | 97 | - A ``KeyError`` is now raised if ``.unstack()`` is called on a :class:`Series` or :class:`DataFrame` with a flat :class:`Index` passing a name which is not the correct one (:issue:`18303`) |
130 | | -- Bug in :meth:`DataFrame.crosstab` when ``margins`` set to ``True`` and ``normalize`` is not ``False``, an error is raised. (:issue:`27500`) |
| 98 | +- Bug :meth:`merge_asof` could not merge :class:`Timedelta` objects when passing `tolerance` kwarg (:issue:`27642`) |
| 99 | +- Bug in :meth:`DataFrame.crosstab` when ``margins`` set to ``True`` and ``normalize`` is not ``False``, an error is raised. (:issue:`27500`) |
131 | 100 | - :meth:`DataFrame.join` now suppresses the ``FutureWarning`` when the sort parameter is specified (:issue:`21952`) |
132 | | -- |
| 101 | +- Bug in :meth:`DataFrame.join` raising with readonly arrays (:issue:`27943`) |
133 | 102 |
|
134 | 103 | Sparse |
135 | 104 | ^^^^^^ |
136 | | -- Bug in reductions for :class:`Series` with Sparse dtypes (:issue:`27080`) |
137 | | -- |
138 | | -- |
139 | | -- |
140 | 105 |
|
141 | | - |
142 | | -Build Changes |
143 | | -^^^^^^^^^^^^^ |
144 | | - |
145 | | -- |
146 | | -- |
147 | | -- |
148 | | - |
149 | | -ExtensionArray |
150 | | -^^^^^^^^^^^^^^ |
151 | | - |
152 | | -- |
153 | | -- |
154 | | -- |
| 106 | +- Bug in reductions for :class:`Series` with Sparse dtypes (:issue:`27080`) |
155 | 107 |
|
156 | 108 | Other |
157 | 109 | ^^^^^ |
| 110 | + |
158 | 111 | - Bug in :meth:`Series.replace` and :meth:`DataFrame.replace` when replacing timezone-aware timestamps using a dict-like replacer (:issue:`27720`) |
159 | | -- |
160 | | -- |
161 | | -- |
| 112 | +- Bug in :meth:`Series.rename` when using a custom type indexer. Now any value that isn't callable or dict-like is treated as a scalar. (:issue:`27814`) |
162 | 113 |
|
163 | 114 | .. _whatsnew_0.251.contributors: |
164 | 115 |
|
|
0 commit comments