Setup
# Import libraries
import pandas as pd
import seaborn as sns
# Load sample data in a DataFrame
df = (
sns.load_dataset('iris')
[['species', 'petal_length']]
.groupby('species')
.agg(['min', 'mean', 'max'])
)
df
petal_length | |
min | |
species | |
setosa | 1.0 |
versicolor | 3.0 |
virginica | 4.5 |
Drop a level
# Just drop the first level
df.droplevel(0, axis=1)
min | mean | max | |
species | |||
setosa | 1.0 | 1.462 | 1.9 |
versicolor | 3.0 | 4.260 | 5.1 |
virginica | 4.5 | 5.552 | 6.9 |
Concatenate names
# Method chaining
df.set_axis(['_'.join(col).strip() for col in df.columns.values], axis=1)
petal_length_min | petal_length_mean | petal_length_max | |
species | |||
setosa | 1.0 | 1.462 | 1.9 |
versicolor | 3.0 | 4.260 | 5.1 |
virginica | 4.5 | 5.552 | 6.9 |
# Classic way
df.columns = ['_'.join(col).strip() for col in df.columns.values]
df
petal_length_min | petal_length_mean | petal_length_max | |
species | |||
setosa | 1.0 | 1.462 | 1.9 |
versicolor | 3.0 | 4.260 | 5.1 |
virginica | 4.5 | 5.552 | 6.9 |