pandas可以将滚动窗口转换为行吗?
>> df
Close
0 3.69
1 9.14
2 9.49
3 15.84
4 17.00
5 26.31
pandas中有收费操作可以给我我想要转置的最后N个值,但是如何将它们插入到行中?
>> df
Close 1 2 3
0 3.69 NaN NaN NaN
1 9.14 3.69 NaN NaN
2 9.49 9.14 3.69 NaN
3 15.84 9.49 9.14 3.69
4 17.00 15.84 9.49 9.14
5 26.31 17.00 15.84 9.49
答案 0 :(得分:1)
我认为你需要shift
:
N = 3
for x in range(1, N + 1):
df[x] = df['Close'].shift(x)
print (df)
Close 1 2 3
0 3.69 NaN NaN NaN
1 9.14 3.69 NaN NaN
2 9.49 9.14 3.69 NaN
3 15.84 9.49 9.14 3.69
4 17.00 15.84 9.49 9.14
5 26.31 17.00 15.84 9.49
因为rolling
使用了某些聚合函数,例如sum
:
N = 3
for x in range(1, N + 1):
df[x] = df['Close'].rolling(x+1).sum()
print (df)
Close 1 2 3
0 3.69 NaN NaN NaN
1 9.14 12.83 NaN NaN
2 9.49 18.63 22.32 NaN
3 15.84 25.33 34.47 38.16
4 17.00 32.84 42.33 51.47
5 26.31 43.31 59.15 68.64