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 re­pré­sen­tant les données de la ligne cor­res­pon­dante.

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()
python

Dans 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 ty­pi­que­ment 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 con­si­dé­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)
python

Le 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 main­te­nant 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}")
python

Dans cet exemple, la fonction Pandas iterrows() est utilisée pour itérer sur les lignes et ad­di­tion­ner suc­ces­si­ve­ment les valeurs de la colonne « Points ». Le résultat se présente ainsi :

La somme totale des points est : 265
Note

Lorsque vous tra­vail­lez avec iterrows() de Pandas, il est important de ne jamais modifier di­rec­te­ment les données sur les­quelles vous itérez. Selon le type de données, cela peut conduire à des résultats inat­ten­dus et entraîner un com­por­te­ment im­pré­vi­sible.

L’édition con­di­tion­nelle de lignes

La fonction iterrows() peut également être utilisée pour appliquer des con­di­tions à certaines lignes de votre DataFrame. Par exemple, supposons que vous sou­hai­tiez 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}")
python

Dans l’exemple de code, les lignes du DataFrame sont par­cou­rues à 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']
Note

Bien que DataFrame.iterrows() de Pandas soit facile à utiliser, il convient de l’employer avec prudence en raison de son ef­fi­ca­cité po­ten­tiel­le­ment réduite pour les Da­ta­Frames vo­lu­mi­neux. Dans de nombreux cas, il existe des al­ter­na­tives plus per­for­mantes, telles que apply() ou le calcul vectorisé avec Pandas.

Aller au menu principal