Pandas: Drop a level from a multi-level column index
Write a Pandas program to drop a index level from a multi-level column index of a dataframe.
Note: Levels are 0-indexed beginning from the top.
Sample Solution:
Python Code :
import pandas as pd
cols = pd.MultiIndex.from_tuples([("a", "x"), ("a", "y"), ("a", "z")])
print("\nConstruct a Dataframe using the said MultiIndex levels: ")
df = pd.DataFrame([[1,2,3], [3,4,5], [5,6,7]], columns=cols)
print(df)
#Levels are 0-indexed beginning from the top.
print("\nRemove the top level index:")
df.columns = df.columns.droplevel(0)
print(df)
df = pd.DataFrame([[1,2,3], [3,4,5], [5,6,7]], columns=cols)
print("\nOriginal dataframe:")
print(df)
print("\nRemove the index next to top level:")
df.columns = df.columns.droplevel(1)
print(df)
Sample Output:
Construct a Dataframe using the said MultiIndex levels: a x y z 0 1 2 3 1 3 4 5 2 5 6 7 Remove the top level index: x y z 0 1 2 3 1 3 4 5 2 5 6 7 Original dataframe: a x y z 0 1 2 3 1 3 4 5 2 5 6 7 Remove the index next to top level: a a a 0 1 2 3 1 3 4 5 2 5 6 7
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Pandas program to find the indexes of rows of a specified value of a given column in a DataFrame.
Next: Write a Pandas program to insert a column at a specific index in a given DataFrame.
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