Python 正确使用带参数的lambda函数

Python 正确使用带参数的lambda函数,python,pandas,lambda,ta-lib,Python,Pandas,Lambda,Ta Lib,我想对数据帧应用一个函数,以便使用lambda创建一个具有平均值的新数据帧,我得到以下错误: TypeError:(“参数'real'的类型不正确(应为numpy.ndarray,got Series)”,u'出现在索引2018-01-02 00:00:00') 以下是我的数据: AA AAPL FB GOOG TSLA Date

我想对数据帧应用一个函数,以便使用lambda创建一个具有平均值的新数据帧,我得到以下错误:

TypeError:(“参数'real'的类型不正确(应为numpy.ndarray,got Series)”,u'出现在索引2018-01-02 00:00:00')

以下是我的数据:

  AA        AAPL          FB         GOOG        TSLA  
Date                                                                     
2018-01-02  55.169998  168.987320  181.419998  1065.000000  320.529999   
2018-01-03  54.500000  168.957886  184.669998  1082.479980  317.250000   
2018-01-04  54.700001  169.742706  184.330002  1086.400024  314.619995   
2018-01-05  54.090000  171.675278  186.850006  1102.229980  316.579987   
2018-01-08  55.000000  171.037628  188.279999  1106.939941  336.410004   
2018-01-09  54.200001  171.018005  187.869995  1106.260010  333.690002  
这就是我目前正在尝试的:

data = pd.read_csv('help.csv', parse_dates=True, index_col=0)
sma20 = data.apply(lambda x: ta.SMA(x, 20), axis=0)
print(sma20.tail())

在pandas的较新版本中,如果希望
apply
ndarray
传递给函数,则可以提供
raw=True
参数

# data.apply(lambda x: ta.SMA(x, 20), axis=0, raw=True)
# Same as,
data.apply(ta.SMA, axis=0, raw=True, args=(20, ))

PS:您不需要完成
lambda

!错误的轴。sma20=data.apply(λx:ta.SMA(x,3),axis=0,raw=True),谢谢。