Erstellen einer Spalte mit If-Else-Else-Bedingungen in Pandas
So erstellen Sie eine neue Spalte basierend auf einer If-Elif-Else-Bedingung , gibt es zwei Hauptansätze:
Nicht vektorisiert Ansatz
Dieser Ansatz beinhaltet die Definition einer Funktion, die mit Zeilen arbeitet:
def f(row):
if row['A'] == row['B']:
val = 0
elif row['A'] > row['B']:
val = 1
else:
val = -1
return val
Dann wenden Sie es auf den Datenrahmen entlang der Zeilen an:
df['C'] = df.apply(f, axis=1)
Vektorisierter Ansatz
Der vektorisierte Ansatz verwendet np.where, um die neue Spalte zu erstellen direkt:
df['C'] = np.where(
df['A'] == df['B'], 0, np.where(
df['A'] > df['B'], 1, -1))
Dieser Ansatz ist für große Datensätze effizienter.
Hier ist ein Beispiel mit dem bereitgestellten Datenrahmen:
Eingang DataFrame
A | B |
---|---|
2 | 2 |
3 | 1 |
1 | 3 |
Ausgabe DataFrame
A | B | C |
---|---|---|
2 | 2 | 0 |
3 | 1 | 1 |
1 | 3 | -1 |
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3