【发布时间】:2022-02-22 11:51:51
【问题描述】:
我有一个这样的数据框:
Date Category1 Cat2 Cat3 Cat4 Value
0 2021-02-02 4310 0 1 0 1082.00
1 2021-02-03 5121 2 0 0 -210.82
2 2021-02-03 4310 0 0 0 238.41
3 2021-02-12 5121 2 2 0 -1489.11
4 2021-02-25 6412 1 0 0 -30.97
5 2021-03-03 5121 1 1 0 -189.91
6 2021-03-09 6412 0 0 0 238.41
7 2021-03-13 5121 0 0 0 -743.08
日期列已转换为日期时间格式,值是浮点数,其他列是字符串。
我正在尝试按月和每个级别的类别对数据框进行分组,例如:
-
级别 1 = 过滤类别 1 并为每个类别的每个月求和值:
Date Category1 Value 0 2021-02 4310 1320.41 1 2021-02 5121 -1699.93 2 2021-02 6412 -30.97 3 2021-03 5121 -1489.11 4 2021-03 6412 -932.99 -
级别 2 = 仅过滤类别 2(一个输出数据帧)和类别 1 + 2 的串联(另一个输出数据帧):
Date Cat2 Value 0 2021-02 0 1320.41 1 2021-02 1 -1699.93 2 2021-02 2 -30.97 3 2021-03 0 -504.67 4 2021-03 1 -189.91第二次输出:
Date Cat1+2 Value 0 2021-02 43100 1320.41 1 2021-02 51212 -1699.93 2 2021-02 64121 -30.97 3 2021-03 51210 -743.08 4 2021-03 51211 -189.91 5 2021-03 64120 238.41 -
第 3 级:仅过滤类别 3 和类别 1+2+3
-
等等
我可以一次进行一个分组(按日期或按类别),但我不能将它们组合起来。 按日期分组:
df.groupby(df["Date"].dt.year)
按类别分组:
df.groupby('Category1')['Value'].sum()
【问题讨论】: