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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *