熊猫滚动转置?

时间:2017-07-20 10:24:19

标签: pandas

pandas可以将滚动窗口转换为行吗?

pandas.DataFrame.rolling

>> 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

1 个答案:

答案 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