Skip to content

Commit af002fc

Browse files
committed
Merge branch 'master' of https://github.com/pandas-dev/pandas into new_udfs_list_agg
� Conflicts: � pandas/core/groupby/generic.py � pandas/core/groupby/groupby.py � pandas/tests/apply/test_frame_apply.py � pandas/tests/groupby/test_groupby.py
2 parents d7b6c7f + 562df33 commit af002fc

File tree

164 files changed

+2668
-1884
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

164 files changed

+2668
-1884
lines changed

.github/workflows/ci.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,15 @@ jobs:
4545
environment-file: ${{ env.ENV_FILE }}
4646
use-only-tar-bz2: true
4747

48+
- name: Install node.js (for pyright)
49+
uses: actions/setup-node@v2
50+
with:
51+
node-version: "16"
52+
53+
- name: Install pyright
54+
# note: keep version in sync with .pre-commit-config.yaml
55+
run: npm install -g [email protected]
56+
4857
- name: Build Pandas
4958
uses: ./.github/actions/build_pandas
5059

.pre-commit-config.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ repos:
99
- id: absolufy-imports
1010
files: ^pandas/
1111
- repo: https://github.com/python/black
12-
rev: 21.7b0
12+
rev: 21.9b0
1313
hooks:
1414
- id: black
1515
- repo: https://github.com/codespell-project/codespell
@@ -58,7 +58,7 @@ repos:
5858
hooks:
5959
- id: isort
6060
- repo: https://github.com/asottile/pyupgrade
61-
rev: v2.23.3
61+
rev: v2.29.0
6262
hooks:
6363
- id: pyupgrade
6464
args: [--py38-plus]
@@ -89,7 +89,9 @@ repos:
8989
language: node
9090
pass_filenames: false
9191
types: [python]
92-
additional_dependencies: ['[email protected]']
92+
stages: [manual]
93+
# note: keep version in sync with .github/workflows/ci.yml
94+
additional_dependencies: ['[email protected]']
9395
- repo: local
9496
hooks:
9597
- id: flake8-rst

asv_bench/benchmarks/indexing_engines.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"""
2-
Benchmarks in this fiel depend exclusively on code in _libs/
2+
Benchmarks in this file depend exclusively on code in _libs/
33
44
If a PR does not edit anything in _libs, it is very unlikely that benchmarks
55
in this file will be affected.

asv_bench/benchmarks/sparse.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,11 @@ class ToCooFrame:
9595
def setup(self):
9696
N = 10000
9797
k = 10
98-
arr = np.full((N, k), np.nan)
98+
arr = np.zeros((N, k), dtype=float)
9999
arr[0, 0] = 3.0
100100
arr[12, 7] = -1.0
101101
arr[0, 9] = 11.2
102-
self.df = pd.DataFrame(arr, dtype=pd.SparseDtype("float"))
102+
self.df = pd.DataFrame(arr, dtype=pd.SparseDtype("float", fill_value=0.0))
103103

104104
def time_to_coo(self):
105105
self.df.sparse.to_coo()
@@ -195,4 +195,17 @@ def time_take(self, indices, allow_fill):
195195
self.sp_arr.take(indices, allow_fill=allow_fill)
196196

197197

198+
class GetItem:
199+
def setup(self):
200+
N = 1_000_000
201+
arr = make_array(N, 1e-5, np.nan, np.float64)
202+
self.sp_arr = SparseArray(arr)
203+
204+
def time_integer_indexing(self):
205+
self.sp_arr[78]
206+
207+
def time_slice(self):
208+
self.sp_arr[1:]
209+
210+
198211
from .pandas_vb_common import setup # noqa: F401 isort:skip

ci/code_checks.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ if [[ -z "$CHECK" || "$CHECK" == "doctests" ]]; then
8484
pandas/tseries/
8585
RET=$(($RET + $?)) ; echo $MSG "DONE"
8686

87+
MSG='Cython Doctests' ; echo $MSG
88+
python -m pytest --doctest-cython pandas/_libs
89+
RET=$(($RET + $?)) ; echo $MSG "DONE"
90+
8791
fi
8892

8993
### DOCSTRINGS ###
@@ -104,6 +108,13 @@ if [[ -z "$CHECK" || "$CHECK" == "typing" ]]; then
104108
MSG='Performing static analysis using mypy' ; echo $MSG
105109
mypy pandas
106110
RET=$(($RET + $?)) ; echo $MSG "DONE"
111+
112+
# run pyright, if it is installed
113+
if command -v pyright &> /dev/null ; then
114+
MSG='Performing static analysis using pyright' ; echo $MSG
115+
pyright
116+
RET=$(($RET + $?)) ; echo $MSG "DONE"
117+
fi
107118
fi
108119

109120
exit $RET

ci/deps/actions-38-db.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ dependencies:
1616
- botocore>=1.11
1717
- dask
1818
- fastparquet>=0.4.0
19-
- fsspec>=0.7.4, <2021.6.0
19+
- fsspec>=0.7.4
2020
- gcsfs>=0.6.0
2121
- geopandas
2222
- html5lib

ci/deps/actions-38-slow.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313

1414
# pandas dependencies
1515
- beautifulsoup4
16-
- fsspec>=0.7.4, <2021.6.0
16+
- fsspec>=0.7.4
1717
- html5lib
1818
- lxml
1919
- matplotlib

ci/deps/actions-39-slow.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ dependencies:
1515
# pandas dependencies
1616
- beautifulsoup4
1717
- bottleneck
18-
- fsspec>=0.8.0, <2021.6.0
18+
- fsspec>=0.8.0
1919
- gcsfs
2020
- html5lib
2121
- jinja2

ci/deps/actions-39.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ dependencies:
1414
# pandas dependencies
1515
- beautifulsoup4
1616
- bottleneck
17-
- fsspec>=0.8.0, <2021.6.0
17+
- fsspec>=0.8.0
1818
- gcsfs
1919
- html5lib
2020
- jinja2

ci/deps/azure-windows-38.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ dependencies:
1717
- bottleneck
1818
- fastparquet>=0.4.0
1919
- flask
20-
- fsspec>=0.8.0, <2021.6.0
20+
- fsspec>=0.8.0
2121
- matplotlib=3.3.2
2222
- moto>=1.3.14
2323
- numba

ci/deps/azure-windows-39.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ dependencies:
1515
# pandas dependencies
1616
- beautifulsoup4
1717
- bottleneck
18-
- fsspec>=0.8.0, <2021.6.0
18+
- fsspec>=0.8.0
1919
- gcsfs
2020
- html5lib
2121
- jinja2

doc/source/development/contributing_codebase.rst

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,12 +395,19 @@ This module will ultimately house types for repeatedly used concepts like "path-
395395
Validating type hints
396396
~~~~~~~~~~~~~~~~~~~~~
397397

398-
pandas uses `mypy <http://mypy-lang.org>`_ to statically analyze the code base and type hints. After making any change you can ensure your type hints are correct by running
398+
pandas uses `mypy <http://mypy-lang.org>`_ and `pyright <https://github.com/microsoft/pyright>`_ to statically analyze the code base and type hints. After making any change you can ensure your type hints are correct by running
399399

400400
.. code-block:: shell
401401
402402
mypy pandas
403403
404+
# let pre-commit setup and run pyright
405+
pre-commit run --hook-stage manual --all-files pyright
406+
# or if pyright is installed (requires node.js)
407+
pyright
408+
409+
A recent version of ``numpy`` (>=1.21.0) is required for type validation.
410+
404411
.. _contributing.ci:
405412

406413
Testing with continuous integration

doc/source/index.rst.template

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ pandas documentation
1212

1313
**Download documentation**: `PDF Version <pandas.pdf>`__ | `Zipped HTML <pandas.zip>`__
1414

15+
**Previous versions**: Documentation of previous pandas versions is available at
16+
`pandas.pydata.org <https://pandas.pydata.org/>`__.
17+
1518
**Useful links**:
1619
`Binary Installers <https://pypi.org/project/pandas>`__ |
1720
`Source Repository <https://github.com/pandas-dev/pandas>`__ |

doc/source/user_guide/basics.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,6 +1045,9 @@ not noted for a particular column will be ``NaN``:
10451045
Mixed dtypes
10461046
++++++++++++
10471047

1048+
.. deprecated:: 1.4.0
1049+
Attempting to determine which columns cannot be aggregated and silently dropping them from the results is deprecated and will be removed in a future version. If any porition of the columns or operations provided fail, the call to ``.agg`` will raise.
1050+
10481051
When presented with mixed dtypes that cannot aggregate, ``.agg`` will only take the valid
10491052
aggregations. This is similar to how ``.groupby.agg`` works.
10501053

@@ -1061,6 +1064,7 @@ aggregations. This is similar to how ``.groupby.agg`` works.
10611064
mdf.dtypes
10621065
10631066
.. ipython:: python
1067+
:okwarning:
10641068
10651069
mdf.agg(["min", "sum"])
10661070

doc/source/user_guide/groupby.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ column, which produces an aggregated result with a hierarchical index:
578578

579579
.. ipython:: python
580580
581-
grouped.agg([np.sum, np.mean, np.std])
581+
grouped[["C", "D"]].agg([np.sum, np.mean, np.std])
582582
583583
584584
The resulting aggregations are named for the functions themselves. If you
@@ -597,7 +597,7 @@ For a grouped ``DataFrame``, you can rename in a similar manner:
597597
.. ipython:: python
598598
599599
(
600-
grouped.agg([np.sum, np.mean, np.std]).rename(
600+
grouped[["C", "D"]].agg([np.sum, np.mean, np.std]).rename(
601601
columns={"sum": "foo", "mean": "bar", "std": "baz"}
602602
)
603603
)

doc/source/user_guide/merging.rst

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ all standard database join operations between ``DataFrame`` or named ``Series``
562562
(hierarchical), the number of levels must match the number of join keys
563563
from the right DataFrame or Series.
564564
* ``right_index``: Same usage as ``left_index`` for the right DataFrame or Series
565-
* ``how``: One of ``'left'``, ``'right'``, ``'outer'``, ``'inner'``. Defaults
565+
* ``how``: One of ``'left'``, ``'right'``, ``'outer'``, ``'inner'``, ``'cross'``. Defaults
566566
to ``inner``. See below for more detailed description of each method.
567567
* ``sort``: Sort the result DataFrame by the join keys in lexicographical
568568
order. Defaults to ``True``, setting to ``False`` will improve performance
@@ -707,6 +707,7 @@ either the left or right tables, the values in the joined table will be
707707
``right``, ``RIGHT OUTER JOIN``, Use keys from right frame only
708708
``outer``, ``FULL OUTER JOIN``, Use union of keys from both frames
709709
``inner``, ``INNER JOIN``, Use intersection of keys from both frames
710+
``cross``, ``CROSS JOIN``, Create the cartesian product of rows of both frames
710711

711712
.. ipython:: python
712713
@@ -751,6 +752,17 @@ either the left or right tables, the values in the joined table will be
751752
p.plot([left, right], result, labels=["left", "right"], vertical=False);
752753
plt.close("all");
753754
755+
.. ipython:: python
756+
757+
result = pd.merge(left, right, how="cross")
758+
759+
.. ipython:: python
760+
:suppress:
761+
762+
@savefig merging_merge_cross.png
763+
p.plot([left, right], result, labels=["left", "right"], vertical=False);
764+
plt.close("all");
765+
754766
You can merge a mult-indexed Series and a DataFrame, if the names of
755767
the MultiIndex correspond to the columns from the DataFrame. Transform
756768
the Series to a DataFrame using :meth:`Series.reset_index` before merging,

doc/source/user_guide/visualization.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1651,7 +1651,7 @@ remedy this, ``DataFrame`` plotting supports the use of the ``colormap`` argumen
16511651
which accepts either a Matplotlib `colormap <https://matplotlib.org/api/cm_api.html>`__
16521652
or a string that is a name of a colormap registered with Matplotlib. A
16531653
visualization of the default matplotlib colormaps is available `here
1654-
<https://matplotlib.org/examples/color/colormaps_reference.html>`__.
1654+
<https://matplotlib.org/stable/gallery/color/colormap_reference.html>`__.
16551655

16561656
As matplotlib does not directly support colormaps for line-based plots, the
16571657
colors are selected based on an even spacing determined by the number of columns

doc/source/whatsnew/v0.20.0.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ aggregations. This is similar to how groupby ``.agg()`` works. (:issue:`15015`)
105105
df.dtypes
106106
107107
.. ipython:: python
108+
:okwarning:
108109
109110
df.agg(['min', 'sum'])
110111

doc/source/whatsnew/v1.3.4.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,18 @@ including other versions of pandas.
1414

1515
Fixed regressions
1616
~~~~~~~~~~~~~~~~~
17+
- Fixed regression in :meth:`.GroupBy.agg` where it was failing silently with mixed data types along ``axis=1`` and :class:`MultiIndex` (:issue:`43209`)
1718
- Fixed regression in :meth:`merge` with integer and ``NaN`` keys failing with ``outer`` merge (:issue:`43550`)
1819
- Fixed regression in :meth:`DataFrame.corr` raising ``ValueError`` with ``method="spearman"`` on 32-bit platforms (:issue:`43588`)
1920
- Fixed performance regression in :meth:`MultiIndex.equals` (:issue:`43549`)
2021
- Fixed performance regression in :meth:`.GroupBy.first` and :meth:`.GroupBy.last` with :class:`StringDtype` (:issue:`41596`)
2122
- Fixed regression in :meth:`Series.cat.reorder_categories` failing to update the categories on the ``Series`` (:issue:`43232`)
2223
- Fixed regression in :meth:`Series.cat.categories` setter failing to update the categories on the ``Series`` (:issue:`43334`)
2324
- Fixed regression in :meth:`pandas.read_csv` raising ``UnicodeDecodeError`` exception when ``memory_map=True`` (:issue:`43540`)
25+
- Fixed regression in :meth:`DataFrame.explode` raising ``AssertionError`` when ``column`` is any scalar which is not a string (:issue:`43314`)
2426
- Fixed regression in :meth:`Series.aggregate` attempting to pass ``args`` and ``kwargs`` multiple times to the user supplied ``func`` in certain cases (:issue:`43357`)
27+
- Fixed regression when iterating over a :class:`DataFrame.groupby.rolling` object causing the resulting DataFrames to have an incorrect index if the input groupings were not sorted (:issue:`43386`)
28+
- Fixed regression in :meth:`DataFrame.groupby.rolling.cov` and :meth:`DataFrame.groupby.rolling.corr` computing incorrect results if the input groupings were not sorted (:issue:`43386`)
2529

2630
.. ---------------------------------------------------------------------------
2731

doc/source/whatsnew/v1.4.0.rst

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ Multithreaded CSV reading with a new CSV Engine based on pyarrow
9393
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9494

9595
:func:`pandas.read_csv` now accepts ``engine="pyarrow"`` (requires at least ``pyarrow`` 0.17.0) as an argument, allowing for faster csv parsing on multicore machines
96-
with pyarrow installed. See the :doc:`I/O docs </user_guide/io>` for more info. (:issue:`23697`)
96+
with pyarrow installed. See the :doc:`I/O docs </user_guide/io>` for more info. (:issue:`23697`, :issue:`43706`)
9797

9898
.. _whatsnew_140.enhancements.window_rank:
9999

@@ -336,7 +336,10 @@ Other Deprecations
336336
- Deprecated the 'include_start' and 'include_end' arguments in :meth:`DataFrame.between_time`; in a future version passing 'include_start' or 'include_end' will raise (:issue:`40245`)
337337
- Deprecated the ``squeeze`` argument to :meth:`read_csv`, :meth:`read_table`, and :meth:`read_excel`. Users should squeeze the DataFrame afterwards with ``.squeeze("columns")`` instead. (:issue:`43242`)
338338
- Deprecated the ``index`` argument to :class:`SparseArray` construction (:issue:`23089`)
339+
- Deprecated the ``closed`` argument in :meth:`date_range` and :meth:`bdate_range` in favor of ``inclusive`` argument; In a future version passing ``closed`` will raise (:issue:`40245`)
339340
- Deprecated :meth:`.Rolling.validate`, :meth:`.Expanding.validate`, and :meth:`.ExponentialMovingWindow.validate` (:issue:`43665`)
341+
- Deprecated silent dropping of columns that raised a ``TypeError`` in :class:`Series.transform` and :class:`DataFrame.transform` when used with a dictionary (:issue:`43740`)
342+
- Deprecated silent dropping of columns that raised a ``TypeError``, ``DataError``, and some cases of ``ValueError`` in :meth:`Series.aggregate`, :meth:`DataFrame.aggregate`, :meth:`Series.groupby.aggregate`, and :meth:`DataFrame.groupby.aggregate` when used with a list (:issue:`43740`)
340343

341344
.. ---------------------------------------------------------------------------
342345
@@ -345,6 +348,7 @@ Other Deprecations
345348
Performance improvements
346349
~~~~~~~~~~~~~~~~~~~~~~~~
347350
- Performance improvement in :meth:`.GroupBy.sample`, especially when ``weights`` argument provided (:issue:`34483`)
351+
- Performance improvement when converting non-string arrays to string arrays (:issue:`34483`)
348352
- Performance improvement in :meth:`.GroupBy.transform` for user-defined functions (:issue:`41598`)
349353
- Performance improvement in constructing :class:`DataFrame` objects (:issue:`42631`)
350354
- Performance improvement in :meth:`GroupBy.shift` when ``fill_value`` argument is provided (:issue:`26615`)
@@ -356,8 +360,10 @@ Performance improvements
356360
- Performance improvement in indexing with a :class:`MultiIndex` indexer on another :class:`MultiIndex` (:issue:43370`)
357361
- Performance improvement in :meth:`GroupBy.quantile` (:issue:`43469`)
358362
- :meth:`SparseArray.min` and :meth:`SparseArray.max` no longer require converting to a dense array (:issue:`43526`)
363+
- Indexing into a :class:`SparseArray` with a ``slice`` with ``step=1`` no longer requires converting to a dense array (:issue:`43777`)
359364
- Performance improvement in :meth:`SparseArray.take` with ``allow_fill=False`` (:issue:`43654`)
360365
- Performance improvement in :meth:`.Rolling.mean` and :meth:`.Expanding.mean` with ``engine="numba"`` (:issue:`43612`)
366+
-
361367

362368
.. ---------------------------------------------------------------------------
363369
@@ -380,6 +386,7 @@ Datetimelike
380386
- Bug in :class:`DataFrame` constructor unnecessarily copying non-datetimelike 2D object arrays (:issue:`39272`)
381387
- Bug in :func:`to_datetime` with ``format`` and ``pandas.NA`` was raising ``ValueError`` (:issue:`42957`)
382388
- :func:`to_datetime` would silently swap ``MM/DD/YYYY`` and ``DD/MM/YYYY`` formats if the given ``dayfirst`` option could not be respected - now, a warning is raised in the case of delimited date strings (e.g. ``31-12-2012``) (:issue:`12585`)
389+
- Bug in :meth:`date_range` and :meth:`bdate_range` do not return right bound when ``start`` = ``end`` and set is closed on one side (:issue:`43394`)
383390
-
384391

385392
Timedelta
@@ -417,6 +424,7 @@ Interval
417424

418425
Indexing
419426
^^^^^^^^
427+
- Bug in :meth:`Series.rename` when index in Series is MultiIndex and level in rename is provided. (:issue:`43659`)
420428
- Bug in :meth:`DataFrame.truncate` and :meth:`Series.truncate` when the object's Index has a length greater than one but only one unique value (:issue:`42365`)
421429
- Bug in :meth:`Series.loc` and :meth:`DataFrame.loc` with a :class:`MultiIndex` when indexing with a tuple in which one of the levels is also a tuple (:issue:`27591`)
422430
- Bug in :meth:`Series.loc` when with a :class:`MultiIndex` whose first level contains only ``np.nan`` values (:issue:`42055`)
@@ -429,7 +437,8 @@ Indexing
429437
- Bug in :meth:`DataFrame.drop` where the error message did not show missing labels with commas when raising ``KeyError`` (:issue:`42881`)
430438
- Bug in :meth:`DataFrame.query` where method calls in query strings led to errors when the ``numexpr`` package was installed. (:issue:`22435`)
431439
- Bug in :meth:`DataFrame.nlargest` and :meth:`Series.nlargest` where sorted result did not count indexes containing ``np.nan`` (:issue:`28984`)
432-
440+
- Bug in indexing on a non-unique object-dtype :class:`Index` with an NA scalar (e.g. ``np.nan``) (:issue:`43711`)
441+
-
433442

434443
Missing
435444
^^^^^^^
@@ -456,6 +465,9 @@ I/O
456465
- Bug in unpickling a :class:`Index` with object dtype incorrectly inferring numeric dtypes (:issue:`43188`)
457466
- Bug in :func:`read_csv` where reading multi-header input with unequal lengths incorrectly raising uncontrolled ``IndexError`` (:issue:`43102`)
458467
- Bug in :func:`read_csv`, changed exception class when expecting a file path name or file-like object from ``OSError`` to ``TypeError`` (:issue:`43366`)
468+
- Bug in :func:`json_normalize` where multi-character ``sep`` parameter is incorrectly prefixed to every key (:issue:`43831`)
469+
- Bug in :func:`read_csv` with :code:`float_precision="round_trip"` which did not skip initial/trailing whitespace (:issue:`43713`)
470+
-
459471

460472
Period
461473
^^^^^^
@@ -482,6 +494,7 @@ Groupby/resample/rolling
482494
- Bug in :meth:`DataFrame.rolling.corr` when the :class:`DataFrame` columns was a :class:`MultiIndex` (:issue:`21157`)
483495
- Bug in :meth:`DataFrame.groupby.rolling` when specifying ``on`` and calling ``__getitem__`` would subsequently return incorrect results (:issue:`43355`)
484496
- Bug in :meth:`GroupBy.apply` with time-based :class:`Grouper` objects incorrectly raising ``ValueError`` in corner cases where the grouping vector contains a ``NaT`` (:issue:`43500`, :issue:`43515`)
497+
- Bug in :meth:`GroupBy.mean` failing with ``complex`` dtype (:issue:`43701`)
485498

486499
Reshaping
487500
^^^^^^^^^
@@ -497,7 +510,7 @@ Sparse
497510
^^^^^^
498511
- Bug in :meth:`DataFrame.sparse.to_coo` raising ``AttributeError`` when column names are not unique (:issue:`29564`)
499512
- Bug in :meth:`SparseArray.max` and :meth:`SparseArray.min` raising ``ValueError`` for arrays with 0 non-null elements (:issue:`43527`)
500-
-
513+
- Bug in :meth:`DataFrame.sparse.to_coo` silently converting non-zero fill values to zero (:issue:`24817`)
501514
-
502515

503516
ExtensionArray

0 commit comments

Comments
 (0)