Python 如何将np.power应用于数据帧

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速率表计算的空值。这两个表如下所示:

我想用下面的公式计算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   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]])