Skip to content

Commit ff73cec

Browse files
committed
BUG: Fix bug in SeriesGroupBy.value_counts when DataFrame has one row (#42618)
1 parent 0f1385e commit ff73cec

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

pandas/core/groupby/generic.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -758,7 +758,7 @@ def apply_series_value_counts():
758758
# new values are where sorted labels change
759759
lchanges = llab(lab, slice(1, None)) != llab(lab, slice(None, -1))
760760
inc = np.r_[True, lchanges]
761-
if not len(lchanges):
761+
if not len(val):
762762
inc = lchanges
763763
inc[idx] = True # group boundaries are also new values
764764
out = np.diff(np.nonzero(np.r_[inc, True])[0]) # value counts

pandas/tests/groupby/test_value_counts.py

+19
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,25 @@ def test_series_groupby_value_counts_empty():
143143
tm.assert_series_equal(result, expected)
144144

145145

146+
def test_series_groupby_value_counts_one_row():
147+
# GH42618
148+
df = DataFrame([[1, 2]], columns=["A", "B"])
149+
dfg = df.groupby("A")
150+
151+
result = dfg["B"].value_counts()
152+
expected = df.value_counts()
153+
154+
tm.assert_series_equal(result, expected, check_names=False)
155+
156+
df = DataFrame([[1, 2, 3]], columns=["A", "B", "C"])
157+
dfg = df.groupby(["A", "B"])
158+
159+
result = dfg["C"].value_counts()
160+
expected = df.value_counts()
161+
162+
tm.assert_series_equal(result, expected, check_names=False)
163+
164+
146165
def test_series_groupby_value_counts_on_categorical():
147166
# GH38672
148167

0 commit comments

Comments
 (0)