Iterate pandas DataFrame over rows with iterrows method

Sometimes you want to iterate row by row of a pandas DataFrame, despite the performance you can use itterrows() method to “Iterate over DataFrame rows as (index, Series) pairs”.

Code:

import pandas as pd

date_range = {
    'fname': ['2022-03-01', '2022-04-01', '2022-05-01', '2022-06-01', '2022-07-01', '2022-08-01'], 
    'start': ['2022-03-01', '2022-04-01', '2022-05-01', '2022-06-01', '2022-07-01', '2022-08-01'], 
    'end':   ['2022-03-31', '2022-04-30', '2022-05-31', '2022-06-30', '2022-07-31', '2022-08-31']
}

df_date_range = pd.DataFrame(date_range)

for idx, dtrange in df_date_range.iterrows():
    print("Filename: {}.csv, take the DataFrame from: {} to {}".format(dtrange['fname'], dtrange['start'], dtrange['end']))

The above code will print the filename, start and end date.

Output:

Filename: 2022-03-01.csv, take the DataFrame from: 2022-03-01 to 2022-03-31
Filename: 2022-04-01.csv, take the DataFrame from: 2022-04-01 to 2022-04-30
Filename: 2022-05-01.csv, take the DataFrame from: 2022-05-01 to 2022-05-31
Filename: 2022-06-01.csv, take the DataFrame from: 2022-06-01 to 2022-06-30
Filename: 2022-07-01.csv, take the DataFrame from: 2022-07-01 to 2022-07-31
Filename: 2022-08-01.csv, take the DataFrame from: 2022-08-01 to 2022-08-31

Leave a comment