Skip to content

Commit 1d8edca

Browse files
committed
fix tests
1 parent 9006019 commit 1d8edca

File tree

3 files changed

+25
-44
lines changed

3 files changed

+25
-44
lines changed

pandas/core/groupby/grouper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -679,7 +679,7 @@ def groups(self) -> dict[Hashable, Index]:
679679
FutureWarning,
680680
stacklevel=find_stack_level(),
681681
)
682-
cats = [(key,) for key in cats]
682+
cats = [(key,) for key in cats] # type: ignore[assignment]
683683
return self._index.groupby(cats)
684684

685685
@property

pandas/tests/groupby/test_grouping.py

Lines changed: 21 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -548,45 +548,13 @@ def test_multiindex_columns_empty_level(self):
548548
grouped = df.groupby("to filter").groups
549549
assert grouped["A"] == [0]
550550

551-
grouped = df.groupby([("to filter", "")]).groups
552-
assert grouped["A"] == [0]
553-
554-
df = DataFrame([[1, "A"], [2, "B"]], columns=midx)
555-
556-
expected = df.groupby("to filter").groups
557-
result = df.groupby([("to filter", "")]).groups
558-
assert result == expected
559-
560-
df = DataFrame([[1, "A"], [2, "A"]], columns=midx)
551+
msg = "`groups` by one element list returns scalar is deprecated"
561552

562-
expected = df.groupby("to filter").groups
563-
result = df.groupby([("to filter", "")]).groups
564-
tm.assert_dict_equal(result, expected)
565-
566-
def test_groupby_multiindex_tuple(self):
567-
# GH 17979
568-
df = DataFrame(
569-
[[1, 2, 3, 4], [3, 4, 5, 6], [1, 4, 2, 3]],
570-
columns=MultiIndex.from_arrays([["a", "b", "b", "c"], [1, 1, 2, 2]]),
571-
)
572-
expected = df.groupby([("b", 1)]).groups
573-
result = df.groupby(("b", 1)).groups
574-
tm.assert_dict_equal(expected, result)
575-
576-
df2 = DataFrame(
577-
df.values,
578-
columns=MultiIndex.from_arrays(
579-
[["a", "b", "b", "c"], ["d", "d", "e", "e"]]
580-
),
581-
)
582-
expected = df2.groupby([("b", "d")]).groups
583-
result = df.groupby(("b", 1)).groups
584-
tm.assert_dict_equal(expected, result)
553+
with tm.assert_produces_warning(FutureWarning, match=msg):
554+
grouped = df.groupby([("to filter", "")]).groups
555+
assert grouped[("A",)] == [0]
585556

586-
df3 = DataFrame(df.values, columns=[("a", "d"), ("b", "d"), ("b", "e"), "c"])
587-
expected = df3.groupby([("b", "d")]).groups
588-
result = df.groupby(("b", 1)).groups
589-
tm.assert_dict_equal(expected, result)
557+
df = DataFrame([[1, "A"], [2, "B"]], columns=midx)
590558

591559
def test_groupby_multiindex_partial_indexing_equivalence(self):
592560
# GH 17977
@@ -615,8 +583,11 @@ def test_groupby_multiindex_partial_indexing_equivalence(self):
615583
result_max = df.groupby([("a", 1)])["b"].max()
616584
tm.assert_frame_equal(expected_max, result_max)
617585

618-
expected_groups = df.groupby([("a", 1)])[[("b", 1), ("b", 2)]].groups
619-
result_groups = df.groupby([("a", 1)])["b"].groups
586+
msg = "`groups` by one element list returns scalar is deprecated"
587+
588+
with tm.assert_produces_warning(FutureWarning, match=msg):
589+
expected_groups = df.groupby([("a", 1)])[[("b", 1), ("b", 2)]].groups
590+
result_groups = df.groupby([("a", 1)])["b"].groups
620591
tm.assert_dict_equal(expected_groups, result_groups)
621592

622593
def test_groupby_level(self, sort, multiindex_dataframe_random_data, df):
@@ -723,11 +694,15 @@ def test_list_grouper_with_nat(self):
723694
df = DataFrame({"date": date_range("1/1/2011", periods=365, freq="D")})
724695
df.iloc[-1] = pd.NaT
725696
grouper = Grouper(key="date", freq="YS")
697+
msg = "`groups` by one element list returns scalar is deprecated"
726698

727699
# Grouper in a list grouping
728700
result = df.groupby([grouper])
729-
expected = {Timestamp("2011-01-01"): Index(list(range(364)))}
730-
tm.assert_dict_equal(result.groups, expected)
701+
expected = {(Timestamp("2011-01-01"),): list(range(364)), (pd.NaT,): [364]}
702+
703+
with tm.assert_produces_warning(FutureWarning, match=msg):
704+
result = result.groups
705+
tm.assert_dict_equal(result, expected)
731706

732707
# Test case without a list
733708
result = df.groupby(grouper)
@@ -994,11 +969,14 @@ def test_gb_key_len_equal_axis_len(self):
994969
class TestIteration:
995970
def test_groups(self, df):
996971
grouped = df.groupby(["A"])
997-
groups = grouped.groups
972+
msg = "`groups` by one element list returns scalar is deprecated"
973+
974+
with tm.assert_produces_warning(FutureWarning, match=msg):
975+
groups = grouped.groups
998976
assert groups is grouped.groups # caching works
999977

1000978
for k, v in grouped.groups.items():
1001-
assert (df.loc[v]["A"] == k).all()
979+
assert (df.loc[v]["A"] == k[0]).all()
1002980

1003981
grouped = df.groupby(["A", "B"])
1004982
groups = grouped.groups

pandas/tests/groupby/test_raises.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,9 @@ def test_groupby_raises_category_np(
534534
_call_and_check(klass, msg, how, gb, groupby_func_np, ())
535535

536536

537+
@pytest.mark.filterwarnings(
538+
"ignore:`groups` by one element list returns scalar is deprecated"
539+
)
537540
@pytest.mark.parametrize("how", ["method", "agg", "transform"])
538541
def test_groupby_raises_category_on_category(
539542
how,

0 commit comments

Comments
 (0)