像pandas中的函数一样的电子表格

时间:2013-04-10 08:10:10

标签: python pandas

我的数据框中包含行选项定价模型的参数:

df.Spot是现货价格

的列

df.Strike是罢工价格的专栏,

我有一个函数blsimpv(spot, strike, rf, dy, T, price, w),用给定参数计算期权的隐含波动率。所有参数都在数据帧中。 blsimpv函数只接受值的单个输入。

想要通过将值传递给函数来在pandas数据框中创建新列。

df['vol']= df.applymap(blsimpv( df.spot, df.strike,  df.rf, df.dy, df.T,
                            df.MTMPrice, df.w))

不能正常工作,因为它将pd.series传递给我的函数,该函数只能在浮点数上计算。 必须是一个简单的方法,只需将函数应用于pandas中的行中的元素吗?

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我认为最简单的方法是稍微改变你的函数(或使用包装器函数,如下所示),以便它接受每个DataFrame row作为参数:

def blsimpv_(row):
    blsimpv(row['spot'], row['strike'], row['rf'], row['dy'], row['T'], row['price'], row['w'])

然后你可以apply这个(按行):

apply(blsimpv_, axis=1)