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

Einen Kommentar hinzufügen

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