Skip to content

Commit 9aef32d

Browse files
pilkibunTomAugspurger
pilkibun
authored andcommitted
BUG: Handle NA values for ExtensionArrays in Series.count (#26836)
1 parent 171615a commit 9aef32d

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

doc/source/whatsnew/v0.25.0.rst

+6-1
Original file line numberDiff line numberDiff line change
@@ -782,11 +782,16 @@ Build Changes
782782

783783
- Fix install error with PyPy on macOS (:issue:`26536`)
784784

785+
ExtensionArray
786+
^^^^^^^^^^^^^^
787+
788+
- Bug in :func:`factorize` when passing an ``ExtensionArray`` with a custom ``na_sentinel`` (:issue:`25696`).
789+
- :meth:`Series.count` miscounts NA values in ExtensionArrays (:issue:`26835`)
790+
785791
Other
786792
^^^^^
787793

788794
- Removed unused C functions from vendored UltraJSON implementation (:issue:`26198`)
789-
- Bug in :func:`factorize` when passing an ``ExtensionArray`` with a custom ``na_sentinel`` (:issue:`25696`).
790795
- Allow :class:`Index` and :class:`RangeIndex` to be passed to numpy ``min`` and ``max`` functions (:issue:`26125`)
791796

792797
.. _whatsnew_0.250.contributors:

pandas/core/series.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1659,7 +1659,7 @@ def count(self, level=None):
16591659
2
16601660
"""
16611661
if level is None:
1662-
return notna(com.values_from_object(self)).sum()
1662+
return notna(self.array).sum()
16631663

16641664
if isinstance(level, str):
16651665
level = self.index._get_level_number(level)

pandas/tests/extension/base/methods.py

+7
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ def test_count(self, data_missing):
3030
expected = pd.Series([0, 1])
3131
self.assert_series_equal(result, expected)
3232

33+
def test_series_count(self, data_missing):
34+
# GH#26835
35+
ser = pd.Series(data_missing)
36+
result = ser.count()
37+
expected = 1
38+
assert result == expected
39+
3340
def test_apply_simple_series(self, data):
3441
result = pd.Series(data).apply(id)
3542
assert isinstance(result, pd.Series)

0 commit comments

Comments
 (0)