Panda's: hoe gebruik je apply & lambda samen?
U kunt de volgende basissyntaxis gebruiken om een lambda-functie toe te passen op een Panda DataFrame:
df[' col '] = df[' col ']. apply ( lambda x: ' value1 ' if x < 20 else ' value2 ')
De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken met de volgende panda’s DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4]}) #view DataFrame print (df) team points assists 0 to 18 5 1 B 22 7 2 C 19 7 3 D 14 9 4 E 14 12 5 F 11 9 6 G 20 9 7:28 a.m. 4
Voorbeeld 1: Gebruik Apply en Lambda om een nieuwe kolom te maken
De volgende code laat zien hoe je apply en lambda gebruikt om een nieuwe kolom te maken waarvan de waarden afhankelijk zijn van de waarden van een bestaande kolom:
#create new column called 'status'
df[' status '] = df[' points ']. apply ( lambda x: ' Bad ' if x < 20 else ' Good ')
#view updated DataFrame
print (df)
team points assists status
0 A 18 5 Bad
1 B 22 7 Good
2 C 19 7 Bad
3 D 14 9 Bad
4 E 14 12 Bad
5 F 11 9 Bad
6 G 20 9 Good
7:28 4 Good
In dit voorbeeld hebben we een nieuwe kolom gemaakt met de naam status , die de volgende waarden heeft:
- ‚ Slecht ‚ als de waarde in de puntenkolom minder dan 20 was.
- ‚ Goed ‚ als de waarde in de puntenkolom groter of gelijk was aan 20.
Voorbeeld 2: Gebruik Apply en Lambda om een bestaande kolom te wijzigen
De volgende code laat zien hoe u apply en lambda gebruikt om een bestaande kolom in het DataFrame te wijzigen:
#modify existing 'points' column
df[' points '] = df[' points ']. apply ( lambda x: x/2 if x < 20 else x*2)
#view updated DataFrame
print (df)
team points assists
0 to 9.0 5
1 B 44.0 7
2 C 9.5 7
3D 7.0 9
4 E 7.0 12
5 F 5.5 9
6 G 40.0 9
7 A.M. 56.0 4
In dit voorbeeld wijzigen we de waarden van de bestaande puntkolom met behulp van de volgende regel in de lambda-functie:
- Als de waarde kleiner is dan 20, deelt u de waarde door 2.
- Als de waarde groter is dan of gelijk is aan 20, vermenigvuldigt u de waarde met 2.
Met behulp van deze lambda-functie konden we de waarden van de bestaande puntkolom wijzigen.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies in panda’s kunt uitvoeren:
Een functie toepassen op Panda’s Groupby
Hoe NaN te vullen met waarden uit een andere kolom in Pandas