|
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 |
| -- Bug in :meth:`Categorical.fillna` would replace all values, not just those that are ``NaN`` (:issue:`26215`) |
29 |
| -- |
| 25 | +- Bug in :meth:`Categorical.fillna` that would replace all values, not just those that are ``NaN`` (:issue:`26215`) |
30 | 26 |
|
31 | 27 | Datetimelike
|
32 | 28 | ^^^^^^^^^^^^
|
33 |
| -- 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`) |
34 |
| -- |
35 |
| -- |
36 |
| -- |
37 | 29 |
|
38 |
| -Timedelta |
39 |
| -^^^^^^^^^ |
40 |
| - |
41 |
| -- |
42 |
| -- |
43 |
| -- |
| 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`) |
44 | 33 |
|
45 | 34 | Timezones
|
46 | 35 | ^^^^^^^^^
|
47 | 36 |
|
48 | 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`)
|
49 |
| -- |
50 |
| -- |
51 | 38 |
|
52 | 39 | Numeric
|
53 | 40 | ^^^^^^^
|
| 41 | + |
54 | 42 | - Bug in :meth:`Series.interpolate` when using a timezone aware :class:`DatetimeIndex` (:issue:`27548`)
|
55 | 43 | - Bug when printing negative floating point complex numbers would raise an ``IndexError`` (:issue:`27484`)
|
56 |
| -- |
57 |
| -- |
| 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`) |
58 | 46 |
|
59 | 47 | Conversion
|
60 | 48 | ^^^^^^^^^^
|
61 | 49 |
|
62 | 50 | - Improved the warnings for the deprecated methods :meth:`Series.real` and :meth:`Series.imag` (:issue:`27610`)
|
63 |
| -- |
64 |
| -- |
65 |
| - |
66 |
| -Strings |
67 |
| -^^^^^^^ |
68 |
| - |
69 |
| -- |
70 |
| -- |
71 |
| -- |
72 |
| - |
73 | 51 |
|
74 | 52 | Interval
|
75 | 53 | ^^^^^^^^
|
| 54 | + |
76 | 55 | - Bug in :class:`IntervalIndex` where `dir(obj)` would raise ``ValueError`` (:issue:`27571`)
|
77 |
| -- |
78 |
| -- |
79 |
| -- |
80 | 56 |
|
81 | 57 | Indexing
|
82 | 58 | ^^^^^^^^
|
83 | 59 |
|
84 | 60 | - Bug in partial-string indexing returning a NumPy array rather than a ``Series`` when indexing with a scalar like ``.loc['2015']`` (:issue:`27516`)
|
85 | 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`)
|
86 | 62 | - Fix regression in assigning values to a single column of a DataFrame with a ``MultiIndex`` columns (:issue:`27841`).
|
87 |
| -- |
| 63 | +- Fix regression in ``.ix`` fallback with an ``IntervalIndex`` (:issue:`27865`). |
88 | 64 |
|
89 | 65 | Missing
|
90 | 66 | ^^^^^^^
|
91 | 67 |
|
92 |
| -- |
93 |
| -- |
94 |
| -- |
95 |
| - |
96 |
| -MultiIndex |
97 |
| -^^^^^^^^^^ |
98 |
| - |
99 |
| -- |
100 |
| -- |
101 |
| -- |
| 68 | +- Bug in :func:`pandas.isnull` or :func:`pandas.isna` when the input is a type e.g. ``type(pandas.Series())`` (:issue:`27482`) |
102 | 69 |
|
103 | 70 | I/O
|
104 | 71 | ^^^
|
105 | 72 |
|
106 | 73 | - Avoid calling ``S3File.s3`` when reading parquet, as this was removed in s3fs version 0.3.0 (:issue:`27756`)
|
107 | 74 | - Better error message when a negative header is passed in :func:`pandas.read_csv` (:issue:`27779`)
|
108 |
| -- |
| 75 | +- Follow the ``min_rows`` display option (introduced in v0.25.0) correctly in the HTML repr in the notebook (:issue:`27991`). |
109 | 76 |
|
110 | 77 | Plotting
|
111 | 78 | ^^^^^^^^
|
112 | 79 |
|
113 |
| -- 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`). |
114 | 83 | - Fix compatibility issue with matplotlib when passing a pandas ``Index`` to a plot call (:issue:`27775`).
|
115 |
| -- |
116 | 84 |
|
117 | 85 | Groupby/resample/rolling
|
118 | 86 | ^^^^^^^^^^^^^^^^^^^^^^^^
|
119 | 87 |
|
| 88 | +- Fixed regression in :meth:`pands.core.groupby.DataFrameGroupBy.quantile` raising when multiple quantiles are given (:issue:`27526`) |
120 | 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`) |
121 | 91 | - Bug in windowing over read-only arrays (:issue:`27766`)
|
122 | 92 | - Fixed segfault in `pandas.core.groupby.DataFrameGroupBy.quantile` when an invalid quantile was passed (:issue:`27470`)
|
123 |
| -- |
124 | 93 |
|
125 | 94 | Reshaping
|
126 | 95 | ^^^^^^^^^
|
127 | 96 |
|
128 | 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`)
|
| 98 | +- Bug :meth:`merge_asof` could not merge :class:`Timedelta` objects when passing `tolerance` kwarg (:issue:`27642`) |
129 | 99 | - Bug in :meth:`DataFrame.crosstab` when ``margins`` set to ``True`` and ``normalize`` is not ``False``, an error is raised. (:issue:`27500`)
|
130 | 100 | - :meth:`DataFrame.join` now suppresses the ``FutureWarning`` when the sort parameter is specified (:issue:`21952`)
|
131 | 101 | - Bug in :meth:`DataFrame.join` raising with readonly arrays (:issue:`27943`)
|
132 | 102 |
|
133 | 103 | Sparse
|
134 | 104 | ^^^^^^
|
135 |
| -- Bug in reductions for :class:`Series` with Sparse dtypes (:issue:`27080`) |
136 |
| -- |
137 |
| -- |
138 |
| -- |
139 | 105 |
|
140 |
| - |
141 |
| -Build Changes |
142 |
| -^^^^^^^^^^^^^ |
143 |
| - |
144 |
| -- |
145 |
| -- |
146 |
| -- |
147 |
| - |
148 |
| -ExtensionArray |
149 |
| -^^^^^^^^^^^^^^ |
150 |
| - |
151 |
| -- |
152 |
| -- |
153 |
| -- |
| 106 | +- Bug in reductions for :class:`Series` with Sparse dtypes (:issue:`27080`) |
154 | 107 |
|
155 | 108 | Other
|
156 | 109 | ^^^^^
|
| 110 | + |
157 | 111 | - Bug in :meth:`Series.replace` and :meth:`DataFrame.replace` when replacing timezone-aware timestamps using a dict-like replacer (:issue:`27720`)
|
158 |
| -- |
159 |
| -- |
160 |
| -- |
| 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`) |
161 | 113 |
|
162 | 114 | .. _whatsnew_0.251.contributors:
|
163 | 115 |
|
|
0 commit comments