首页 > 解决方案 > 如何从两行中获取值的总和并将其分配给行本身 pandas

问题描述

我需要在循环 + 1 中获取第 n 行的总和,例如,在下面的数据集中:

     x    y    z
0    2    3    4
1    5    6    7
2    8    9    10
3    11   12   0

我需要对第 0 行和第 1 行的值求和,并将其分配给第 0 行本身,将第 1 行和第 2 行的值求和并将其分配给第 1 行,将第 2 行和第 3 行的值求和并将其分配给 2,以及第 3 行保留其值。结果 df 将是:

     x    y    z
0    7    9    11
1    13   15   17
2    19   21   10
3    11   12   0

想象一下我有很多行,比如 10k 并且需要一般地做

标签: pythonpandas

解决方案


通过DataFrame.rolling索引 in 来反转行的顺序DataFrame.iloc

df = df.iloc[::-1].rolling(2, min_periods=0).sum().iloc[::-1]
print (df)
      x     y     z
0   7.0   9.0  11.0
1  13.0  15.0  17.0
2  19.0  21.0  10.0
3  11.0  12.0   0.0

推荐阅读