Pandas DataFrame: Ersetzen von Spaltenwerten basierend auf Bedingungen
In dieser Frage besteht das Ziel darin, Werte in der Spalte eines DataFrames basierend auf selektiv zu ersetzen eine Bedingung. Bei einem DataFrame, der Fußballmannschaften und ihre erste Saison enthält, möchten wir alle Werte in der Spalte „Erste Saison“, die über 1990 hinausgehen, durch 1 ersetzen.
Die bereitgestellte Lösung df.loc[(df['Erste Saison '] > 1990)] = 1, ersetzt fälschlicherweise alle Werte in den ausgewählten Zeilen, nicht nur die Zielspalte. Um dies zu beheben, müssen wir die zu ändernde Spalte angeben.
Die korrekte Syntax für diese Änderung lautet:
df.loc[df['First Season'] > 1990, 'First Season'] = 1
So funktioniert es:
Nach der Ausführung dieser Codezeile werden nur die 'Erste Staffel'-Werte ersetzt, die die angegebene Bedingung erfüllen 1, wobei der Rest des DataFrame erhalten bleibt.
Zusätzliche Überlegungen:
Wenn das gewünschte Ergebnis ein boolescher Indikator ist, können wir, anstatt Werte durch 1 zu ersetzen, verwenden boolesche Bedingung, um eine boolesche Reihe zu generieren und sie in einen ganzzahligen Datentyp umzuwandeln:
df['First Season'] = (df['First Season'] > 1990).astype(int)
Dadurch werden wahre Werte in 1 und falsche Werte in 0 konvertiert, wodurch ein boolescher Indikator in der Spalte „Erste Staffel“ erstellt wird.
Das obige ist der detaillierte Inhalt vonWie kann ich Spaltenwerte in einem Pandas-DataFrame basierend auf Bedingungen selektiv ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!