Heim >Backend-Entwicklung >Python-Tutorial >Wie ersetze ich bestimmte Werte in einer Pandas-DataFrame-Spalte basierend auf Bedingungen?

Wie ersetze ich bestimmte Werte in einer Pandas-DataFrame-Spalte basierend auf Bedingungen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-02 20:41:02195Durchsuche

How to Replace Specific Values in a Pandas DataFrame Column Based on Conditions?

Pandas DataFrame: Gezielte Werteersetzung basierend auf Bedingungen

In Pandas ist es oft notwendig, bestimmte Werte innerhalb eines DataFrame basierend auf bestimmten Kriterien zu ändern . Während ein gängiger Ansatz darin besteht, loc zum Auswählen von Zeilen zu verwenden, ist es wichtig zu verstehen, wie man eine bestimmte Spalte für die Wertänderung genau anvisiert.

Betrachten Sie den folgenden DataFrame, in dem wir Werte in der „Ersten Staffel“ ersetzen möchten. Spalte, die 1990 überschreitet, mit der Ganzzahl 1:

                 Team  First Season  Total Games
0      Dallas Cowboys          1960          894
1       Chicago Bears          1920         1357
2   Green Bay Packers          1921         1339
3      Miami Dolphins          1966          792
4    Baltimore Ravens          1996          326
5  San Franciso 49ers          1950         1003

Ein erster Versuch, nur die Loc-Funktion zu verwenden, führte dazu, dass alle Werte in den ausgewählten Zeilen ersetzt wurden und nicht nur die Zielspalte. Um dies zu beheben, müssen wir die Spalte „Erste Staffel“ explizit als zweites Argument für loc angeben:

df.loc[df['First Season'] > 1990, 'First Season'] = 1

Dieser gezielte Ansatz stellt sicher, dass nur die Werte in der Spalte „Erste Staffel“ die Bedingung erfüllen durch 1 ersetzt, wobei die anderen Spalten unberührt bleiben.

                 Team  First Season  Total Games
0      Dallas Cowboys          1960          894
1       Chicago Bears          1920         1357
2   Green Bay Packers          1921         1339
3      Miami Dolphins          1966          792
4    Baltimore Ravens             1          326
5  San Franciso 49ers          1950         1003

Alternativ können Sie, wenn das gewünschte Ergebnis ein boolescher Indikator ist, die Bedingung verwenden, um eine boolesche Reihe zu erstellen und diese in ganze Zahlen umzuwandeln, wobei Wahr und Falsch gelten in 1 bzw. 0 übersetzen:

df['First Season'] = (df['First Season'] > 1990).astype(int)

Dieser Ansatz ergibt einen DataFrame mit aktualisierten Werten:

                 Team  First Season  Total Games
0      Dallas Cowboys             0          894
1       Chicago Bears             0         1357
2   Green Bay Packers             0         1339
3      Miami Dolphins             0          792
4    Baltimore Ravens             1          326
5  San Franciso 49ers             0         1003

Das obige ist der detaillierte Inhalt vonWie ersetze ich bestimmte Werte in einer Pandas-DataFrame-Spalte basierend auf Bedingungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn