[FIXED] Ersetzen Sie Nullwerte in einer Spalte basierend auf dem Wert einer anderen Spalte

Ausgabe

Ich habe einen Datenrahmen, der zwei Spalten enthält, von denen eine als Treffer bezeichnet wird:

0      NaN
1      5.0
2      NaN
3      5.0
4      NaN
      ... 
295    NaN
296    NaN
297    NaN
298    NaN
299    NaN

und eine weitere Spalte namens converted:

0      0
1      0
2      0
3      0
4      0
      ..
345    0
346    1
347    0
348    1
349    0

Was ich tun möchte, ist zu überprüfen, ob die Zeile in der konvertierten Spalte 0 oder 1 hat, wenn sie 0 hat, hat die Zeile in Treffern den Wert 6 (er ersetzt den Nullwert) und wenn sie 1 hat, wird sie die ersetzen Wert mit 9

Ich habe versucht, Lambda zu verwenden, gab mir aber kein gutes Ergebnis:

df['hits'] = df.apply(
    lambda row: 9 if df['converted'] == 1 & df['hits'] == 'nan' else 6
,axis=1) 

Lösung

Sie müssen die dflokale Variable ändernrow

df['hits'] = df.apply(
    lambda row: 9 if row['converted'] == 1 & pd.isnull(row['hits']) else 6
,axis=1) 

Oder mit boolescher Maskierung

df.loc[df['converted'].eq(0) & df['hits'].isna(), 'hits'] = 6
df.loc[df['converted'].eq(1), 'hits'] = 9 


Beantwortet von –
Ynjxsjmh


Antwort geprüft von –
Pedro (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like