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'])>>> dfAge CountryBob 10 USAJack 39 SpainBen 21 FrancePaul 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)...BobAge 10Country USAName: Bob, dtype: objectJackAge 39Country SpainName: Jack, dtype: objectBenAge 21Country FranceName: Ben, dtype: objectPaulAge 70Country CanadaName: 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)...AgeBob 10Jack 39Ben 21Paul 70Name: Age, dtype: int64CountryBob USAJack SpainBen FrancePaul CanadaName: 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 10Jack 39Ben 21Paul 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 USAJack SpainBen FrancePaul Canada
ou
>>> for row in df.itertuples():... print(row.Age)...10392170
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 |
