0

我在 DataFrame 中有这两个系列:

A    B
1    2
2    3
2    1
4    3
5    2

我会创建一个新列] 来计算前 2 行(或更多)行的滚动窗口中列中的值比列中的值高df['C多少倍。df['A']df['B']

结果将是这样的:

    A    B   C
    1    2   NaN
    2    3   NaN   
    2    1   0
    4    3   1
    5    2   2

我还想创建一个列来汇总数据,df['A']而不是df['B']总是使用滚动窗口。

结果如下:

    A    B   C    D
    1    2   NaN  NaN
    2    3   NaN  NaN
    2    1   0    0
    4    3   1    2
    5    2   2    6

提前致谢。

4

1 回答 1

0

IIUC

df.assign(C=df.A.gt(df.B).rolling(2).sum().shift(),D=(df.A.gt(df.B)*df.A).rolling(2).sum().shift())
Out[1267]: 
   A  B    C    D
0  1  2  NaN  NaN
1  2  3  NaN  NaN
2  2  1  0.0  0.0
3  4  3  1.0  2.0
4  5  2  2.0  6.0
于 2017-11-30T20:50:53.253 回答