|
1 | 1 | .. _whatsnew_0232:
|
2 | 2 |
|
3 |
| -v0.23.2 |
4 |
| -------- |
| 3 | +v0.23.2 (July 5, 2018) |
| 4 | +---------------------- |
5 | 5 |
|
6 | 6 | This is a minor bug-fix release in the 0.23.x series and includes some small regression fixes
|
7 | 7 | and bug fixes. We recommend that all users upgrade to this version.
|
8 | 8 |
|
| 9 | +.. note:: |
| 10 | + |
| 11 | + Pandas 0.23.2 is first pandas release that's compatible with |
| 12 | + Python 3.7 (:issue:`20552`) |
| 13 | + |
| 14 | + |
9 | 15 | .. contents:: What's new in v0.23.2
|
10 | 16 | :local:
|
11 | 17 | :backlinks: none
|
12 | 18 |
|
| 19 | +.. _whatsnew_0232.enhancements: |
| 20 | + |
| 21 | +Logical Reductions over Entire DataFrame |
| 22 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 23 | + |
| 24 | +:meth:`DataFrame.all` and :meth:`DataFrame.any` now accept ``axis=None`` to reduce over all axes to a scalar (:issue:`19976`) |
| 25 | + |
| 26 | +.. ipython:: python |
| 27 | + |
| 28 | + df = pd.DataFrame({"A": [1, 2], "B": [True, False]}) |
| 29 | + df.all(axis=None) |
| 30 | + |
| 31 | + |
| 32 | +This also provides compatibility with NumPy 1.15, which now dispatches to ``DataFrame.all``. |
| 33 | +With NumPy 1.15 and pandas 0.23.1 or earlier, :func:`numpy.all` will no longer reduce over every axis: |
| 34 | + |
| 35 | +.. code-block:: python |
| 36 | + |
| 37 | + >>> # NumPy 1.15, pandas 0.23.1 |
| 38 | + >>> np.any(pd.DataFrame({"A": [False], "B": [False]})) |
| 39 | + A False |
| 40 | + B False |
| 41 | + dtype: bool |
| 42 | + |
| 43 | +With pandas 0.23.2, that will correctly return False, as it did with NumPy < 1.15. |
| 44 | + |
| 45 | +.. ipython:: python |
| 46 | + |
| 47 | + np.any(pd.DataFrame({"A": [False], "B": [False]})) |
| 48 | + |
13 | 49 |
|
14 | 50 | .. _whatsnew_0232.fixed_regressions:
|
15 | 51 |
|
16 | 52 | Fixed Regressions
|
17 | 53 | ~~~~~~~~~~~~~~~~~
|
18 | 54 |
|
19 |
| -- |
20 |
| -- |
21 |
| - |
22 |
| -.. _whatsnew_0232.performance: |
| 55 | +- Fixed regression in :meth:`to_csv` when handling file-like object incorrectly (:issue:`21471`) |
| 56 | +- Re-allowed duplicate level names of a ``MultiIndex``. Accessing a level that has a duplicate name by name still raises an error (:issue:`19029`). |
| 57 | +- Bug in both :meth:`DataFrame.first_valid_index` and :meth:`Series.first_valid_index` raised for a row index having duplicate values (:issue:`21441`) |
| 58 | +- Fixed printing of DataFrames with hierarchical columns with long names (:issue:`21180`) |
| 59 | +- Fixed regression in :meth:`~DataFrame.reindex` and :meth:`~DataFrame.groupby` |
| 60 | + with a MultiIndex or multiple keys that contains categorical datetime-like values (:issue:`21390`). |
| 61 | +- Fixed regression in unary negative operations with object dtype (:issue:`21380`) |
| 62 | +- Bug in :meth:`Timestamp.ceil` and :meth:`Timestamp.floor` when timestamp is a multiple of the rounding frequency (:issue:`21262`) |
| 63 | +- Fixed regression in :func:`to_clipboard` that defaulted to copying dataframes with space delimited instead of tab delimited (:issue:`21104`) |
23 | 64 |
|
24 |
| -Performance Improvements |
25 |
| -~~~~~~~~~~~~~~~~~~~~~~~~ |
26 | 65 |
|
27 |
| -- |
28 |
| -- |
| 66 | +Build Changes |
| 67 | +~~~~~~~~~~~~~ |
29 | 68 |
|
30 |
| -Documentation Changes |
31 |
| -~~~~~~~~~~~~~~~~~~~~~ |
32 |
| - |
33 |
| -- |
34 |
| -- |
| 69 | +- The source and binary distributions no longer include test data files, resulting in smaller download sizes. Tests relying on these data files will be skipped when using ``pandas.test()``. (:issue:`19320`) |
35 | 70 |
|
36 | 71 | .. _whatsnew_0232.bug_fixes:
|
37 | 72 |
|
38 | 73 | Bug Fixes
|
39 | 74 | ~~~~~~~~~
|
40 | 75 |
|
41 |
| -**Groupby/Resample/Rolling** |
42 |
| - |
43 |
| -- |
44 |
| -- |
45 |
| - |
46 | 76 | **Conversion**
|
47 | 77 |
|
48 |
| - |
49 |
| -- |
50 |
| -- |
| 78 | +- Bug in constructing :class:`Index` with an iterator or generator (:issue:`21470`) |
| 79 | +- Bug in :meth:`Series.nlargest` for signed and unsigned integer dtypes when the minimum value is present (:issue:`21426`) |
51 | 80 |
|
52 | 81 | **Indexing**
|
53 | 82 |
|
54 | 83 | - Bug in :meth:`Index.get_indexer_non_unique` with categorical key (:issue:`21448`)
|
55 |
| -- |
| 84 | +- Bug in comparison operations for :class:`MultiIndex` where error was raised on equality / inequality comparison involving a MultiIndex with ``nlevels == 1`` (:issue:`21149`) |
| 85 | +- Bug in :meth:`DataFrame.drop` behaviour is not consistent for unique and non-unique indexes (:issue:`21494`) |
| 86 | +- Bug in :func:`DataFrame.duplicated` with a large number of columns causing a 'maximum recursion depth exceeded' (:issue:`21524`). |
56 | 87 |
|
57 | 88 | **I/O**
|
58 | 89 |
|
59 |
| -- |
60 |
| -- |
61 |
| - |
62 |
| -**Plotting** |
63 |
| - |
64 |
| -- |
65 |
| -- |
66 |
| - |
67 |
| -**Reshaping** |
68 |
| - |
69 |
| -- |
70 |
| -- |
| 90 | +- Bug in :func:`read_csv` that caused it to incorrectly raise an error when ``nrows=0``, ``low_memory=True``, and ``index_col`` was not ``None`` (:issue:`21141`) |
| 91 | +- Bug in :func:`json_normalize` when formatting the ``record_prefix`` with integer columns (:issue:`21536`) |
71 | 92 |
|
72 | 93 | **Categorical**
|
73 | 94 |
|
74 |
| -- |
| 95 | +- Bug in rendering :class:`Series` with ``Categorical`` dtype in rare conditions under Python 2.7 (:issue:`21002`) |
75 | 96 |
|
76 | 97 | **Timezones**
|
| 98 | + |
77 | 99 | - Bug in :class:`Timestamp` and :class:`DatetimeIndex` where passing a :class:`Timestamp` localized after a DST transition would return a datetime before the DST transition (:issue:`20854`)
|
78 | 100 | - Bug in comparing :class:`DataFrame`s with tz-aware :class:`DatetimeIndex` columns with a DST transition that raised a ``KeyError`` (:issue:`19970`)
|
79 | 101 |
|
80 |
| -**Other** |
| 102 | +**Timedelta** |
81 | 103 |
|
82 |
| -- |
| 104 | +- Bug in :class:`Timedelta` where non-zero timedeltas shorter than 1 microsecond were considered False (:issue:`21484`) |
0 commit comments