1{k: g.to_dict(orient='records') for k, g in df.groupby(level=0)}
2# {'bob': [{'age': 20, 'name': 'bob'}, {'age': 30, 'name': 'bob'}],
3# 'jim': [{'age': 25, 'name': 'jim'}]}
4
1df.groupby(level=0).apply(lambda x: x.to_dict('r')).to_dict()
2# {'bob': [{'age': 20, 'name': 'bob'}, {'age': 30, 'name': 'bob'}],
3# 'jim': [{'age': 25, 'name': 'jim'}]}
4