Pandas DataFrame DataFrame.apply() Fonction
-
Syntaxe de
pandas.DataFrame.apply()
: -
Exemples de codes: méthode
DataFrame.apply()
-
Exemples de codes: appliquez la fonction à chaque colonne avec
DataFrame.apply()
-
Exemples de codes: appliquez la fonction à chaque ligne avec la méthode
DataFrame.apply()
-
Exemples de codes: méthode
DataFrame.apply()
avec le paramètreresult_type
La fonction pandas.DataFrame.apply()
applique la fonction d’entrée à chaque élément de la ligne ou colonne de l’appelant Pandas DataFrame
.
Syntaxe de pandas.DataFrame.apply()
:
DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)
Paramètres
func |
La fonction à appliquer à chaque ligne ou colonne |
axis |
appliquer la fonction le long de la ligne (axis = 0 ) ou de la colonne (axis = 1 ) |
raw |
Booléen. Ligne / colonne passée en tant qu’objet Series ( raw = False ) ou ndarray object ( raw = True ) |
result_type |
{expand , reduction , broadcast , None } type de sortie d’opération applicable uniquement pour axis = 1 (colonnes) Nouveau dans la version 0.23.0 |
args |
Arguments positionnels pour la fonction func . |
**kwds |
Arguments de mot-clé pour la fonction func . |
Revenir
Il retourne le DataFrame
après avoir appliqué la fonction d’entrée le long de l’axe spécifié.
Exemples de codes: méthode DataFrame.apply()
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print(df)
modified_df=df.apply(lambda x: x**2)
print(modified_df)
Production:
X Y
0 1 4
1 2 1
2 3 8
X Y
0 1 16
1 4 1
2 9 64
Nous appliquons une fonction lambda
- lambda x: x ** 2
à tous les éléments de DataFrame
en utilisant la méthode DataFrame.apply()
.
Les fonctions lambda sont des moyens plus simples de définir des fonctions en Python.
lambda x: x ** 2
représente la fonction qui prend x
en entrée et retourne x ** 2
en sortie.
Exemples de codes: appliquez la fonction à chaque colonne avec DataFrame.apply()
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame")
print(df)
modified_df=df.apply(np.sum)
print("Modified DataFrame")
print(modified_df)
Production:
Original DataFrame
X Y
0 1 4
1 2 1
2 3 8
Modified DataFrame
X 6
Y 13
dtype: int64
Ici, np.sum
est appliqué à chaque colonne car axe = 0
(valeur par défaut) dans ce cas.
Ainsi, nous obtenons la somme des éléments dans chaque colonne après avoir utilisé la méthode df.apply()
.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print(df)
modified_df=df.apply(lambda x: (x**2) if x.name == 'X' else x)
print(modified_df)
Production:
X Y
0 1 4
1 2 1
2 3 8
X Y
0 1 4
1 4 1
2 9 8
Si nous souhaitons appliquer la fonction uniquement à certaines colonnes, nous modifions notre définition de fonction en utilisant l’instruction if pour filtrer les colonnes. Dans l’exemple, la fonction modifie uniquement la valeur des colonnes avec le nom de colonne X
.
Exemples de codes: appliquez la fonction à chaque ligne avec la méthode DataFrame.apply()
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame")
print(df)
modified_df=df.apply(np.sum, axis=1)
print("Modified DataFrame")
print(modified_df)
Production:
Original DataFrame
X Y
0 1 4
1 2 1
2 3 8
Modified DataFrame
0 5
1 3
2 11
dtype: int64
Ici, np.sum
est appliqué à chaque ligne à la fois car nous avons défini axe = 1
dans ce cas.
Ainsi, nous obtenons la somme des éléments individuels de toutes les lignes après avoir utilisé la méthode df.apply()
.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print(df)
modified_df=df.apply(lambda x: (x**2) if x.name in [0,1] else x,
axis=1)
print(modified_df)
Production:
X Y
0 1 4
1 2 1
2 3 8
X Y
0 1 16
1 4 1
2 3 8
Si nous souhaitons appliquer la fonction uniquement à certaines lignes, nous modifions notre définition de fonction en utilisant l’instruction if pour filtrer les lignes. Dans l’exemple, la fonction modifie uniquement les valeurs des lignes d’index 0
et 1
, c’est-à-dire les première et deuxième lignes uniquement.
Exemples de codes: méthode DataFrame.apply()
avec le paramètre result_type
Si nous utilisons la valeur par défaut du paramètre result_type
c’est-à-dire None
, il retournera le DataFrame
sans aucune modification.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame")
print(df)
modified_df=df.apply(lambda x:[1,1],axis=1)
print("Modified DataFrame")
print(modified_df)
Production:
Original DataFrame
X Y
0 1 4
1 2 1
2 3 8
Modified DataFrame
0 [1, 1]
1 [1, 1]
2 [1, 1]
dtype: object
Dans l’exemple ci-dessus, chaque ligne est passée en fonction à la fois, et la valeur de la ligne est définie sur [1,1]
.
Si nous souhaitons modifier le type de résultat après que la fonction a fonctionné sur DataFrame
, nous pouvons définir des valeurs pour result_type
selon nos besoins.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame")
print(df)
modified_df=df.apply(lambda x:[1,1],
axis=1,
result_type='expand')
print("Modified DataFrame")
print(modified_df)
Production:
Original DataFrame
X Y
0 1 4
1 2 1
2 3 8
Modified DataFrame
0 1
0 1 1
1 1 1
2 1 1
La définition de result_type = 'expand'
étendra toutes les valeurs de type liste aux colonnes d’un Dataframe.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn