Loop or Iterate over all or certain columns of a dataframe in Python-Pandas

30 Jun, 2021
In this article, we will discuss how to loop or Iterate overall or certain columns of a DataFrame? There are various methods to achieve this task.Let’s first create a Dataframe and see that : Code :  
Python3
# import pandas packageimport pandas as pd # List of Tuplesstudents = [('Ankit', 22, 'A'),           ('Swapnil', 22, 'B'),           ('Priya', 22, 'B'),           ('Shivangi', 22, 'B'),            ]# Create a DataFrame objectstu_df = pd.DataFrame(students, columns =['Name', 'Age', 'Section'],                      index =['1', '2', '3', '4']) stu_df
Output : 
Now let’s see different ways of iterate or certain columns of a DataFrame :Method #1: Using DataFrame.iteritems(): Dataframe class provides a member function iteritems() which gives an iterator that can be utilized to iterate over all the columns of a data frame. For every column in the Dataframe it returns an iterator to the tuple containing the column name and its contents as series.Code :  
Python3
import pandas as pd  # List of Tuplesstudents = [('Ankit', 22, 'A'),           ('Swapnil', 22, 'B'),           ('Priya', 22, 'B'),           ('Shivangi', 22, 'B'),            ] # Create a DataFrame objectstu_df = pd.DataFrame(students, columns =['Name', 'Age', 'Section'],                      index =['1', '2', '3', '4']) # gives a tuple of column name and series# for each column in the dataframefor (columnName, columnData) in stu_df.iteritems():    print('Column Name : ', columnName)    print('Column Contents : ', columnData.values)
Output:  
Method #2: Using [ ] operator : We can iterate over column names and select our desired column. Code :  
Python3
import pandas as pd  # List of Tuplesstudents = [('Ankit', 22, 'A'),           ('Swapnil', 22, 'B'),           ('Priya', 22, 'B'),           ('Shivangi', 22, 'B'),            ] # Create a DataFrame objectstu_df = pd.DataFrame(students, columns =['Name', 'Age', 'Section'],                      index =['1', '2', '3', '4']) # Iterate over column namesfor column in stu_df:         # Select column contents by column    # name using [] operator    columnSeriesObj = stu_df[column]    print('Column Name : ', column)    print('Column Contents : ', columnSeriesObj.values)
Output:  
Method #3: Iterate over more than one column : Assume we need to iterate more than one column. In order to do that we can choose more than one column from dataframe and iterate over them.Code :  
Python3
import pandas as pd  # List of Tuplesstudents = [('Ankit', 22, 'A'),           ('Swapnil', 22, 'B'),           ('Priya', 22, 'B'),           ('Shivangi', 22, 'B'),            ] # Create a DataFrame objectstu_df = pd.DataFrame(students, columns =['Name', 'Age', 'Section'],                      index =['1', '2', '3', '4']) # Iterate over two given columns# only from the dataframefor column in stu_df[['Name', 'Section']]:        # Select column contents by column      # name using [] operator    columnSeriesObj = stu_df[column]    print('Column Name : ', column)    print('Column Contents : ', columnSeriesObj.values)
Output:  
Method #4: Iterating columns in reverse order : We can iterate over columns in reverse order as well.Code :  
Python3
import pandas as pd  # List of Tuplesstudents = [('Ankit', 22, 'A'),           ('Swapnil', 22, 'B'),           ('Priya', 22, 'B'),           ('Shivangi', 22, 'B'),            ] # Create a DataFrame objectstu_df = pd.DataFrame(students, columns =['Name', 'Age', 'Section'],                       index =['1', '2', '3', '4'])  # Iterate over the sequence of column names# in reverse orderfor column in reversed(stu_df.columns):        # Select column contents by column    # name using [] operator    columnSeriesObj = stu_df[column]    print('Column Name : ', column)    print('Column Contents : ', columnSeriesObj.values)
Output:  
Method #5: Using index (iloc) : To iterate over the columns of a Dataframe by index we can iterate over a range i.e. 0 to Max number of columns than for each index we can select the contents of the column using iloc[]. Code :  
Python3
import pandas as pd  # List of Tuplesstudents = [('Ankit', 22, 'A'),           ('Swapnil', 22, 'B'),           ('Priya', 22, 'B'),           ('Shivangi', 22, 'B'),            ] # Create a DataFrame objectstu_df = pd.DataFrame(students, columns =['Name', 'Age', 'Section'],                      index =['1', '2', '3', '4'])  # Iterate over the index range from# 0 to max number of columns in dataframefor index in range(stu_df.shape[1]):        print('Column Number : ', index)         # Select column by index position using iloc[]    columnSeriesObj = stu_df.iloc[:, index]    print('Column Contents : ', columnSeriesObj.values)
Output: 
 
anikakapoor
Python pandas-dataFrame
Python-pandas
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.