Saturday, 28 January 2017

python - How to iterate over rows in a DataFrame in Pandas?




I have a DataFrame from pandas:



import pandas as pd
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
df = pd.DataFrame(inp)
print df


Output:




   c1   c2
0 10 100
1 11 110
2 12 120


Now I want to iterate over the rows of this frame. For every row I want to be able to access its elements (values in cells) by the name of the columns. For example:



for row in df.rows:
print row['c1'], row['c2']



Is it possible to do that in pandas?



I found this similar question. But it does not give me the answer I need. For example, it is suggested there to use:



for date, row in df.T.iteritems():


or




for row in df.iterrows():


But I do not understand what the row object is and how I can work with it.


Answer



DataFrame.iterrows is a generator which yield both index and row



import pandas as pd
import numpy as np


df = pd.DataFrame([{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}])




for index, row in df.iterrows():
print(row['c1'], row['c2'])

Output:

10 100
11 110
12 120

No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...