您能否建议如何添加季度列,包含月份值的总和
部分 | 2024-03-01 00:00:00 | 2024-04-01 00:00:00 | 2024-05-01 00:00:00 | 2024-06-01 00:00:00 | 2024-07-01 00:00:00 | 2024-08-01 00:00:00 | 2024-09-01 00:00:00 |
---|---|---|---|---|---|---|---|
第 1 部分 | 6 | 8 | 2 | 3 | 0 | 5 | 5 |
第2部分 | 7 | 1 | 3 | 8 | 9 | 4 | 10 |
第3部分 | 10 | 7 | 4 | 5 | 6 | 10 | 0 |
第4部分 | 6 | 9 | 3 | 0 | 10 | 9 | 10 |
第 5 部分 | 2 | 1 | 10 | 8 | 7 | 3 | 3 |
第 6 部分 | 1 | 0 | 4 | 1 | 1 | 7 | 8 |
我试图得到这样的输出:
部分 | 2024-03-01 00:00:00 | 24 年第一季度 | 2024-04-01 00:00:00 | 2024-05-01 00:00:00 | 2024-06-01 00:00:00 | 24 年第 2 季度 | 2024-07-01 00:00:00 | 2024-08-01 00:00:00 | 2024-09-01 00:00:00 | 24 年第 3 季度 |
---|---|---|---|---|---|---|---|---|---|---|
第 1 部分 | 6 | 6 | 8 | 2 | 3 | 13 | 0 | 5 | 5 | 10 |
第2部分 | 7 | 7 | 1 | 3 | 8 | 12 | 9 | 4 | 10 | 23 |
第3部分 | 10 | 10 | 7 | 4 | 5 | 16 | 6 | 10 | 0 | 16 |
第4部分 | 6 | 6 | 9 | 3 | 0 | 12 | 10 | 9 | 10 | 29 |
第 5 部分 | 2 | 2 | 1 | 10 | 8 | 19 | 7 | 3 | 3 | 13 |
第 6 部分 | 1 | 1 | 0 | 4 | 1 | 5 | 1 | 7 | 8 | 16 |
Grouper
对季度数据进行分组;然后您可以将结果数据的索引转换为 Period
并将其连接回数据,再次转置以获得所需的结果:
tmp = df.T
tmp.index = pd.to_datetime(tmp.index)
res = tmp.groupby(pd.Grouper(freq='Q')).sum()
out = pd.concat([tmp, res]).T
输出:
2024-03-01 00:00:00 2024-04-01 00:00:00 2024-05-01 00:00:00 \
part
part1 6 8 2
part2 7 1 3
part3 10 7 4
part4 6 9 3
part5 2 1 10
part6 1 0 4
2024-06-01 00:00:00 2024-07-01 00:00:00 2024-08-01 00:00:00 \
part
part2 8 9 4
part3 5 6 10
part4 0 10 9
part5 8 7 3
part6 1 1 7
2024-09-01 00:00:00 2024Q1 2024Q2 2024Q3
part
part1 5 6 13 10
part2 10 7 12 23
part3 0 10 16 16
part4 10 6 12 29
part5 3 2 19 13
part6 8 1 5 16