Pandy: jak używać wypełnienia w zależności od stanu
Możesz użyć następującej podstawowej składni, aby użyć funkcji ffill() w pandach do przekazywania wartości wypełnienia na podstawie warunku w innej kolumnie:
df[' sales '] = df. groupby (' store ')[' sales ']. ffill ()
Ten konkretny przykład przekaże wartości wypełnienia w kolumnie sprzedaży tylko wtedy, gdy poprzednia wartość w kolumnie sklepu będzie równa bieżącej wartości w kolumnie sklepu .
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: użyj wypełnienia w oparciu o warunek w Pandach
Załóżmy, że mamy następującą ramkę danych pand, która zawiera informacje o całkowitej sprzedaży zrealizowanej przez dwa różne sklepy detaliczne w ciągu czterech kwartałów biznesowych:
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
Pamiętaj, że w kolumnie Sprzedaż znajduje się wiele wartości NaN.
Załóżmy, że chcemy wypełnić te wartości NaN poprzednią wartością w kolumnie Sprzedaż , ale chcemy się upewnić, że wartości odpowiadają właściwemu sklepowi.
W tym celu możemy użyć następującej składni:
#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
Należy pamiętać, że wartości NaN w kolumnie Sprzedaż zostały zastąpione poprzednią wartością Sprzedaży i wartości odpowiadają właściwemu sklepowi.
Na przykład:
- Wartość NaN na pozycji 3 indeksu wiersza zastąpiono wartością 22 , która była najnowszą wartością w kolumnie sprzedaży odpowiadającą sklepowi A.
- Wartość NaN na pozycji 6 indeksu wiersza zastąpiono wartością 24 , która była najnowszą wartością w kolumnie sprzedaży odpowiadającą sklepowi B.
I tak dalej.
Uwaga : pełną dokumentację funkcji ffill() pandy można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:
Jak policzyć brakujące wartości w pandach
Jak usunąć wiersze z wartościami NaN w Pandach
Jak usunąć wiersze zawierające określoną wartość w Pandach