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'] = 1Dieser 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 1003Alternativ 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 1003Dieser 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
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