Skip to content

Commit 55fe96b

Browse files
add test
1 parent 1ef4d3b commit 55fe96b

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

pandas/tests/resample/test_resampler_grouper.py

+59
Original file line numberDiff line numberDiff line change
@@ -873,3 +873,62 @@ def test_groupby_resample_then_groupby_is_reused_when_index_is_set_from_column()
873873
result_3 = gb[["numbers"]].transform("sum")
874874

875875
tm.assert_frame_equal(result_1, result_3)
876+
877+
878+
def test_groupby_resample_then_groupby_is_reused_when_groupby_selection_is_not_none():
879+
# GH 59350
880+
df = DataFrame(
881+
data={
882+
"datetime": [
883+
pd.to_datetime("2024-07-30T00:00Z"),
884+
pd.to_datetime("2024-07-30T00:01Z"),
885+
],
886+
"group": ["A", "A"],
887+
"numbers": [100, 200],
888+
},
889+
index=[1, 0],
890+
)
891+
892+
gb = df.groupby("group")
893+
gb = gb[["numbers", "datetime"]] # gb._selection is ["numbers", "datetime"]
894+
895+
# use gb
896+
result_1 = gb.transform("max")
897+
898+
index = Index([1, 0])
899+
expected = DataFrame(
900+
{
901+
"numbers": [200, 200],
902+
"datetime": [
903+
pd.to_datetime("2024-07-30T00:01Z"),
904+
pd.to_datetime("2024-07-30T00:01Z"),
905+
],
906+
},
907+
index=index,
908+
)
909+
910+
tm.assert_frame_equal(result_1, expected)
911+
912+
# resample gb, unrelated to above
913+
rs = gb.resample("1min", on="datetime")
914+
result_2 = rs.aggregate({"numbers": "sum"}) # Enter the `except IndexError:` block
915+
916+
index = pd.MultiIndex.from_arrays(
917+
[
918+
["A", "A"],
919+
[pd.to_datetime("2024-07-30T00:00Z"), pd.to_datetime("2024-07-30T00:01Z")],
920+
],
921+
names=[
922+
"group",
923+
"datetime",
924+
],
925+
)
926+
columns = pd.MultiIndex.from_arrays([["numbers"], ["numbers"]])
927+
expected = DataFrame([[100], [200]], index=index, columns=columns)
928+
929+
tm.assert_frame_equal(result_2, expected)
930+
931+
# reuse gb, unrelated to above
932+
result_3 = gb.transform("max")
933+
934+
tm.assert_frame_equal(result_1, result_3)

0 commit comments

Comments
 (0)