Skip to content

Commit adc8df5

Browse files
committed
GroupBy[Series].count() return type should be Series[int]
1 parent 48ca4b0 commit adc8df5

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

pandas-stubs/core/groupby/groupby.pyi

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,10 @@ class GroupBy(BaseGroupBy[NDFrameT]):
176176
@overload
177177
def all(self: GroupBy[DataFrame], skipna: bool = ...) -> DataFrame: ...
178178
@final
179-
def count(self) -> NDFrameT: ...
179+
@overload
180+
def count(self: GroupBy[Series]) -> Series[int]: ...
181+
@overload
182+
def count(self: GroupBy[DataFrame]) -> DataFrame: ...
180183
@final
181184
def mean(
182185
self,

tests/test_frame.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1025,6 +1025,7 @@ def test_types_groupby_methods() -> None:
10251025
check(assert_type(df.groupby("col1").sum(), pd.DataFrame), pd.DataFrame)
10261026
check(assert_type(df.groupby("col1").prod(), pd.DataFrame), pd.DataFrame)
10271027
check(assert_type(df.groupby("col1").sample(), pd.DataFrame), pd.DataFrame)
1028+
check(assert_type(df.groupby("col1").count(), pd.DataFrame), pd.DataFrame)
10281029
check(
10291030
assert_type(df.groupby("col1").value_counts(normalize=False), "pd.Series[int]"),
10301031
pd.Series,

tests/test_series.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -676,6 +676,11 @@ def test_types_groupby_methods() -> None:
676676
check(assert_type(s.groupby(level=0).idxmax(), pd.Series), pd.Series)
677677
check(assert_type(s.groupby(level=0).idxmin(), pd.Series), pd.Series)
678678

679+
s2 = pd.Series(["w", "x", "y", "z"], index=[3, 4, 3, 4], dtype=str)
680+
check(
681+
assert_type(s2.groupby(level=0).count(), "pd.Series[int]"), pd.Series, np.int_
682+
)
683+
679684

680685
def test_groupby_result() -> None:
681686
# GH 142

0 commit comments

Comments
 (0)