我正在使用 Python 3.6 和 Pandas 0.19.2,有一个如下所示的 DataFrame:
Name Chain Food Healthy
George McDonalds burger False
George KFC chicken False
John Wendys burger False
John McDonalds salad True
我希望将这个数据框转换为一个字典,其格式看起来如下:
health_data = {'George': {'McDonalds': {'Food': 'burger', 'Healthy':False},
'KFC': {'Food': 'chicken', 'Healthy':False}},
'John': {'Wendys': {'Food': 'burger', 'Healthy':False},
'McDonalds': {'Food': 'salad', 'Healthy': True}}}
我的想法是:
- 使用
df.groupby
将名称列分组 - 使用
df.to_dict()
将数据框转换为字典,例如:health_data = input_data.set_index('Chain').T.to_dict()
有何想法?感谢您的帮助。
df
中没有其他列,它可以简化为df.groupby('Name').apply(lambda x: x.set_index('Chain').to_dict(orient='index')).to_dict()
。 - jezrael.to_dict
放在 lambda 里面,谢谢一如既往的 Jozi :) - Umar.Happly
中设置多个索引,有什么建议吗? - E. Zeytinci