w3resource

Pandas: Create a multi Index frame using two columns and using an Index and a column


Write a Pandas program to create a multi Index frame using two columns and using an Index and a column.

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],
    'address': ['street1', 'street2', 'street3', 'street1', 'street2', 'street4'],
    't_id':['t1', 't2', 't3', 't4', 't5', 't6']})
print("Original DataFrame:")
print(df)
print("\nMultiIndex using columns 't_id' and ‘school_code’:")
df1 = df.set_index(['t_id', 'school_code'])
print(df1)
print("\nMultiIndex using an Index and a column:")
df2 = df.set_index([pd.Index([0, 1, 2, 3, 4, 5]), 't_id'])
print(df2)

Sample Output:

Original DataFrame:
  school_code class            name date_Of_Birth  weight  address t_id
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

MultiIndex using columns 't_id' and ‘school_code’:
                 class            name date_Of_Birth  weight  address
t_id school_code                                                     
t1   s001            V  Alberto Franco    15/05/2002      35  street1
t2   s002            V    Gino Mcneill    17/05/2002      32  street2
t3   s003           VI     Ryan Parkes    16/02/1999      33  street3
t4   s001           VI    Eesha Hinton    25/09/1998      30  street1
t5   s002            V    Gino Mcneill    11/05/2002      31  street2
t6   s004           VI    David Parkes    15/09/1997      32  street4

MultiIndex using an Index and a column:
       school_code class            name date_Of_Birth  weight  address
  t_id                                                                 
0 t1          s001     V  Alberto Franco    15/05/2002      35  street1
1 t2          s002     V    Gino Mcneill    17/05/2002      32  street2
2 t3          s003    VI     Ryan Parkes    16/02/1999      33  street3
3 t4          s001    VI    Eesha Hinton    25/09/1998      30  street1
4 t5          s002     V    Gino Mcneill    11/05/2002      31  street2
5 t6          s004    VI    David Parkes    15/09/1997      32  street4        

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Pandas program to display the default index and set a column as an Index in a given dataframe.
Next: Write a Pandas program to display the default index and set a column as an Index in a given dataframe and then reset the index.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.