How to iterate over columns in a DataFrame in Pandas

1 min

There are two methods to loop over columns in a Pandas Dataframe

We define a sample DataFrame

import pandas as pd
df = pd.DataFrame({"firstname":["Caroline", "Sebastian", "Bob", "John"],
                   "lastname":["Jones", "Smith", "Di Caprio", "Lennon"],
                   "gpa":[4.1233, 2.242, 4.152,  5.923]})
We first define our DataFrame

Loop over the columns using the column names

As you might know already, Pandas DataFrame does have the .columns attributes, but when called in a loop the DataFrame returns the column names by default.

for colname in df:
	# We print the colnames
	print(colname)
    
    # We print the values
    print(df[colname])
We loop over a columns name and print the column name

or

for colname in df.columns:
	# We print the colnames
	print(colname)
    
    # We print the values
    print(df[colname])
We loop over a columns name and print the column name

Using the iteritems method

You also can loop over columns using the iteritems method.

for col, values in df.iteritems():
	# We print the column names
    print(col)
    # We print the column values
    print(values)