w3resource

Pandas: Rename names of columns and specific labels of the Main Index of MultiIndex dataframe


15. Rename Columns and Main Index Labels in MultiIndex DataFrame

Write a Pandas program to rename names of columns and specific labels of the Main Index of the MultiIndex dataframe.

Sample Solution:

Python Code :

import pandas as pd 
import numpy as np
sales_arrays = [['sale1', 'sale1', 'sale2', 'sale2', 'sale3', 'sale3', 'sale4', 'sale4'],
          ['city1', 'city2', 'city1', 'city2', 'city1', 'city2', 'city1', 'city2']]
sales_tuples = list(zip(*sales_arrays))
sales_index = pd.MultiIndex.from_tuples(sales_tuples, names=['sale', 'city'])
print(sales_tuples)
print("\nConstruct a Dataframe using the said MultiIndex levels: ")
df = pd.DataFrame(np.random.randn(8, 5), index=sales_index)
print(df)
print("\nRename the columns name of the said dataframe")
df1 = df.rename(columns={0: "col1", 1: "col2", 2:"col3", 3:"col4", 4:"col5"})
print(df1)
print("\nRename specific labels of the main index of the DataFrame")
df2 = df1.rename(index={"sale2": "S2", "city2": "C2"})
print(df2)

Sample Output:

[('sale1', 'city1'), ('sale1', 'city2'), ('sale2', 'city1'), ('sale2', 'city2'), ('sale3', 'city1'), ('sale3', 'city2'), ('sale4', 'city1'), ('sale4', 'city2')]

Construct a Dataframe using the said MultiIndex levels: 
                    0         1         2         3         4
sale  city                                                   
sale1 city1 -0.846342 -0.741958  1.776873 -0.526789  0.425722
      city2 -1.191729  2.871049  1.334246 -0.555390  0.678033
sale2 city1  1.215433 -0.305873 -0.197025 -1.145550  0.367179
      city2 -1.043111 -0.054862 -0.409382 -0.781236 -1.111498
sale3 city1  0.198136 -0.092846  0.211265 -0.338316 -0.006117
      city2  1.254932  0.660553 -0.343675 -1.488751  1.141144
sale4 city1  0.440996 -1.886134 -1.705170 -0.583568 -0.094108
      city2 -0.645809 -0.979893  0.589839 -0.440143  0.032115

Rename the columns name of the said dataframe
                 col1      col2      col3      col4      col5
sale  city                                                   
sale1 city1 -0.846342 -0.741958  1.776873 -0.526789  0.425722
      city2 -1.191729  2.871049  1.334246 -0.555390  0.678033
sale2 city1  1.215433 -0.305873 -0.197025 -1.145550  0.367179
      city2 -1.043111 -0.054862 -0.409382 -0.781236 -1.111498
sale3 city1  0.198136 -0.092846  0.211265 -0.338316 -0.006117
      city2  1.254932  0.660553 -0.343675 -1.488751  1.141144
sale4 city1  0.440996 -1.886134 -1.705170 -0.583568 -0.094108
      city2 -0.645809 -0.979893  0.589839 -0.440143  0.032115

Rename specific labels of the main index of the DataFrame
                 col1      col2      col3      col4      col5
sale  city                                                   
sale1 city1 -0.846342 -0.741958  1.776873 -0.526789  0.425722
      C2    -1.191729  2.871049  1.334246 -0.555390  0.678033
S2    city1  1.215433 -0.305873 -0.197025 -1.145550  0.367179
      C2    -1.043111 -0.054862 -0.409382 -0.781236 -1.111498
sale3 city1  0.198136 -0.092846  0.211265 -0.338316 -0.006117
      C2     1.254932  0.660553 -0.343675 -1.488751  1.141144
sale4 city1  0.440996 -1.886134 -1.705170 -0.583568 -0.094108
      C2    -0.645809 -0.979893  0.589839 -0.440143  0.032115

For more Practice: Solve these Related Problems:

  • Write a Pandas program to rename selected column names and one level of the MultiIndex of a DataFrame and then display the modified DataFrame.
  • Write a Pandas program to change the names of the main index labels in a MultiIndex DataFrame and then update the column headers.
  • Write a Pandas program to update the names of both columns and the top level of a MultiIndex, using a dictionary mapping for renaming.
  • Write a Pandas program to rename specific labels in the main index of a MultiIndex DataFrame and then sort the index.

Python Code Editor:

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

Previous: Write a Pandas program to extract a single row, rows and a specific value from a MultiIndex levels DataFrame.

Next: Write a Pandas program to sort a MultiIndex of a DataFrame. Also sort on various levels of 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.