Pandas iterrows() : comment itérer sur les DataFrames ?
La fonction Python Pandas DataFrame.iterrows()
est utilisée pour itérer sur les lignes d’un DataFrame Pandas. Pour chaque ligne, elle renvoie un tuple Python contenant l’index ainsi qu’une série représentant les données de la ligne correspondante.
- Certificat SSL et protection DDoS
- Sauvegarde et restauration des données
- Assistance 24/7 et conseiller personnel
Comment se présente la syntaxe de la méthode iterrows()
de Pandas ?
La syntaxe de base de Pandas DataFrame.iterrows()
est simple, car la fonction ne prend aucun paramètre :
df.iterrows()
pythonDans l’exemple de code ci-dessus, df
désigne le DataFrame sur lequel l’itération doit être effectuée.
Comment appliquer la fonction Pandas iterrows()
?
La fonction DataFrame.iterrows()
est typiquement utilisée chaque fois que l’on doit traiter des données ligne par ligne. Elle est donc souvent combinée avec la boucle for en Python.
La somme des valeurs d’une colonne
Dans ce qui suit, nous considérons un DataFrame avec les colonnes « Nom », « Âge » et « Points » :
import pandas as pd
# Créer un exemple de DataFrame
data = {'Nom' : ['Anna', 'Ben', 'Clara'],
'Âge' : [23, 35, 29],
'Points' : [88, 92, 85]}
df = pd.DataFrame(data)
print(df)
pythonLe code ci-dessus résulte dans le DataFrame suivant :
Nom Âge Points
0 Anna 23 88
1 Ben 35 92
2 Clara 29 85
Il faut maintenant calculer la somme des points. Pour cela, on peut utiliser DataFrame.iterrows()
de Pandas :
# Calculer la somme des points
total_score = 0
for index, row in df.iterrows():
total_score += row['Points']
print(f"La somme totale des points est : {total_score}")
pythonDans cet exemple, la fonction Pandas iterrows()
est utilisée pour itérer sur les lignes et additionner successivement les valeurs de la colonne « Points ». Le résultat se présente ainsi :
La somme totale des points est : 265
Lorsque vous travaillez avec iterrows()
de Pandas, il est important de ne jamais modifier directement les données sur lesquelles vous itérez. Selon le type de données, cela peut conduire à des résultats inattendus et entraîner un comportement imprévisible.
L’édition conditionnelle de lignes
La fonction iterrows()
peut également être utilisée pour appliquer des conditions à certaines lignes de votre DataFrame. Par exemple, supposons que vous souhaitiez extraire les noms de toutes les personnes âgées de plus de 30 ans dans un DataFrame existant :
# Récupérer le nom des personnes de plus de 30 ans
names = []
for index, row in df.iterrows():
if row['Âge'] > 30:
names.append(row['Nom'])
print(f"Personnes de plus de 30 ans : {names}")
pythonDans l’exemple de code, les lignes du DataFrame sont parcourues à l’aide de la fonction DataFrame.iterrows()
de Pandas. Dans la boucle for, les valeurs de la colonne « Âge » sont examinées afin de ne stocker que les noms des personnes ayant plus de 30 ans dans la liste Python names
. Pour cela, on utilise la fonction Python append()
. Cette opération donne le résultat suivant :
Personnes de plus de 30 ans : ['Ben']
Bien que DataFrame.iterrows()
de Pandas soit facile à utiliser, il convient de l’employer avec prudence en raison de son efficacité potentiellement réduite pour les DataFrames volumineux. Dans de nombreux cas, il existe des alternatives plus performantes, telles que apply()
ou le calcul vectorisé avec Pandas.