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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *