我在数据框上使用numpy_financial.npv(rate,values)进行净现值计算时出错。
我可以使用数据帧进行净现值计算吗?不确定如何修复此问题。手动遍历每一行?
npvValues = ['value_1',' value_2', 'value_3', 'value_4', 'value_5', 'RFR']
round(df[npvValues].sample(5),1).sort_index(ascending=False)
DATE value_1 value_2 value_3 value_4 value_5 RFR
2017-04-03 38.5 92.8 168.7 257.0 354.0 2.1
2016-01-11 35.7 86.1 156.6 238.7 328.6 2.3
2013-07-29 28.1 67.8 123.3 187.8 258.6 2.3
2011-05-02 24.2 58.3 106.1 161.6 222.5 3.4
2010-01-18 24.4 58.8 107.0 163.0 224.5 3.8净现值计算
value = ['value_1',' value_2', 'value_3', 'value_4', 'value_5']
df['NPV_IV'] = npf.npv(rate=df['RFR']/100, values=df[value])
df['NPV_IV']下面是完整的错误跟踪Full Error Trace
发布于 2021-09-15 06:10:54
npv中的values参数只接受一维数组,所以你需要遍历它。
df = pd.read_csv('t.csv')
value = ['value_1', 'value_2', 'value_3', 'value_4', 'value_5']
num = df[value].to_numpy()
rate_lists = df['RFR'].tolist()
new_col = []
for index, i in enumerate(num):
n = npf.npv(rate=rate_lists[index] / 100, values=i)
new_col.append(n)
df['NPV_IV'] = new_col
print(df)
DATE value_1 value_2 value_3 value_4 value_5 RFR NPV_IV
0 2017-04-03 38.5 92.8 168.7 257.0 354.0 2.1 858.450837
1 2016-01-11 35.7 86.1 156.6 238.7 328.6 2.3 792.491237
2 2013-07-29 28.1 67.8 123.3 187.8 258.6 2.3 623.725804
3 2011-05-02 24.2 58.3 106.1 161.6 222.5 3.4 520.644433
4 2010-01-18 24.4 58.8 107.0 163.0 224.5 3.8 519.488982https://stackoverflow.com/questions/69187776
复制相似问题