gpt4 book ai didi

python - pandas 数据框 x 在范围(1,n)内的移位(x)总和

转载 作者:行者123 更新时间:2023-12-01 03:32:36 24 4
gpt4 key购买 nike

我有一个像这样的数据框,并且想要添加一个新列,该列相当于应用 shift n 次。例如,让 n = 2:

df = pd.DataFrame(numpy.random.randint(0, 10, (10, 2)), columns=['a','b'])

a b
0 0 3
1 7 0
2 6 6
3 6 0
4 5 0
5 0 7
6 8 0
7 8 7
8 4 4
9 2 2

df['c'] = df['b'].shift(1) + df['b'].shift(2)

a b c
0 0 3 NaN
1 7 0 NaN
2 6 6 3.0
3 6 0 6.0
4 5 0 6.0
5 0 7 0.0
6 8 0 7.0
7 8 7 7.0
8 4 4 7.0
9 2 2 11.0

通过这种方式,c 列获取 b 列之前 n 值的总和。

除了循环之外,是否有更好的方法来实现较大的n

最佳答案

您可以使用 rolling() 方法,window2:

df['c'] = df.b.rolling(window = 2).sum().shift()

df
a b c
0 0 3 NaN
1 7 0 NaN
2 6 6 3.0
3 6 0 6.0
4 5 0 6.0
5 0 7 0.0
6 8 0 7.0
7 8 7 7.0
8 4 4 7.0
9 2 2 11.0

关于python - pandas 数据框 x 在范围(1,n)内的移位(x)总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40700762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com