【发布时间】:2020-11-09 22:08:29
【问题描述】:
我有一个 Yield 函数,它接受多个参数和一个数据框,其中包含多个包含参数输入的列。
def yield(price, par, maturity, coup, freq)
df:
Name Price Years_to_Maturity Coup
abcd 98 4.5 375
efgh 94 3 425
我想通过使用数据框中的列应用函数,在数据框中创建一个名为“Yield”的新列,但我无法成功地做到这一点。
我知道该函数适用于直接输入,但我正在努力让它适用于多个列和常量(我希望 par 和频率保持不变)。我想将该函数应用于每一行,例如:
df["Yield"] = df.apply(yield(df["price"], 100, df["Years_to_Maturity"], df["Coup"], 2), axis=1)
我尝试使用在类似答案中找到的以下方法,但由于缺少必需的位置参数,我得到了 TypeError。我已尝试解决此问题,但出现了其他错误。
df['new_column_name'] = df.apply(lambda x: my_function(x['value_1'], x['value_2']), axis=1)
如何通过输入现有列和固定值的组合来使用该函数创建新列?
【问题讨论】: