Skip to content

Commit 7cde20b

Browse files
Added Test for multi-index groupby partial indexing equivalence (#54353)
* Added Test for multi-index groupby partial indexing equivalence * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 3d11282 commit 7cde20b

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

pandas/tests/groupby/test_grouping.py

+31
Original file line numberDiff line numberDiff line change
@@ -569,6 +569,37 @@ def test_groupby_multiindex_tuple(self):
569569
result = df.groupby(("b", 1)).groups
570570
tm.assert_dict_equal(expected, result)
571571

572+
def test_groupby_multiindex_partial_indexing_equivalence(self):
573+
# GH 17977
574+
df = DataFrame(
575+
[[1, 2, 3, 4], [3, 4, 5, 6], [1, 4, 2, 3]],
576+
columns=MultiIndex.from_arrays([["a", "b", "b", "c"], [1, 1, 2, 2]]),
577+
)
578+
579+
expected_mean = df.groupby([("a", 1)])[[("b", 1), ("b", 2)]].mean()
580+
result_mean = df.groupby([("a", 1)])["b"].mean()
581+
tm.assert_frame_equal(expected_mean, result_mean)
582+
583+
expected_sum = df.groupby([("a", 1)])[[("b", 1), ("b", 2)]].sum()
584+
result_sum = df.groupby([("a", 1)])["b"].sum()
585+
tm.assert_frame_equal(expected_sum, result_sum)
586+
587+
expected_count = df.groupby([("a", 1)])[[("b", 1), ("b", 2)]].count()
588+
result_count = df.groupby([("a", 1)])["b"].count()
589+
tm.assert_frame_equal(expected_count, result_count)
590+
591+
expected_min = df.groupby([("a", 1)])[[("b", 1), ("b", 2)]].min()
592+
result_min = df.groupby([("a", 1)])["b"].min()
593+
tm.assert_frame_equal(expected_min, result_min)
594+
595+
expected_max = df.groupby([("a", 1)])[[("b", 1), ("b", 2)]].max()
596+
result_max = df.groupby([("a", 1)])["b"].max()
597+
tm.assert_frame_equal(expected_max, result_max)
598+
599+
expected_groups = df.groupby([("a", 1)])[[("b", 1), ("b", 2)]].groups
600+
result_groups = df.groupby([("a", 1)])["b"].groups
601+
tm.assert_dict_equal(expected_groups, result_groups)
602+
572603
@pytest.mark.parametrize("sort", [True, False])
573604
def test_groupby_level(self, sort, mframe, df):
574605
# GH 17537

0 commit comments

Comments
 (0)