Pandas: so ersetzen sie werte in einer spalte basierend auf der bedingung


Sie können die folgende grundlegende Syntax verwenden, um Werte in einer Spalte eines Pandas-DataFrames basierend auf einer Bedingung zu ersetzen:

 #replace values in 'column1' that are greater than 10 with 20
df. loc [df[' column1 '] > 10, ' column1 '] = 20

Die folgenden Beispiele zeigen, wie Sie diese Syntax in der Praxis anwenden können.

Beispiel 1: Werte in einer Spalte basierend auf einer Bedingung ersetzen

Angenommen, wir haben den folgenden Pandas-DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [5, 7, 7, 9, 12, 13, 9, 14],
                   ' assists ': [3, 8, 2, 6, 6, 5, 9, 5]})

#view DataFrame
df

	team position points assists
0 A G 5 3
1 A G 7 8
2 A F 7 2
3 A F 9 6
4 B G 12 6
5 B G 13 5
6 B F 9 9
7 B F 14 5       

Mit dem folgenden Code können wir jeden Wert in der Spalte „Punkte“, der größer als 10 ist, durch einen Wert von 20 ersetzen:

 #replace any values in 'points' column greater than 10 with 20
df. loc [df[' points '] > 10, ' points '] = 20

#view updated DataFrame
df

	team position points assists
0 A G 5 3
1 A G 7 8
2 A F 7 2
3 A F 9 6
4 B G 20 6
5 B G 20 5
6 B F 9 9
7 B F 20 5

Beachten Sie, dass jeder der drei Werte in der Spalte „Punkte“, die größer als 10 sind, durch den Wert 20 ersetzt wurde.

Beispiel 2: Werte in einer Spalte basierend auf mehreren Bedingungen ersetzen

Angenommen, wir haben den folgenden Pandas-DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [5, 7, 7, 9, 12, 13, 9, 14],
                   ' assists ': [3, 8, 2, 6, 6, 5, 9, 5]})

#view DataFrame
df

	team position points assists
0 A G 5 3
1 A G 7 8
2 A F 7 2
3 A F 9 6
4 B G 12 6
5 B G 13 5
6 B F 9 9
7 B F 14 5       

Wir können den folgenden Code verwenden, um jeden Wert in der Spalte „Position“, bei dem die Punkte weniger als 10 oder die Assists weniger als 5 betragen, durch die Zeichenfolge „Bad“ zu ersetzen:

 #replace string in 'position' column with 'bad' if points < 10 or assists < 5
df. loc [(df[' points '] < 10) | (df[' assists '] < 5), ' position '] = ' Bad '

#view updated DataFrame
df

        team position points assists
0 A Bad 5 3
1 A Bad 7 8
2 A Bad 7 2
3 A Bad 9 6
4 B G 20 6
5 B G 20 5
6 B Bad 9 9
7 B F 20 5

Ebenso können wir den folgenden Code verwenden, um jeden Wert in der Spalte „Position“, bei dem die Punkte weniger als 10 und die Durchgänge weniger als 5 betragen, durch die Zeichenfolge „Bad“ zu ersetzen:

 #replace string in 'position' column with 'bad' if points < 10 and assists < 5
df. loc [(df[' points '] < 10) & (df[' assists '] < 5), ' position '] = ' Bad '

#view updated DataFrame
df

        team position points assists
0 A Bad 5 3
1 A G 7 8
2 A Bad 7 2
3 A F 9 6
4 B G 12 6
5 B G 13 5
6 B F 9 9
7 B F 14 5

Beachten Sie, dass der „Position“-Wert der beiden Zeilen, in denen es weniger als 10 Punkte und weniger als 5 Assists gab, durch die Zeichenfolge „Bad“ ersetzt wurde.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:

So wählen Sie Zeilen basierend auf mehreren Bedingungen in Pandas aus
So erstellen Sie eine neue Spalte basierend auf einer Bedingung in Pandas
So filtern Sie einen Pandas DataFrame nach mehreren Bedingungen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert