Pandas: Rename names of columns and specific labels of the Main Index of 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
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
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.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics