import seaborn as sns
import pandas as pd

def r(df):
    return df.loc[df.name].reset_index(drop=True)
data = df.mean().groupby(level=0).apply(r).rename_axis(['grp', 'cat']
    ).reset_index(name='mu')
ax = sns.barplot(x='grp', y='mu', hue='cat', data=data)
ax.legend_.remove()
for i, p in enumerate(ax.patches):
    height = p.get_height()
ax.text(p.get_x() + 0.05, height + 1, df.columns.levels[1][i])
Pandas: how to draw a bar plot with two categories and four series each?