Comment utiliser Pandas apply() sur place



La fonction pandas apply() peut être utilisée pour appliquer une fonction sur les lignes ou les colonnes d’un pandas DataFrame.

Cette fonction est différente des autres fonctions comme drop() et replace() qui fournissent un argument inplace :

df.drop(['column1'], inplace=True)

df.rename({'old_column' : 'new_column'}, inplace=True)

La fonction apply() n’a pas d’argument inplace, nous devons donc utiliser la syntaxe suivante pour transformer un DataFrame inplace :

df = df.apply(lambda x: x*2)

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

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

        points	assists	 rebounds
0	25	5	 11
1	12	7	 8
2	15	7	 10
3	14	9	 6
4	19	12	 6
5	23	9	 5
6	25	9	 9
7	29	4	 12

Exemple 1 : utilisez apply() sur place pour une colonne

Le code suivant montre comment utiliser apply() pour transformer une colonne de bloc de données sur place :

#multiply all values in 'points' column by 2 inplace
df.loc[:, 'points'] = df.points.apply(lambda x: x*2)

#view updated DataFrame
df

points	assists	rebounds
0	50	5	11
1	24	7	8
2	30	7	10
3	28	9	6
4	38	12	6
5	46	9	5
6	50	9	9
7	58	4	12

Exemple 2 : utilisez apply() sur place pour plusieurs colonnes

Le code suivant montre comment utiliser apply() pour transformer plusieurs colonnes de blocs de données sur place :

multiply all values in 'points' and 'rebounds' column by 2 inplace
df[['points', 'rebounds']] = df[['points', 'rebounds']].apply(lambda x: x*2)

#view updated DataFrame
df

	points	assists	rebounds
0	50	5	22
1	24	7	16
2	30	7	20
3	28	9	12
4	38	12	12
5	46	9	10
6	50	9	18
7	58	4	24

Exemple 3 : utilisez apply() sur place pour toutes les colonnes

Le code suivant montre comment utiliser apply() pour transformer toutes les colonnes du bloc de données sur place :

#multiply values in all columns by 2
df = df.apply(lambda x: x*2)

#view updated DataFrame
df

	points	assists	rebounds
0	50	10	22
1	24	14	16
2	30	14	20
3	28	18	12
4	38	24	12
5	46	18	10
6	50	18	18
7	58	8	24

Ressources additionnelles

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

Comment calculer la somme des colonnes dans Pandas
Comment calculer la moyenne des colonnes dans Pandas
Comment trouver la valeur maximale des colonnes dans Pandas

Ajouter un commentaire

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