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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert