How to iterate row by row in a pandas dataframe and look for a value in its columns

11,649

You can use iterrows(), like in the following code:

for index, row in dataFrame.iterrows():
  print(row)

But this is not the most efficient way to iterate over a panda DataFrame, more info at this post.

Share:
11,649
corcholatacolormarengo
Author by

corcholatacolormarengo

Updated on December 09, 2022

Comments

  • corcholatacolormarengo
    corcholatacolormarengo over 1 year

    I must read each row of an excel file and preform calculations based on the contents of each row. Each row is divided in columns, my problem is that I cannot find a way to access the contents of those columns.

    I'm reading the rows with:

    for i in df.index,:
        print(df.loc[i])
    

    Which works well, but when I try to access, say, the 4h column with this type of indexing I get an error:

    for i in df.index,:
        print(df.loc[i][3])
    

    I'm pretty sure I'm approaching the indexing issue in the wrong way, but I cannot figure put how to solve it.

    • Rolando cq
      Rolando cq about 5 years
      there is iterrows() for a dataframe. Look here
    • DYZ
      DYZ about 5 years
      You normally do not iterate through the rows of a dataframe. You may expect a more useful answer if you provide an example of your dataframe and the operation that you want to apply.
    • Rolando cq
      Rolando cq about 5 years
      also, loc does not give you a list to access, would be .loc[column] .loc[column, index], .loc[[columns,...],[indexs,...]] Here
    • Tarifazo
      Tarifazo about 5 years
      loc is used to access data by labels (column names or indices), iloc is used to access data by row and column position (i.e. integer). You can combine them: df.loc[some_index].iloc[3]