You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As per [PDEP-1](https://pandas.pydata.org/pdeps/0001-purpose-and-guidelines.html), the following issue template should be used when a
11
+
maintainer has opened a PDEP discussion and is ready to call for a vote.
12
+
- type: checkboxes
13
+
attributes:
14
+
label: Locked issue
15
+
options:
16
+
- label: >
17
+
I locked this voting issue so that only voting members are able to cast their votes or
18
+
comment on this issue.
19
+
required: true
20
+
- type: input
21
+
id: PDEP-name
22
+
attributes:
23
+
label: PDEP number and title
24
+
placeholder: >
25
+
PDEP-1: Purpose and guidelines
26
+
validations:
27
+
required: true
28
+
- type: input
29
+
id: PDEP-link
30
+
attributes:
31
+
label: Pull request with discussion
32
+
description: e.g. https://github.com/pandas-dev/pandas/pull/47444
33
+
validations:
34
+
required: true
35
+
- type: input
36
+
id: PDEP-rendered-link
37
+
attributes:
38
+
label: Rendered PDEP for easy reading
39
+
description: e.g. https://github.com/pandas-dev/pandas/pull/47444/files?short_path=7c449e6#diff-7c449e698132205b235c501f7e47ebba38da4d2b7f9492c98f16745dba787041
40
+
validations:
41
+
required: true
42
+
- type: input
43
+
id: PDEP-number-of-discussion-participants
44
+
attributes:
45
+
label: Discussion participants
46
+
description: >
47
+
You may find it useful to list or total the number of participating members in the
48
+
PDEP discussion PR. This would be the maximum possible disapprove votes.
49
+
placeholder: >
50
+
14 voting members participated in the PR discussion thus far.
51
+
- type: input
52
+
id: PDEP-vote-end
53
+
attributes:
54
+
label: Voting will close in 15 days.
55
+
description: The voting period end date. ('Voting will close in 15 days.' will be automatically written)
56
+
- type: markdown
57
+
attributes:
58
+
value: ---
59
+
- type: textarea
60
+
id: Vote
61
+
attributes:
62
+
label: Vote
63
+
value: |
64
+
Cast your vote in a comment below.
65
+
* +1: approve.
66
+
* 0: abstain.
67
+
* Reason: A one sentence reason is required.
68
+
* -1: disapprove
69
+
* Reason: A one sentence reason is required.
70
+
A disapprove vote requires prior participation in the linked discussion PR.
Copy file name to clipboardExpand all lines: doc/source/whatsnew/v3.0.0.rst
+24-24Lines changed: 24 additions & 24 deletions
Original file line number
Diff line number
Diff line change
@@ -28,6 +28,7 @@ enhancement2
28
28
29
29
Other enhancements
30
30
^^^^^^^^^^^^^^^^^^
31
+
- :class:`pandas.api.typing.FrozenList` is available for typing the outputs of :attr:`MultiIndex.names`, :attr:`MultiIndex.codes` and :attr:`MultiIndex.levels` (:issue:`58237`)
31
32
- :func:`DataFrame.to_excel` now raises an ``UserWarning`` when the character count in a cell exceeds Excel's limitation of 32767 characters (:issue:`56954`)
32
33
- :func:`read_stata` now returns ``datetime64`` resolutions better matching those natively stored in the stata format (:issue:`55642`)
33
34
- :meth:`Styler.set_tooltips` provides alternative method to storing tooltips by using title attribute of td elements. (:issue:`56981`)
@@ -37,6 +38,7 @@ Other enhancements
37
38
- Users can globally disable any ``PerformanceWarning`` by setting the option ``mode.performance_warnings`` to ``False`` (:issue:`56920`)
38
39
- :meth:`Styler.format_index_names` can now be used to format the index and column names (:issue:`48936` and :issue:`47489`)
39
40
- :meth:`DataFrame.cummin`, :meth:`DataFrame.cummax`, :meth:`DataFrame.cumprod` and :meth:`DataFrame.cumsum` methods now have a ``numeric_only`` parameter (:issue:`53072`)
41
+
- :meth:`DataFrame.fillna` and :meth:`Series.fillna` can now accept ``value=None``; for non-object dtype the corresponding NA value will be used (:issue:`57723`)
@@ -208,6 +210,8 @@ Removal of prior version deprecations/changes
208
210
- :meth:`SeriesGroupBy.agg` no longer pins the name of the group to the input passed to the provided ``func`` (:issue:`51703`)
209
211
- All arguments except ``name`` in :meth:`Index.rename` are now keyword only (:issue:`56493`)
210
212
- All arguments except the first ``path``-like argument in IO writers are now keyword only (:issue:`54229`)
213
+
- Disallow allowing logical operations (``||``, ``&``, ``^``) between pandas objects and dtype-less sequences (e.g. ``list``, ``tuple``); wrap the objects in :class:`Series`, :class:`Index`, or ``np.array`` first instead (:issue:`52264`)
214
+
- Disallow automatic casting to object in :class:`Series` logical operations (``&``, ``^``, ``||``) between series with mismatched indexes and dtypes other than ``object`` or ``bool`` (:issue:`52538`)
211
215
- Disallow calling :meth:`Series.replace` or :meth:`DataFrame.replace` without a ``value`` and with non-dict-like ``to_replace`` (:issue:`33302`)
212
216
- Disallow constructing a :class:`arrays.SparseArray` with scalar data (:issue:`53039`)
213
217
- Disallow non-standard (``np.ndarray``, :class:`Index`, :class:`ExtensionArray`, or :class:`Series`) to :func:`isin`, :func:`unique`, :func:`factorize` (:issue:`52986`)
@@ -327,6 +331,7 @@ Performance improvements
327
331
- Performance improvement in :meth:`RangeIndex.reindex` returning a :class:`RangeIndex` instead of a :class:`Index` when possible. (:issue:`57647`, :issue:`57752`)
328
332
- Performance improvement in :meth:`RangeIndex.take` returning a :class:`RangeIndex` instead of a :class:`Index` when possible. (:issue:`57445`, :issue:`57752`)
329
333
- Performance improvement in :func:`merge` if hash-join can be used (:issue:`57970`)
334
+
- Performance improvement in :meth:`to_hdf` avoid unnecessary reopenings of the HDF5 file to speedup data addition to files with a very large number of groups . (:issue:`58248`)
330
335
- Performance improvement in ``DataFrameGroupBy.__len__`` and ``SeriesGroupBy.__len__`` (:issue:`57595`)
331
336
- Performance improvement in indexing operations for string dtypes (:issue:`56997`)
332
337
- Performance improvement in unary methods on a :class:`RangeIndex` returning a :class:`RangeIndex` instead of a :class:`Index` when possible. (:issue:`57825`)
@@ -336,19 +341,6 @@ Performance improvements
336
341
337
342
Bug fixes
338
343
~~~~~~~~~
339
-
- Fixed bug in :class:`SparseDtype` for equal comparison with na fill value. (:issue:`54770`)
340
-
- Fixed bug in :meth:`.DataFrameGroupBy.median` where nat values gave an incorrect result. (:issue:`57926`)
341
-
- Fixed bug in :meth:`DataFrame.cumsum` which was raising ``IndexError`` if dtype is ``timedelta64[ns]`` (:issue:`57956`)
342
-
- Fixed bug in :meth:`DataFrame.eval` and :meth:`DataFrame.query` which caused an exception when using NumPy attributes via ``@`` notation, e.g., ``df.eval("@np.floor(a)")``. (:issue:`58041`)
343
-
- Fixed bug in :meth:`DataFrame.join` inconsistently setting result index name (:issue:`55815`)
344
-
- Fixed bug in :meth:`DataFrame.to_string` that raised ``StopIteration`` with nested DataFrames. (:issue:`16098`)
345
-
- Fixed bug in :meth:`DataFrame.transform` that was returning the wrong order unless the index was monotonically increasing. (:issue:`57069`)
346
-
- Fixed bug in :meth:`DataFrame.update` bool dtype being converted to object (:issue:`55509`)
347
-
- Fixed bug in :meth:`DataFrameGroupBy.apply` that was returning a completely empty DataFrame when all return values of ``func`` were ``None`` instead of returning an empty DataFrame with the original columns and dtypes. (:issue:`57775`)
348
-
- Fixed bug in :meth:`Series.diff` allowing non-integer values for the ``periods`` argument. (:issue:`56607`)
349
-
- Fixed bug in :meth:`Series.rank` that doesn't preserve missing values for nullable integers when ``na_option='keep'``. (:issue:`56976`)
350
-
- Fixed bug in :meth:`Series.replace` and :meth:`DataFrame.replace` inconsistently replacing matching instances when ``regex=True`` and missing values are present. (:issue:`56599`)
351
-
- Fixed bug in :meth:`read_csv` raising ``TypeError`` when ``index_col`` is specified and ``na_values`` is a dict containing the key ``None``. (:issue:`57547`)
352
344
353
345
Categorical
354
346
^^^^^^^^^^^
@@ -357,14 +349,15 @@ Categorical
357
349
358
350
Datetimelike
359
351
^^^^^^^^^^^^
352
+
- Bug in :class:`Timestamp` constructor failing to raise when ``tz=None`` is explicitly specified in conjunction with timezone-aware ``tzinfo`` or data (:issue:`48688`)
360
353
- Bug in :func:`date_range` where the last valid timestamp would sometimes not be produced (:issue:`56134`)
361
354
- Bug in :func:`date_range` where using a negative frequency value would not include all points between the start and end values (:issue:`56382`)
362
-
-
355
+
- Bug in :func:`tseries.api.guess_datetime_format` would fail to infer time format when "%Y" == "%H%M" (:issue:`57452`)
363
356
364
357
Timedelta
365
358
^^^^^^^^^
366
359
- Accuracy improvement in :meth:`Timedelta.to_pytimedelta` to round microseconds consistently for large nanosecond based Timedelta (:issue:`57841`)
367
-
-
360
+
- Bug in :meth:`DataFrame.cumsum` which was raising ``IndexError`` if dtype is ``timedelta64[ns]`` (:issue:`57956`)
368
361
369
362
Timezones
370
363
^^^^^^^^^
@@ -378,6 +371,7 @@ Numeric
378
371
379
372
Conversion
380
373
^^^^^^^^^^
374
+
- Bug in :meth:`DataFrame.update` bool dtype being converted to object (:issue:`55509`)
381
375
- Bug in :meth:`Series.astype` might modify read-only array inplace when casting to a string dtype (:issue:`57212`)
382
376
- Bug in :meth:`Series.reindex` not maintaining ``float32`` type when a ``reindex`` introduces a missing value (:issue:`45857`)
383
377
@@ -393,7 +387,7 @@ Interval
393
387
394
388
Indexing
395
389
^^^^^^^^
396
-
-
390
+
- Bug in :meth:`DataFrame.__getitem__` returning modified columns when called with ``slice`` in Python 3.12 (:issue:`57500`)
397
391
-
398
392
399
393
Missing
@@ -408,10 +402,10 @@ MultiIndex
408
402
409
403
I/O
410
404
^^^
405
+
- Bug in :class:`DataFrame` and :class:`Series` ``repr`` of :py:class:`collections.abc.Mapping`` elements. (:issue:`57915`)
411
406
- Bug in :meth:`DataFrame.to_excel` when writing empty :class:`DataFrame` with :class:`MultiIndex` on both axes (:issue:`57696`)
412
-
- Now all ``Mapping`` s are pretty printed correctly. Before only literal ``dict`` s were. (:issue:`57915`)
413
-
-
414
-
-
407
+
- Bug in :meth:`DataFrame.to_string` that raised ``StopIteration`` with nested DataFrames. (:issue:`16098`)
408
+
- Bug in :meth:`read_csv` raising ``TypeError`` when ``index_col`` is specified and ``na_values`` is a dict containing the key ``None``. (:issue:`57547`)
415
409
416
410
Period
417
411
^^^^^^
@@ -426,23 +420,25 @@ Plotting
426
420
Groupby/resample/rolling
427
421
^^^^^^^^^^^^^^^^^^^^^^^^
428
422
- Bug in :meth:`.DataFrameGroupBy.groups` and :meth:`.SeriesGroupby.groups` that would not respect groupby argument ``dropna`` (:issue:`55919`)
423
+
- Bug in :meth:`.DataFrameGroupBy.median` where nat values gave an incorrect result. (:issue:`57926`)
429
424
- Bug in :meth:`.DataFrameGroupBy.quantile` when ``interpolation="nearest"`` is inconsistent with :meth:`DataFrame.quantile` (:issue:`47942`)
430
425
- Bug in :meth:`DataFrame.ewm` and :meth:`Series.ewm` when passed ``times`` and aggregation functions other than mean (:issue:`51695`)
431
-
-
426
+
- Bug in :meth:`DataFrameGroupBy.apply` that was returning a completely empty DataFrame when all return values of ``func`` were ``None`` instead of returning an empty DataFrame with the original columns and dtypes. (:issue:`57775`)
427
+
432
428
433
429
Reshaping
434
430
^^^^^^^^^
435
-
-
431
+
- Bug in :meth:`DataFrame.join` inconsistently setting result index name (:issue:`55815`)
436
432
-
437
433
438
434
Sparse
439
435
^^^^^^
440
-
-
436
+
- Bug in :class:`SparseDtype` for equal comparison with na fill value. (:issue:`54770`)
441
437
-
442
438
443
439
ExtensionArray
444
440
^^^^^^^^^^^^^^
445
-
- Fixed bug in :meth:`api.types.is_datetime64_any_dtype` where a custom :class:`ExtensionDtype` would return ``False`` for array-likes (:issue:`57055`)
441
+
- Bug in :meth:`api.types.is_datetime64_any_dtype` where a custom :class:`ExtensionDtype` would return ``False`` for array-likes (:issue:`57055`)
446
442
-
447
443
448
444
Styler
@@ -452,11 +448,15 @@ Styler
452
448
Other
453
449
^^^^^
454
450
- Bug in :class:`DataFrame` when passing a ``dict`` with a NA scalar and ``columns`` that would always return ``np.nan`` (:issue:`57205`)
455
-
- Bug in :func:`tseries.api.guess_datetime_format` would fail to infer time format when "%Y" == "%H%M" (:issue:`57452`)
456
451
- Bug in :func:`unique` on :class:`Index` not always returning :class:`Index` (:issue:`57043`)
452
+
- Bug in :meth:`DataFrame.eval` and :meth:`DataFrame.query` which caused an exception when using NumPy attributes via ``@`` notation, e.g., ``df.eval("@np.floor(a)")``. (:issue:`58041`)
457
453
- Bug in :meth:`DataFrame.sort_index` when passing ``axis="columns"`` and ``ignore_index=True`` and ``ascending=False`` not returning a :class:`RangeIndex` columns (:issue:`57293`)
454
+
- Bug in :meth:`DataFrame.transform` that was returning the wrong order unless the index was monotonically increasing. (:issue:`57069`)
458
455
- Bug in :meth:`DataFrame.where` where using a non-bool type array in the function would return a ``ValueError`` instead of a ``TypeError`` (:issue:`56330`)
459
456
- Bug in :meth:`Index.sort_values` when passing a key function that turns values into tuples, e.g. ``key=natsort.natsort_key``, would raise ``TypeError`` (:issue:`56081`)
457
+
- Bug in :meth:`Series.diff` allowing non-integer values for the ``periods`` argument. (:issue:`56607`)
458
+
- Bug in :meth:`Series.rank` that doesn't preserve missing values for nullable integers when ``na_option='keep'``. (:issue:`56976`)
459
+
- Bug in :meth:`Series.replace` and :meth:`DataFrame.replace` inconsistently replacing matching instances when ``regex=True`` and missing values are present. (:issue:`56599`)
460
460
- Bug in Dataframe Interchange Protocol implementation was returning incorrect results for data buffers' associated dtype, for string and datetime columns (:issue:`54781`)
0 commit comments