How to convert index in a column of the Pandas dataframe?

Each row in a dataframe (i.e level=0) has an index value i.e value from 0 to n-1 index location and there are many ways to convert these index values into a column in a pandas dataframe. First, let’s create a Pandas dataframe. Here, we will create a Pandas dataframe regarding student’s marks in a particular subject with columns roll number, name, score, grade, and subject.
Example:
Python3
# importing the pandas library as pd import pandas as pd # Creating the dataframe Ab AB = pd.DataFrame({'Roll Number': ['9917102206', '9917102250', '9917102203', '9917102204', '9917102231'], 'Name': ['TANYA', 'PREETIKA', 'KUSHAGRA', 'PRAKHAR','ASHISH'], 'Score': [99, 98, 50, 45,97], 'Grade': ['A+', 'A+', 'C+', 'C','A'], 'Subject': ['Operating Systems', 'Operating Systems', 'Operating Systems', 'Operating Systems', 'Operating Systems']}) # Printing the dataframe AB |
Output:
DATA FRAME CREATED
Method 1: Creating a new Index column
Here we will learn to create a new column in the existing dataframe as an index and add index value of each row(level=0) to that column.
Python3
# importing the pandas library as pd import pandas as pd # Creating the dataframe Ab AB = pd.DataFrame({'Roll Number': ['9917102206', '9917102250', '9917102203', '9917102204', '9917102231'], 'Name': ['TANYA', 'PREETIKA', 'KUSHAGRA', 'PRAKHAR','ASHISH'], 'Score': [99, 98, 50, 45,97], 'Grade': ['A+', 'A+', 'C+', 'C','A'], 'Subject': ['Operating Systems', 'Operating Systems', 'Operating Systems', 'Operating Systems', 'Operating Systems']}) # Adding a new index column to existing# data frame and passing index value AB['index'] = AB.index# Printing the dataframe AB |
Output:
Here, we added a new column “index” to “AB” dataframe using the index value of each row in the dataframe as an argument value and converted index to the column.
Method 2: Using reset_index() method and to_string() method
Here we will sue reset_index() method to convert the index to a column along with inplace argument to reflect the change continuously and we will use the to_string() method for hiding the index value shown by default whenever a dataframe is printed.
Python3
#CREATING A DATAFRAME FOR STUDENTS PORTFOLIO# importing the pandas library as pd import pandas as pd # Creating the dataframe Ab AB = pd.DataFrame({'Roll Number': ['9917102206', '9917102250', '9917102203', '9917102204','9917102231'], 'Name': ['TANYA', 'PREETIKA', 'KUSHAGRA', 'PRAKHAR','ASHISH'], 'Score': [99, 98, 50, 45,97], 'Grade': ['A+', 'A+', 'C+', 'C','A'], 'Subject': ['Operating Systems', 'Operating Systems', 'Operating Systems', 'Operating Systems','Operating Systems']}) # importing the pandas library as pd import pandas as pd # Creating the dataframe Ab AB = pd.DataFrame({'Roll Number': ['9917102206', '9917102250', '9917102203', '9917102204', '9917102231'], 'Name': ['TANYA', 'PREETIKA', 'KUSHAGRA', 'PRAKHAR','ASHISH'], 'Score': [99, 98, 50, 45,97], 'Grade': ['A+', 'A+', 'C+', 'C','A'], 'Subject': ['Operating Systems', 'Operating Systems', 'Operating Systems', 'Operating Systems', 'Operating Systems']}) # USING RESET_INDEX METHOD# Adding a new index column to AB dataframeAB.reset_index(level=0, inplace=True) # HIDING THE DEFAULT INDEX VALUES AND# PRINTING DATAFRAMEprint( AB.to_string(index=False)) |
Output:
USING RESET_INDEX METHOD
Here we applied reset_index method to given data frame and make the default index value (equal to 0) by passing it as an argument to to_string method.
Method 3: Using multi_index
Here We will learn to create columns from a dataframe having multi-index.
Example 1: For multi-index to column
Python3
# importing the pandas library as pd import pandas as pd # ADDING MULTI INDEX TO DATA FRAMEnew_index = pd.MultiIndex.from_tuples([('E4','ECE'), ('E5','ECE'), ('E6','ECE'), ('E7','ECE'), ('E8','ECE')], names=['BATCH','BRANCH'])# Creating the dataframe ABdata =({'Roll Number': ['9917102206', '9917102250', '9917102203', '9917102204', '9917102231'], 'Name': ['TANYA', 'PREETIKA', 'KUSHAGRA', 'PRAKHAR','ASHISH'], 'Score': [99, 98, 50, 45,97], 'Grade': ['A+', 'A+', 'C+', 'C','A'], 'Subject': ['Operating Systems', 'Operating Systems', 'Operating Systems', 'Operating Systems', 'Operating Systems']}) # COMBING DATA FRAME AND MULTI INDEX # VALUES AND FORMING DATA FRAMEAB = pd.DataFrame(data, columns = ['Roll Number','Name','Score','Grade','Subject'], index=new_index)# MAKING MULTI INDEX NOW A PART OF COLUMN # OF DATAFRAMEAB.reset_index(inplace=True) AB |
Output:
Example 2: For making specific column from multi-index as a column of dataframe
Python3
# importing the pandas library as pd import pandas as pd # ADDING MULTI INDEX TO DATA FRAMEnew_index = pd.MultiIndex.from_tuples([('E4','ECE'), ('E5','ECE'), ('E6','ECE'), ('E7','ECE'), ('E8','ECE')], names=['BATCH','BRANCH'])# Creating the dataframe ABdata =({'Roll Number': ['9917102206', '9917102250', '9917102203', '9917102204', '9917102231'], 'Name': ['TANYA', 'PREETIKA', 'KUSHAGRA', 'PRAKHAR','ASHISH'], 'Score': [99, 98, 50, 45,97], 'Grade': ['A+', 'A+', 'C+', 'C','A'], 'Subject': ['Operating Systems', 'Operating Systems', 'Operating Systems', 'Operating Systems', 'Operating Systems']}) # COMBING DATA FRAME AND MULTI INDEX # VALUES AND FORMING DATA FRAMEAB = pd.DataFrame(data, columns = ['Roll Number','Name','Score','Grade','Subject'], index=new_index)# MAKING SPECIFIC COLUMN OF MULTI INDEX # NOW A PART OF COLUMN OF DATAFRAMEAB.reset_index(inplace=True,level=['BATCH']) # BATCH INDEX IS NOW A COLUMN OF DATAFRAMEAB |
Output:



