So ändern Sie die Werte einer Spalte basierend auf zwei Bedingungen in Python
Nico Coallier
Ich habe einen Datensatz, in dem ich die Zeit in einem Spiel und die Zeit eines Ereignisses habe.
EVENT GAME
0:34 0:43
NaN 0:23
2:34 3:43
NaN 4:50
Ich möchte das NaN in der Spalte EVENT, wobei GAME <0,24 ist, durch den Wert in der Spalte GAME ersetzen.
df['EVENT'][(df['GAME'] < '0:24') & (df['EVENT'] == 'NaN')] = df['GAME']
Ich habe es versucht, aber es funktioniert nicht. Entschuldigung, wenn es offensichtlich ist. Ich bin neu in Python.
Jezreel
Sie können isnull
zur Überprüfung verwenden NaN
:
df.loc[(df['GAME'] < '0:24') & (df['EVENT'].isnull()), 'EVENT'] = df['GAME']
print (df)
EVENT GAME
0 0:34 0:43
1 0:23 0:23
2 2:34 3:43
3 NaN 4:50
Eine andere Lösung mit mask
:
mask = (df['GAME'] < '0:24') & (df['EVENT'].isnull())
df['EVENT'] = df['EVENT'].mask(mask, df['GAME'])
print (df)
EVENT GAME
0 0:34 0:43
1 0:23 0:23
2 2:34 3:43
3 NaN 4:50
Oder numpy.where
:
df['EVENT'] = np.where(mask, df['GAME'], df['EVENT'])
print (df)
EVENT GAME
0 0:34 0:43
1 0:23 0:23
2 2:34 3:43
3 NaN 4:50