Pandas: Convert into specified number of columns from multi levels index
Pandas Indexing: Exercise-10 with Solution
Write a Pandas program to convert 1st and 3rd levels in the index into columns from a multiple level of index frame of a given dataframe.
Test Data:
0 s001 V Alberto Franco 15/05/2002 35 street1 t1 1 s002 V Gino Mcneill 17/05/2002 32 street2 t2 2 s003 VI Ryan Parkes 16/02/1999 33 street3 t3 3 s001 VI Eesha Hinton 25/09/1998 30 street1 t4 4 s002 V Gino Mcneill 11/05/2002 31 street2 t5 5 s004 VI David Parkes 15/09/1997 32 street4 t6
Sample Solution:
Python Code :
import pandas as pd
df = pd.DataFrame({
'school_code': ['s001','s002','s003','s001','s002','s004'],
'class': ['V', 'V', 'VI', 'VI', 'V', 'VI'],
'name': ['Alberto Franco','Gino Mcneill','Ryan Parkes', 'Eesha Hinton', 'Gino Mcneill', 'David Parkes'],
'date_of_birth': ['15/05/2002','17/05/2002','16/02/1999','25/09/1998','11/05/2002','15/09/1997'],
'weight': [35, 32, 33, 30, 31, 32],
't_id': ['t1', 't2', 't3', 't4', 't5', 't6']})
print("Original DataFrame:")
print(df)
print("\nMultiIndex using columns 't_id', ‘school_code’ and 'class':")
df1 = df.set_index(['t_id', 'school_code', 'class'])
print(df1)
print("\nConvert 1st and 3rd levels in the index frame into columns:")
df2 = df1.reset_index(level=['t_id', 'class'])
print(df2)
Sample Output:
Original DataFrame: school_code class name date_of_birth weight t_id 0 s001 V Alberto Franco 15/05/2002 35 t1 1 s002 V Gino Mcneill 17/05/2002 32 t2 2 s003 VI Ryan Parkes 16/02/1999 33 t3 3 s001 VI Eesha Hinton 25/09/1998 30 t4 4 s002 V Gino Mcneill 11/05/2002 31 t5 5 s004 VI David Parkes 15/09/1997 32 t6 MultiIndex using columns 't_id', ‘school_code’ and 'class': name date_of_birth weight t_id school_code class t1 s001 V Alberto Franco 15/05/2002 35 t2 s002 V Gino Mcneill 17/05/2002 32 t3 s003 VI Ryan Parkes 16/02/1999 33 t4 s001 VI Eesha Hinton 25/09/1998 30 t5 s002 V Gino Mcneill 11/05/2002 31 t6 s004 VI David Parkes 15/09/1997 32 Convert 1st and 3rd levels in the index frame into columns: t_id class name date_of_birth weight school_code s001 t1 V Alberto Franco 15/05/2002 35 s002 t2 V Gino Mcneill 17/05/2002 32 s003 t3 VI Ryan Parkes 16/02/1999 33 s001 t4 VI Eesha Hinton 25/09/1998 30 s002 t5 V Gino Mcneill 11/05/2002 31 s004 t6 VI David Parkes 15/09/1997 32
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Pandas program to convert index of a given dataframe into a column.
Next: Write a Pandas program to check if a specified value exists in single and multiple column index dataframe.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/python-exercises/pandas/index/pandas-indexing-exercise-10.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics