2017-07-15 8 views
-1

I df haben, die ähnlich ist der folgende:Pandas, bearbeite Datenrahmen

value is_1 is_2 is_3 
5  0  1 0 
7  0  0 1 
4  1  0 0 

(es ist gewährleistet, daß die Summe der Werte von Spalten is_1 ... is_n durch jede Zeile 1 Berechnung gleich ist)

ich brauche das nächste Ergebnis zu erhalten:

is_1 is_2 is_3 
0  5  0 
0  0  7 
4  0  0 

(ich sollte die Spalte is_k finden, die mehr als 0, und füllen sie ihn mit dem Wert von „Wert“ -Spalte)

Was ist der beste Weg, um es zu erreichen?

Antwort

2

Ich würde es auf diese Weise tun:

In [16]: df = df.mul(df.pop('value').values, axis=0) 

In [17]: df 
Out[17]: 
    is_1 is_2 is_3 
0  0  5  0 
1  0  0  7 
2  4  0  0