Détails
Comment itérer sur les lignes d'un DataFrame dans Pandas ?
J'ai un DataFrame
de pandas :
import pandas as pd
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
df = pd.DataFrame(inp)
print df
Sortie :
c1 c2
0 10 100
1 11 110
2 12 120
Maintenant, je veux itérer sur les lignes de ce cadre. Pour chaque ligne, je veux pouvoir accéder à ses éléments (valeurs dans les cellules) par le nom des colonnes. Par exemple :
for row in df.rows:
print row['c1'], row['c2']
Est-il possible de faire cela dans pandas ?
J'ai trouvé cette [question similaire][1]. Mais cela ne me donne pas la réponse dont j'ai besoin. Par exemple, il y est suggéré d'utiliser :
for date, row in df.T.iteritems():
ou
for row in df.iterrows():
Mais je ne comprends pas ce qu'est l'objet row
et comment je peux travailler avec lui.
1527
3
DataFrame.iterrows est un générateur qui produit à la fois l'index et la ligne.
Vous devriez utiliser [
df.iterrows()
][1]. Bien que l'itération ligne par ligne ne soit pas particulièrement efficace puisque les objets Series doivent être créés.[1] : http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.iterrows.html
Vous pouvez également utiliser
df.apply()
pour itérer sur les lignes et accéder à plusieurs colonnes pour une fonction.[docs : DataFrame.apply()] [1]
[1] : http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html