pandas rolling_apply cumprod

时间:2014-06-27 22:12:28

标签: python pandas

我正在努力将一个滚动的累积产品推广到熊猫系列中。我的输入系列是:

   s
0  1
1  2
2  3
3  4
4  5
5  6

我想得到一个结果系列,它给我以前的&n;' n'值。所以,如果' n'是3,我想得到:

   s
0  n/a
1  n/a
2  6
3  24
4  60
5  120

我提出的代码使用了rolling_apply和lambda函数并产生了一个TypeError:

import pandas as pnd
df = pnd.DataFrame()
df['s'] = [1,2,3,4]
print (df)
print (pnd.rolling_apply(df.s,2,lambda x : x.cumprod()))

TypeError: only length-1 arrays can be converted to Python scalars

有谁知道怎么做?

1 个答案:

答案 0 :(得分:3)

感谢user2357112。这是我提出的有效的代码......

import pandas as pnd
df = pnd.DataFrame()
df['s'] = [1,2,3,4, 5, 6]
print (df)
print (pnd.rolling_apply(df.s,3,lambda x : x.prod()))