Pandas Dataframe-用倒数替换列值

Mal*_*tha 2 python pandas

我的数据框如下所示

           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
Run Code Online (Sandbox Code Playgroud)

我需要用其倒数代替第一列。熊猫有内置的方法吗?

jez*_*ael 5

我认为您需要与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
Run Code Online (Sandbox Code Playgroud)

或使用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
Run Code Online (Sandbox Code Playgroud)

或使用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
Run Code Online (Sandbox Code Playgroud)