I'm running a function .agg([np.mean, np.sum]) that results in a DataFrame that looks like this:
HUC_8 07110005 07110006 07110007
acute_human mean 0.498878 0.491621 0.514938
sum 522.824218 799.375134 159.115824
chronic_human mean 0.510916 0.490830 0.522305
sum 535.439663 798.090369 161.392326
overall_human mean 0.488282 0.508226 0.498384
sum 521.824118 719.371134 119.115824
I'd like to convert this into a nested dictionary that looks like this:
{'07110005':
{'acute_human':
{'mean': 0.498878,
'sum': 522.824218},
'chronic_human':
{'mean': 0.510916,
'sum': 535.439663},
'overall_human':
{'mean': 0.510916,
'sum': 535.439663}},
'0711006':
...
Simply using df.to_dict() gets me close, but not quite there:
{'07110005':
{('acute_human', 'mean'): 0.4990235526721262,
('acute_human', 'sum'): 522.9766832003883....
Is there a straightforward way to automatically nest the second level of the index without an expensive iteration?