„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 06.11.2024
Durchsuche:259

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

Pandas DataFrame: Gezielte Wertersetzung basierend auf Bedingungen

In Pandas ist es oft notwendig, bestimmte Werte innerhalb eines DataFrames 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 ansteuert.

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 und nicht nur die Zielspalte ersetzt wurden. Um dies zu beheben, müssen wir die Spalte „Erste Staffel“ explizit als zweites Argument für loc:

df.loc[df['First Season'] > 1990, 'First Season'] = 1
Dieser gezielte Ansatz stellt sicher, dass nur die Werte in der Spalte „Erste Saison“, die die Bedingung erfüllen, durch 1 ersetzt werden, während die anderen Spalten davon unberührt bleiben.

Team erste Saison Gesamtspiele 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
                 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 „True“ und „False“ jeweils 1 und 0 ergeben :

df['First Season'] = (df['First Season'] > 1990).astype(int)
                 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
Dieser Ansatz ergibt einen DataFrame mit aktualisierten Werten:

Gesamtzahl der Spiele der ersten Saison des Teams 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 Francisco 49ers 0 1003
            
Neuestes Tutorial Mehr>

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