Een offsetkolom maken in panda's (met voorbeelden)
Je kunt de functie shift() in panda’s gebruiken om een kolom te maken waarin waarden worden weergegeven die zijn verschoven ten opzichte van een andere kolom.
Deze functie gebruikt de volgende basissyntaxis:
df[' lagged_col1 '] = df[' col1 ']. shift ( 1 )
Merk op dat de waarde van de functie shift() het aantal waarden aangeeft waarvoor de verschuiving moet worden berekend.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: maak een offsetkolom in Panda’s
Laten we zeggen dat we het volgende panda’s DataFrame hebben, waarin de verkopen van een winkel gedurende tien opeenvolgende dagen worden weergegeven:
import pandas as pd #createDataFrame df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], ' sales ': [18, 10, 14, 13, 19, 24, 25, 29, 15, 18]}) #view DataFrame print (df) day sales 0 1 18 1 2 10 2 3 14 3 4 13 4 5 19 5 6 24 6 7 25 7 8 29 8 9 15 9 10 18
We kunnen de functie shift() gebruiken om een shiftkolom te maken die voor elke rij de verkopen van de vorige dag weergeeft:
#add column that represents lag of sales column df[' sales_previous_day '] = df[' sales ']. shift ( 1 ) #view updated DataFrame print (df) day sales sales_previous_day 0 1 18 NaN 1 2 10 18.0 2 3 14 10.0 3 4 13 14.0 4 5 19 13.0 5 6 24 19.0 6 7 25 24.0 7 8 29 25.0 8 9 15 29.0 9 10 18 15.0
Zo interpreteert u het resultaat:
- De eerste waarde in de vertragingskolom is NaN , aangezien er geen eerdere waarde in de verkoopkolom staat.
- De tweede waarde in de offsetkolom is 18 , aangezien dit de vorige waarde in de kolom Verkoop is.
- De derde waarde in de offsetkolom is 10 , aangezien dit de vorige waarde in de kolom Verkoop is.
Enzovoort.
Merk op dat we ook meerdere offsetkolommen aan het DataFrame kunnen toevoegen als we dat willen:
#add two lag columns df[' sales_previous_day '] = df[' sales ']. shift ( 1 ) df[' sales_previous_day2 '] = df[' sales ']. shift ( 2 ) #view updated DataFrame print (df) day sales sales_previous_day sales_previous_day2 0 1 18 NaN NaN 1 2 10 18.0 NaN 2 3 14 10.0 18.0 3 4 13 14.0 10.0 4 5 19 13.0 14.0 5 6 24 19.0 13.0 6 7 25 24.0 19.0 7 8 29 25.0 24.0 8 9 15 29.0 25.0 9 10 18 15.0 29.0
U kunt dezelfde algemene aanpak gebruiken om zoveel offsetkolommen toe te voegen als u wilt.
Opmerking : om een primaire kolom te maken, gebruikt u eenvoudigweg negatieve waarden in de shift()- functie.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in panda’s kunt uitvoeren:
Hoe kolommen in Panda’s te verwijderen
Hoe u kolommen uitsluit in Panda’s
Hoe een functie toe te passen op geselecteerde kolommen in Pandas
Hoe u de kolomvolgorde in Pandas DataFrame kunt wijzigen