我无法运行下面的代码。
我定义了一个接受多个参数的函数。当对数据进行硬编码时,该函数可以工作,但当将该函数应用于数据帧时-它不工作。我之前在dataframe中使用过不带参数的"apply“函数--它们工作得很好,但是一旦我使用这个带有多个参数的函数,它就会抛出一个错误。
import pandas as pd
import mibian
def IV(spot,strike,premium,cp):
interest_rate = 10
days_to_expiry = 11
if cp == 'CE':
c = mibian.BS([spot,strike,interest_rate,days_to_expiry],callPrice=premium)
return c.impliedVolatility
else:
c = mibian.BS([spot,strike,interest_rate,days_to_expiry],putPrice=premium)
return c.impliedVolatility
df = pd.DataFrame(
{
"Symbol": ['a','b','c','d'],
"Spot":[100,200,300,400],
"Strike":[105,205,305,405],
"CP":['CE','PE','CE','PE'],
"LTP":[2,3,4,5]
}
)
df['IV'] = IV(df.Spot,df.Strike,df.LTP,df.CP)
**#df['IV'] = IV(100,105,5,'PE').round(decimals=2)**
df['IV'] = df['IV'].round(decimals=2)
print(df)我得到下面的错误消息
Traceback (most recent call last):
File "c:/Users/Arishka/Desktop/Python/iv_greeks.py", line 27, in <module>
df['IV'] = IV(df.Spot,df.Strike,df.LTP,df.CP)
File "c:/Users/Arishka/Desktop/Python/iv_greeks.py", line 10, in IV
if cp == 'CE':
File "C:\Users\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\generic.py", line 1552, in __nonzero__
raise ValueError(
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().发布于 2019-11-19 12:53:45
import pandas as pd
import mibian
def IV(x):
spot, strike, premium, cp = x
interest_rate = 10
days_to_expiry = 11
if cp == 'CE':
c = mibian.BS([spot, strike, interest_rate, days_to_expiry], callPrice=premium)
return c.impliedVolatility
elif cp == 'PE':
c = mibian.BS([spot, strike, interest_rate, days_to_expiry], putPrice=premium)
return c.impliedVolatility
df = pd.DataFrame(
{
"Symbol": ['a','b','c','d'],
"Spot":[100,200,300,400],
"Strike":[105,205,305,405],
"CP":['CE','PE','CE','PE'],
"LTP":[2,3,4,5]
}
)
df['IV'] = df[['Spot', 'Strike', 'LTP', 'CP']].apply(IV, axis=1)结果
Symbol Spot Strike CP LTP IV
0 a 100 105 CE 2 54.687500
1 b 200 205 PE 3 0.000010
2 c 300 305 CE 4 27.832031
3 d 400 405 PE 5 9.765625https://stackoverflow.com/questions/58926073
复制相似问题