我有一个这样的数据框,并希望添加一个新列,相当于应用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
获取列n
中之前b
值的总和。
除了循环之外,是否有更好的方法可以为大型n
完成此操作?
答案 0 :(得分:2)
您可以将long
方法与rolling()
window
一起使用:
2