Skip to content

Commit c71950b

Browse files
committed
Added base test for extension array groupby agg
1 parent dedea4a commit c71950b

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

pandas/tests/extension/base/groupby.py

+9
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ def test_groupby_extension_agg(self, as_index, data_for_grouping):
3333
expected = expected.reset_index()
3434
self.assert_frame_equal(result, expected)
3535

36+
def test_groupby_agg_extension(self, data_for_grouping):
37+
# GH#38980 groupby agg on extension type fails for non-numeric types
38+
df = pd.DataFrame({"A": [1, 1, 2, 2, 3, 3, 1, 4], "B": data_for_grouping})
39+
result = df.groupby("A").agg({"B": "first"}).B.array
40+
41+
expected = df["B"].iloc[[0, 2, 4, 7]].array
42+
43+
self.assert_extension_array_equal(result, expected)
44+
3645
def test_groupby_extension_no_sort(self, data_for_grouping):
3746
df = pd.DataFrame({"A": [1, 1, 2, 2, 3, 3, 1, 4], "B": data_for_grouping})
3847
result = df.groupby("B", sort=False).A.mean()

pandas/tests/extension/test_boolean.py

+9
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,15 @@ def test_groupby_extension_agg(self, as_index, data_for_grouping):
291291
expected = expected.reset_index()
292292
self.assert_frame_equal(result, expected)
293293

294+
def test_groupby_agg_extension(self, data_for_grouping):
295+
# GH#38980 groupby agg on extension type fails for non-numeric types
296+
df = pd.DataFrame({"A": [1, 1, 2, 2, 3, 3, 1], "B": data_for_grouping})
297+
result = df.groupby("A").agg({"B": "first"}).B.array
298+
299+
expected = df["B"].iloc[[0, 2, 4]].array
300+
301+
self.assert_extension_array_equal(result, expected)
302+
294303
def test_groupby_extension_no_sort(self, data_for_grouping):
295304
df = pd.DataFrame({"A": [1, 1, 2, 2, 3, 3, 1], "B": data_for_grouping})
296305
result = df.groupby("B", sort=False).A.mean()

0 commit comments

Comments
 (0)