如何为pandas数据帧列的每一行计算最后n行的总和



如何更改数据,使某些pandas df中的每个条目现在都显示最后4个条目的总和?前3个条目可以保留为累积总和,但在前3个之后,我想要每个条目条目的值为原始列中最后4个的总和。

例如,1、2、3、4、5、2将变为1、3(2+1(6(3+2+1(、10(4+3+2+1、14(5+4+3+2(、14(2+5+4+3(

谢谢。

您可以使用大小为4和最小大小为1rolling()(移动窗口(,然后使用sum()

import pandas as pd
df = pd.DataFrame({"A":[1, 2, 3, 4, 5, 2]})
df['B'] = df.rolling(4, min_periods=1).sum()
print(df)

结果

A     B
0  1   1.0
1  2   3.0
2  3   6.0
3  4  10.0
4  5  14.0
5  2  14.0

最新更新