这将使用列X,Y,Z和N中的值,但它可能会帮助您查看问题所在:
>>> (foo[['A','C']]
.multiply(foo[['X','Z']].values)
.divide(foo['N'].values,axis=0))
A B C
0 0.000452 0.004049 0.010364
1 0.004716 0.001566 0.012881
2 0.001488 0.000296 0.004415
3 0.000269 0.001168 0.000327
4 0.001386 0.008267 0.012048
5 0.000084 0.009588 0.003189
6 0.000099 0.001063 0.006493
7 0.009958 0.035766 0.012618
8 0.001252 0.000860 0.000420
9 0.006422 0.005013 0.004108
结果在列A,B,C上编制索引.不清楚结果列应该是什么,这就是您获取NaN的原因.
使用.values附加上面的函数将为您提供所需的结果,但是由您来替换索引和列.
>>> (foo[['A',axis=0)).values
array([[ 4.51754797e-04,4.04911292e-03,1.03638836e-02],[ 4.71588457e-03,1.56556402e-03,1.28805803e-02],[ 1.48820116e-03,2.95700572e-04,4.41516179e-03],[ 2.68791866e-04,1.16836123e-03,3.27217820e-04