继续这个问题
Python custom function using rolling_apply for pandas,关于使用rolling_apply.虽然我已经使用了我的函数,但我正在努力处理需要两列或更多列作为输入的函数:
创建与以前相同的设置
import pandas as pd
import numpy as np
import random
tmp = pd.DataFrame(np.random.randn(2000,2)/10000,
index=pd.date_range('2001-01-01',periods=2000),
columns=['A','B'])
但稍微改变功能需要两列.
def gm(df,p):
df = pd.DataFrame(df)
v =((((df['A']+df['B'])+1).cumprod())-1)*p
return v.iloc[-1]
它会产生以下错误:
pd.rolling_apply(tmp,50,lambda x: gm(x,5))
KeyError: u'no item named A'
我认为这是因为lambda函数的输入是长度为50且仅在第一列的ndarray,并且不会将两列作为输入.有没有办法将两列作为输入并在rolling_apply函数中使用它.
再次感谢任何帮助……
1998

被折叠的 条评论
为什么被折叠?



