Pandas : comment utiliser Apply & Lambda ensemble



Vous pouvez utiliser la syntaxe de base suivante pour appliquer une fonction lambda à un DataFrame pandas :

df['col'] = df['col'].apply(lambda x: 'value1' if x < 20 else 'value2')

Les exemples suivants montrent comment utiliser cette syntaxe en pratique avec le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
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    A      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    H      28        4

Exemple 1 : utilisez Apply et Lambda pour créer une nouvelle colonne

Le code suivant montre comment utiliser apply et lambda pour créer une nouvelle colonne dont les valeurs dépendent des valeurs d’une colonne existante :

#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    H      28        4   Good

Dans cet exemple, nous avons créé une nouvelle colonne appelée status qui a pris les valeurs suivantes :

  • Mauvais ‘ si la valeur dans la colonne des points était inférieure à 20.
  • Bon ‘ si la valeur dans la colonne des points était supérieure ou égale à 20.

Exemple 2 : utilisez Apply et Lambda pour modifier une colonne existante

Le code suivant montre comment utiliser apply et lambda pour modifier une colonne existante dans le DataFrame :

#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    A     9.0        5
1    B    44.0        7
2    C     9.5        7
3    D     7.0        9
4    E     7.0       12
5    F     5.5        9
6    G    40.0        9
7    H    56.0        4

Dans cet exemple, nous avons modifié les valeurs de la colonne de points existante en utilisant la règle suivante dans la fonction lambda :

  • Si la valeur est inférieure à 20, divisez la valeur par 2.
  • Si la valeur est supérieure ou égale à 20, multipliez la valeur par 2.

Grâce à cette fonction lambda, nous avons pu modifier les valeurs de la colonne de points existante.

Ressources additionnelles

Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes dans les pandas :

Comment appliquer une fonction à Pandas Groupby
Comment remplir NaN avec les valeurs d’une autre colonne dans Pandas

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *