我有以下数据框C
.
>>> C
a b c
2011-01-01 0 0 NaN
2011-01-02 41 12 NaN
2011-01-03 82 24 NaN
2011-01-04 123 36 NaN
2011-01-05 164 48 NaN
2011-01-06 205 60 2
2011-01-07 246 72 4
2011-01-08 287 84 6
2011-01-09 328 96 8
2011-01-10 369 108 10
我想添加一个新列,d
,我在固定窗口(此处为 6)上应用滚动函数,我以某种方式为每一行(或日期),fix价值c
。此滚动函数中的一个循环应该是(伪):
a b c d
2011-01-01 0 0 NaN a + b*2 (a,b from this row, '2' is from 'c' on 2011-01-06)
2011-01-02 41 12 NaN a + b*2 (a,b from this row, '2' is still from 2011-01-06)
2011-01-03 82 24 NaN a + b*2
2011-01-04 123 36 NaN a + b*2
2011-01-05 164 48 NaN a + b*2
2011-01-06 205 60 2 a + b*2
2011-01-07 246 72 4
2011-01-08 287 84 6
2011-01-09 328 96 8
2011-01-10 369 108 10
在这个“循环”之后,我想将所有这 6 个计算行放入d
并运行函数调用,该函数调用又将返回one值,应该存储在另一列中,e
say:
a b c d e
2011-01-01 0 0 NaN a + b*2 ---| NaN
2011-01-02 41 12 NaN a + b*2 | NaN
2011-01-03 82 24 NaN a + b*2 | These values NaN
2011-01-04 123 36 NaN a + b*2 | are input to NaN
2011-01-05 164 48 NaN a + b*2 | function NaN
2011-01-06 205 60 2 a + b*2 ---| yielding X
2011-01-07 246 72 4 value X in
2011-01-08 287 84 6 column 'e'
2011-01-09 328 96 8
2011-01-10 369 108 10
然后这个过程将被迭代到next窗口(同样是 6 长),例如:
a b c d e
2011-01-01 0 0 NaN
2011-01-02 41 12 NaN a + b*4 (a,b from this row, '4' is from 'c' now from 2011-01-07)
2011-01-03 82 24 NaN a + b*4 (a,b from this row, '4' is still from 2011-01-07)
2011-01-04 123 36 NaN a + b*4
2011-01-05 164 48 NaN a + b*4
2011-01-06 205 60 2 a + b*4 X
2011-01-07 246 72 4 a + b*4
2011-01-08 287 84 6
2011-01-09 328 96 8
2011-01-10 369 108 10
a b c d e
2011-01-01 0 0 NaN NaN
2011-01-02 41 12 NaN a + b*4 ---| NaN
2011-01-03 82 24 NaN a + b*4 | These values NaN
2011-01-04 123 36 NaN a + b*4 | are input to NaN
2011-01-05 164 48 NaN a + b*4 | function NaN
2011-01-06 205 60 2 a + b*4 | yielding X
2011-01-07 246 72 4 a + b*4 ---| value Y in Y
2011-01-08 287 84 6 column 'e'
2011-01-09 328 96 8
2011-01-10 369 108 10
希望这足够清楚,
谢谢,
氮