我有这个数据框:
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')
我建议您将函数包装起来,然后做类似的事情-
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文档。