Python 如何将np.power应用于数据帧
我有两个朋友。一个包含速率,一个包含需要根据df1速率表计算的空值。这两个表如下所示: 我想用下面的公式计算df2中从0到2的每一列 (1+费率)^(-年龄) 因此,我的结果表应该如下所示:Python 如何将np.power应用于数据帧,python,pandas,Python,Pandas,我有两个朋友。一个包含速率,一个包含需要根据df1速率表计算的空值。这两个表如下所示: 我想用下面的公式计算df2中从0到2的每一列 (1+费率)^(-年龄) 因此,我的结果表应该如下所示: df1 0 1 2 rate 0.54 0.45 0.25 df2 Age 0 1 2 0 1 NaN NaN NaN 1 2 NaN NaN
df1
0 1 2
rate 0.54 0.45 0.25
df2
Age 0 1 2
0 1 NaN NaN NaN
1 2 NaN NaN NaN
...
29 30 NaN NaN NaN
results
Age 0 1 2
0 1 (1+0.54)^(-1) (1+0.45)^(-1) (1+0.25)^(-1)
1 2 (1+0.54)^(-2) (1+0.45)^(-2) (1+0.25)^(-2)
...
29 30 (1+0.54)^(-30) (1+0.45)^(-30) (1+0.25)^(-30)
我试过我的密码
y=np.power(1+rate.to_numpy(),-(df.Age))
但我收到了错误信息:
操作数无法与形状(1,6)(30,)一起广播
如何修复代码?根据您的示例,您希望播放
年龄
:
np.power(1 + df1.loc['rate'].to_numpy(), -df2['Age'].to_numpy()[:,None])
输出(用于3行)
array([[6.49350649e-01, 6.89655172e-01, 8.00000000e-01],
[4.21656266e-01, 4.75624257e-01, 6.40000000e-01],
[2.36798188e-06, 1.44198231e-05, 1.23794004e-03]])