Panda's: hoe u vulling gebruikt op basis van de conditie
U kunt de volgende basissyntaxis gebruiken om de functie ffill() in panda’s te gebruiken om vulwaarden door te geven op basis van een voorwaarde in een andere kolom:
df[' sales '] = df. groupby (' store ')[' sales ']. ffill ()
Dit specifieke voorbeeld geeft alleen vulwaarden door in de verkoopkolom als de vorige waarde in de winkelkolom gelijk is aan de huidige waarde in de winkelkolom .
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: gebruik vulling op basis van voorwaarde in Panda’s
Stel dat we het volgende panda’s DataFrame hebben dat informatie bevat over de totale omzet van twee verschillende winkels in vier bedrijfskwartalen:
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
Houd er rekening mee dat er meerdere NaN-waarden in de kolom Verkoop staan.
Stel dat we deze NaN-waarden willen invullen met de vorige waarde in de kolom Verkoop , maar er zeker van willen zijn dat de waarden overeenkomen met de juiste winkel.
We kunnen hiervoor de volgende syntaxis gebruiken:
#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
Houd er rekening mee dat de NaN-waarden in de kolom Sales zijn vervangen door de vorige Sales-waarde en dat de waarden overeenkomen met de juiste winkel.
Bijvoorbeeld:
- De NaN-waarde op positie 3 van de rijindex werd vervangen door de waarde 22 , wat de meest recente waarde was in de verkoopkolom die overeenkomt met winkel A.
- De NaN-waarde op positie 6 van de rijindex werd vervangen door de waarde 24 , wat de meest recente waarde was in de verkoopkolom die overeenkomt met winkel B.
Enzovoort.
Opmerking : u kunt de volledige documentatie van de pandas ffill() -functie hier vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Hoe ontbrekende waarden bij panda’s te tellen
Hoe rijen met NaN-waarden in Panda’s te verwijderen
Hoe rijen met een specifieke waarde in Pandas te verwijderen