Python 正确使用带参数的lambda函数
我想对数据帧应用一个函数,以便使用lambda创建一个具有平均值的新数据帧,我得到以下错误: TypeError:(“参数'real'的类型不正确(应为numpy.ndarray,got Series)”,u'出现在索引2018-01-02 00:00:00') 以下是我的数据: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
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),谢谢。