Panda: come utilizzare il riempimento in base alle condizioni
Puoi utilizzare la seguente sintassi di base per utilizzare la funzione ffill() in panda per passare valori di riempimento in base a una condizione in un’altra colonna:
df[' sales '] = df. groupby (' store ')[' sales ']. ffill ()
Questo particolare esempio trasmetterà i valori di riempimento nella colonna delle vendite solo se il valore precedente nella colonna del negozio è uguale al valore corrente nella colonna del negozio .
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: utilizzare il riempimento in base alla condizione in Panda
Supponiamo di avere il seguente DataFrame panda che contiene informazioni sulle vendite totali effettuate da due diversi negozi al dettaglio in quattro trimestri aziendali:
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
Tieni presente che sono presenti più valori NaN nella colonna Vendite .
Diciamo che vogliamo riempire questi valori NaN utilizzando il valore precedente nella colonna Vendite , ma vogliamo assicurarci che i valori corrispondano al negozio corretto.
Possiamo usare la seguente sintassi per fare questo:
#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
Tieni presente che i valori NaN nella colonna Sales sono stati sostituiti con il valore Sales precedente e i valori corrispondono al negozio corretto.
Per esempio:
- Il valore NaN nella posizione 3 dell’indice della riga è stato sostituito con il valore 22 , che era il valore più recente nella colonna delle vendite corrispondente al negozio A.
- Il valore NaN nella posizione 6 dell’indice della riga è stato sostituito con il valore 24 , che era il valore più recente nella colonna delle vendite corrispondente al negozio B.
E così via.
Nota : puoi trovare la documentazione completa della funzione pandas ffill() qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:
Come contare i valori mancanti nei panda
Come eliminare righe con valori NaN in Panda
Come eliminare righe contenenti un valore specifico in Pandas