无法将系列转换为 使用一个模块时出错

问题描述 投票:0回答:1

我有这个数据框:

     bprice    cprice  strike  irate  tleft
0    26436.90   91.70   26400     10    0.5
1    26423.00   98.90   26400     10    0.5
2    26436.00   90.00   26400     10    0.5
3    26416.35  103.60   26400     10    0.5

我正在应用一个功能(http://code.mibian.net/]

我的数据帧上的[c = mibian.BS([1.4565, 1.45, 1, 30], callPrice=0.0359)

df2['IV'] = df2.apply(lambda df: mb.BS([df2['bprice'],26400,10,df2['tleft']],
                                 callPrice=df2['cprice']).impliedVolatility, axis=1)

但是我得到了错误

TypeError:(“无法将系列转换为”,'发生在索引0')

python-3.x pandas
1个回答
0
投票

我建议您将函数包装起来,然后做类似的事情-

def my_func(x):
    return mb.BS([x['bprice'], 26400, 10 x['tleft']],
        callPrice=x['cprice']).impliedVolatility

df2['IV'] = df2.apply(my_func, axis=1)

以您在代码中实现的方式,您实际上从数据框中调用了带有列(pd.Series)的mb.BS。请参阅熊猫apply文档。

© www.soinside.com 2019 - 2024. All rights reserved.