gpt4 book ai didi

python - 在 pandas 库中使用 .apply 并收到 "np not callable"错误

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:18 25 4
gpt4 key购买 nike

我正在尝试应用我的色散函数:

def disp_calc(returns, p, wi):    #apply(disp_calc, rows = ...)
wi = wi/np.sum(wi)
ri_p = returns_stock.subtract(p,axis=0)
rp = np.nansum(wi*((ri_p)**2))
return np.sqrt(rp)

到下面我的 returns_sector df:

for i in sectors: 
returns_sector = returns[sectordict[i]]
pr = returns[sectordict[i]].apply(np.mean,axis=1)
w = newmerge.Weight[newmerge.SectorSymbol == i]
disp_df[date] = returns_sector.apply(disp_calc(returns_sector,pr,w),axis=1)

我不断收到错误:

TypeError: ("'numpy.float64' object is not callable", u'occurred at index 2017-01-03 00:00:00')

我以前从未遇到过这样的问题,并且不太确定我做错了什么。我的预期输出是将 disperson 函数应用于 returns_sector df 中的所有值。

最佳答案

您没有正确地将参数传递给 disp_calc 函数。试试这个:

disp_df[date] = returns_sector.apply(disp_calc, args=(pr, w), axis=1)

调用数据帧会自 Action 为第一个参数传递给函数。

您看到的错误是 apply() 当前的第一个参数是 disp_calc() 返回的 float ,它不是一个函数,因此不是可调用的。 Pandas 期望 apply() 函数中的第一个参数是可调用的。

关于python - 在 pandas 库中使用 .apply 并收到 "np not callable"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45343032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com