今、以下のような DataFrame があるとします。

import pandas as pd

mi = pd.MultiIndex(
    levels=[['group1', 'group2'], [1,2,3,4]],
    codes=[[0,0,1,1], [0,1,2,3]],
    names=['group', 'id']
)

df = pd.DataFrame({
    'col1': [400, 300, 200, 100],
    'col2': [10, 20, 30, 40],
}, index=mi)
df

displayed df

これに対して、 idxmax をグループしながら実行したとします。

max_idx = df.groupby(level='group').idxmax()
max_idx

displayed max_idx

これらのデータから、以下のような DataFrame を作りたいです。

pd.DataFrame({
    ('col1', 'col1'): [400, 200],
    ('col1', 'col2'): [10, 30],
    ('col2', 'col1'): [300, 20],
    ('col2', 'col2'): [100, 40]
}, index=pd.Index(['group1', 'group2'], name='group')).rename_axis(['max_at', 'original_cols'], axis=1)

wanted result of df referring idx by idxmax

質問

最後の DataFrame を、 dfmax_idx の DataFrame から導出するにはどうしたらよいでしょうか?