我有一个Pandas 的藤壶.我需要根据列值分组.
State Dates Sales_Amt
A 1/1/2023 123
A 2/1/2023 123
A 3/1/2023 321
A 4/1/2023 321
A 5/1/2023 123
A 6/1/2023 123
A 7/1/2023 123
B 1/1/2023 456
B 2/1/2023 456
B 3/1/2023 456
B 4/1/2023 789
B 5/1/2023 789
B 6/1/2023 789
B 7/1/2023 123
B 8/1/2023 123
但是,如果有下一个组值与前一个分组值相同,则需要将其作为新组分开.
State Start_Dates End_Dates Sales_Amt
A 1/1/2023 2/1/2023 123
A 3/1/2023 4/1/2023 321
A 5/1/2023 7/1/2023 123
B 1/1/2023 3/1/2023 456
B 4/1/2023 6/1/2023 789
B 7/1/2023 8/1/2023 123
怎样才能得到上面的结果?
我试过下面的代码,但它只适用于B组,而不适用于A组
df = (df.groupby(['State','Sales_Amt'],group_keys=True)
.agg(Start_Dates=('Dates', np.min),
End_Dates=('Dates', np.max))
.sort_values(['State','Start_Dates','End_Dates'],ascending=True)
.reset_index()
)