Skip to content

Commit c918f7e

Browse files
gfyoungjreback
authored andcommitted
TST: Test nLargest with MI grouper (#29423)
Closes #21411
1 parent b4adb71 commit c918f7e

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

pandas/tests/groupby/test_function.py

+45
Original file line numberDiff line numberDiff line change
@@ -607,6 +607,51 @@ def test_nlargest():
607607
tm.assert_series_equal(gb.nlargest(3, keep="last"), e)
608608

609609

610+
def test_nlargest_mi_grouper():
611+
# see gh-21411
612+
npr = np.random.RandomState(123456789)
613+
614+
dts = date_range("20180101", periods=10)
615+
iterables = [dts, ["one", "two"]]
616+
617+
idx = MultiIndex.from_product(iterables, names=["first", "second"])
618+
s = Series(npr.randn(20), index=idx)
619+
620+
result = s.groupby("first").nlargest(1)
621+
622+
exp_idx = MultiIndex.from_tuples(
623+
[
624+
(dts[0], dts[0], "one"),
625+
(dts[1], dts[1], "one"),
626+
(dts[2], dts[2], "one"),
627+
(dts[3], dts[3], "two"),
628+
(dts[4], dts[4], "one"),
629+
(dts[5], dts[5], "one"),
630+
(dts[6], dts[6], "one"),
631+
(dts[7], dts[7], "one"),
632+
(dts[8], dts[8], "two"),
633+
(dts[9], dts[9], "one"),
634+
],
635+
names=["first", "first", "second"],
636+
)
637+
638+
exp_values = [
639+
2.2129019979039612,
640+
1.8417114045748335,
641+
0.858963679564603,
642+
1.3759151378258088,
643+
0.9430284594687134,
644+
0.5296914208183142,
645+
0.8318045593815487,
646+
-0.8476703342910327,
647+
0.3804446884133735,
648+
-0.8028845810770998,
649+
]
650+
651+
expected = Series(exp_values, index=exp_idx)
652+
tm.assert_series_equal(result, expected, check_exact=False, check_less_precise=True)
653+
654+
610655
def test_nsmallest():
611656
a = Series([1, 3, 5, 7, 2, 9, 0, 4, 6, 10])
612657
b = Series(list("a" * 5 + "b" * 5))

0 commit comments

Comments
 (0)