|
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