Pandas: so verwenden sie füllmaterial je nach bedingung
Sie können die folgende grundlegende Syntax verwenden, um die Funktion ffill() in Pandas zu verwenden, um Füllwerte basierend auf einer Bedingung in einer anderen Spalte zu übergeben:
df[' sales '] = df. groupby (' store ')[' sales ']. ffill ()
In diesem speziellen Beispiel werden Füllwerte in der Spalte „ Sales “ nur dann übergeben, wenn der vorherige Wert in der Spalte „ Store “ mit dem aktuellen Wert in der Spalte „ Store“ übereinstimmt.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Verwenden Sie Füllung basierend auf der Bedingung in Pandas
Angenommen, wir haben den folgenden Pandas-DataFrame, der Informationen über die Gesamtverkäufe von zwei verschiedenen Einzelhandelsgeschäften über vier Geschäftsquartale enthält:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' store ': ['A', 'A', 'B', 'A', 'B', 'A', 'B', 'B'], ' quarter ': [1, 2, 1, 3, 2, 4, 3, 4], ' sales ': [12, 22, 30, np.nan, 24, np.nan, np.nan, np.nan]}) #view DataFrame print (df) store quarter sales 0 A 1 12.0 1 to 2 22.0 2 B 1 30.0 3 to 3 NaN 4 B 2 24.0 5 A 4 NaN 6 B 3 NaN 7 B 4 NaN
Beachten Sie, dass die Spalte „Umsätze“ mehrere NaN-Werte enthält.
Nehmen wir an, wir möchten diese NaN-Werte mit dem vorherigen Wert in der Spalte „Sales“ füllen, möchten aber sicherstellen, dass die Werte dem richtigen Geschäft entsprechen.
Wir können dazu die folgende Syntax verwenden:
#group by store and forward fill values in sales column df[' sales '] = df. groupby (' store ')[' sales ']. ffill () #view updated DataFrame print (df) store quarter sales 0 A 1 12.0 1 to 2 22.0 2 B 1 30.0 3 A 3 22.0 4 B 2 24.0 5 A 4 22.0 6 B 3 24.0 7 B 4 24.0
Beachten Sie, dass die NaN-Werte in der Spalte „Umsätze“ durch den vorherigen Umsatzwert ersetzt wurden und die Werte dem richtigen Geschäft entsprechen.
Zum Beispiel:
- Der NaN-Wert an Position 3 des Zeilenindex wurde durch den Wert 22 ersetzt, der der aktuellste Wert in der Verkaufsspalte für Filiale A war.
- Der NaN-Wert an Position 6 des Zeilenindex wurde durch den Wert 24 ersetzt, der der aktuellste Wert in der Verkaufsspalte für Filiale B war.
Und so weiter.
Hinweis : Die vollständige Dokumentation der Pandas-Funktion ffill() finden Sie hier .
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:
So zählen Sie fehlende Werte in Pandas
So löschen Sie Zeilen mit NaN-Werten in Pandas
So löschen Sie Zeilen, die einen bestimmten Wert in Pandas enthalten