2017-11-20 3 views
1

Meine Datenrahmen wiePandas Datenrahmen - Spaltenwerte ersetzen mit reziproken

  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 

ich erste Spalte mit ihren reziproken Werte ersetzen müssen folgt aussieht. Gibt es eine eingebaute Möglichkeit, dies in Pandas zu tun?

Antwort

3

Ich glaube, Sie brauchen teilen mit 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 

Oder verwenden 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 

Oder verwenden 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 
Verwandte Themen