假设我有熊猫的季度或月度数据,我想找出每年的总和。最有效的方法是什么
例如,假设我有Quarter和Value,我想创建一个新列“YearSum”,对最近的4个值进行汇总
Quarter, Value, YearSum
1, 2, null
2, 2, null
3, 3, null
4, 3, 10
5, 4, 12
6, 4, 14
7, 5, 16
8, 5, 18
我知道我可以通过手动添加这样的总数来做到这一点:
df['YearSum'] = df.Value.shift(3) + df.Value.shift(2) + df.Value.shift(1) + df.Value
有没有更有效的方法
您可以使用
groupby
每x行求和一次:它将创建一个系列,其中每个值都是4行的总和,表示一年中所有季度的总和(假设您的4行对齐良好,而不是从第3季度开始)
编辑:我找到了Take the sum of every N rows in a pandas series ,它也有同样的功能,建议使用其他选项。 Edit2:注意,它只需要排他4行。意味着它需要1-2-3-4,然后是5-6-7-8,而不是第一次求和后的2-3-4-5。不知道你想做什么
df['YearSum'] = df['Value'].rolling(min_periods=4, window=4).sum()
Documentation
相关问题 更多 >
编程相关推荐