我的数据帧如下

           0     1         2         3         4
           0   0.660377  0.75  0.728395  1.000000  0.011364
           1   0.452830  0.50  0.629630  0.083333  0.045455
           2   0.971698  0.75  0.975309  0.166667  0.079545
           3   0.169811  0.25  0.172840  0.291667  0.068182
           4   0.216981  0.25  0.222222  0.000000  0.090909
           5   0.669811  0.50  0.839506  0.333333  0.045455

我需要用它的倒数替换第一列。在熊猫身上有什么内置的方法吗?

最佳答案

我想你需要用1除法:

df[0] = 1 / df[0]
print (df)
          0     1         2         3         4
0  1.514287  0.75  0.728395  1.000000  0.011364
1  2.208334  0.50  0.629630  0.083333  0.045455
2  1.029126  0.75  0.975309  0.166667  0.079545
3  5.888900  0.25  0.172840  0.291667  0.068182
4  4.608698  0.25  0.222222  0.000000  0.090909
5  1.492958  0.50  0.839506  0.333333  0.045455

或使用DataFrame.rdiv
df[0] = df[0].rdiv(1)
print (df)
          0     1         2         3         4
0  1.514287  0.75  0.728395  1.000000  0.011364
1  2.208334  0.50  0.629630  0.083333  0.045455
2  1.029126  0.75  0.975309  0.166667  0.079545
3  5.888900  0.25  0.172840  0.291667  0.068182
4  4.608698  0.25  0.222222  0.000000  0.090909
5  1.492958  0.50  0.839506  0.333333  0.045455

或使用numpy.reciprocal
df[0] = np.reciprocal(df[0])
print (df)
          0     1         2         3         4
0  1.514287  0.75  0.728395  1.000000  0.011364
1  2.208334  0.50  0.629630  0.083333  0.045455
2  1.029126  0.75  0.975309  0.166667  0.079545
3  5.888900  0.25  0.172840  0.291667  0.068182
4  4.608698  0.25  0.222222  0.000000  0.090909
5  1.492958  0.50  0.839506  0.333333  0.045455

10-04 17:52