Pour itérer sur l'ensemble des lignes d'une data frame avec pandas on peut utiliser iterrows(), items() ou encore itertuples():
Prenons par exemple la data frame suivante:
>>> import pandas as pd
>>> data = {'Country':['USA', 'Spain', 'France', 'Canada'], 'Age':[10, 39, 21, 70]}
>>> df = pd.DataFrame(data, index =['Bob', 'Jack', 'Ben', 'Paul'])
>>> df
Age Country
Bob 10 USA
Jack 39 Spain
Ben 21 France
Paul 70 Canada
Itérer sur l'ensemble des lignes d'une data frame avec iterrows()
Pour parcourir l'ensemble des lignes de la data frame et afficher toutes les colonnes en même temps, on peut utiliser iterrows():
>>> for index, row in df.iterrows():
... print(index)
... print(row)
...
Bob
Age 10
Country USA
Name: Bob, dtype: object
Jack
Age 39
Country Spain
Name: Jack, dtype: object
Ben
Age 21
Country France
Name: Ben, dtype: object
Paul
Age 70
Country Canada
Name: Paul, dtype: object
Itérer sur l'ensemble des lignes d'une data frame avec items()
Si on s'intéresse à la variation des colonnes en fonction des indices il est preferable d'utiliser items():
>>> for label, content in df.items():
... print(label)
... print(content)
...
Age
Bob 10
Jack 39
Ben 21
Paul 70
Name: Age, dtype: int64
Country
Bob USA
Jack Spain
Ben France
Paul Canada
Name: Country, dtype: object
Si on veut se focaliser sur une colonne donnée on peut alors faire comme dans cet exemple:
>>> for label, content in df['Age'].items():
... print(label,content)
...
Bob 10
Jack 39
Ben 21
Paul 70
Itérer sur l'ensemble des lignes d'une data frame avec itertuples()
Une autre possibilité est d'utiliser itertuples():
>>> for row in df.itertuples():
... print(row)
...
Pandas(Index='Bob', Age=10, Country='USA')
Pandas(Index='Jack', Age=39, Country='Spain')
Pandas(Index='Ben', Age=21, Country='France')
Pandas(Index='Paul', Age=70, Country='Canada')
et afficher par exemple une colonne en particulier:
>>> for row in df.itertuples():
... print(row[0],row[2])
...
Bob USA
Jack Spain
Ben France
Paul Canada
ou
>>> for row in df.itertuples():
... print(row.Age)
...
10
39
21
70
Références
Liens | Site |
---|---|
pandas.DataFrame.iterrows | pandas doc |
pandas.DataFrame.items | pandas doc |
pandas.DataFrame.itertuples | pandas doc |
How to iterate over rows in a DataFrame in Pandas? | stackoverflow |