2017-12-23 2 views
1

Ich habe einen Datenrahmen:Ersetzen Sie Werte von einer Spalte zu anderen mit Pandas?

 subtracted  Subs  hrs 
0  281871.120 450878.77  0.00  
1  221343.432 229535.34  0.00  
2  197454.408 32080.93  0.00  
3  41934.000 -9853.07  32080.93 

i positive Werte ersetzt werden soll (in Bezug auf Subs Spalte) von subtrahiert Spalte zu Spalte Stunden.

Erwartete Ausgabe:

 subtracted  Subs  hrs 
0  281871.120 450878.77  281871.120 
1  221343.432 229535.34  221343.432  
2  197454.408 32080.93  197454.408  
3  41934.000 -9853.07  32080.93 

Kann mir jemand empfehlen, den richtigen Weg, es zu tun?

Antwort

1

Sie können durch die Maske ersetzen durch positive Werte erstellt mit loc, where oder numpy.where:

m = df['Subs'] > 0 
df.loc[m, 'hrs'] = df['subtracted'] 

df['hrs'] = df['subtracted'].where(m, df['hrs']) 

df['hrs'] = np.where(m, df['subtracted'], df['hrs']) 

print (df) 
    subtracted  Subs   hrs 
0 281871.120 450878.77 281871.120 
1 221343.432 229535.34 221343.432 
2 197454.408 32080.93 197454.408 
3 41934.000 -9853.07 32080.930 

Für Maske durch negative Werte erstellt besteht die Möglichkeit, mask:

m = df['Subs'] < 0 
df['hrs'] = np.where(m, df['hrs'], df['subtracted']) 

df['hrs'] = df['subtracted'].mask(m, df['hrs']) 
+0

können Sie bitte einen Blick auf diese geben. https://stackoverflow.com/questions/48124946/replace-nan-values-with-the-unique-date-date-in-numpy-array – Dheeraj

Verwandte Themen