将Pandas DataFrame转换为嵌套字典

时间:2019-11-20 11:24:35

标签: python pandas dictionary

如何将简单的pandas DataFrame转换为嵌套字典,其中dataframe的第一列是dict的主键,而随后的所有列均代表值?也就是说,所有后续列本身都会成为字典。

dataframe
Key     title   source
Key1    Test1   ABC
Key2    Test2   ABC
Key3    Test2   DEF


Nested dictionary
{
    {'Key1': {'title': 'Test1', 'source': 'ABC'},
    {'Key2': {'title': 'Test2', 'source': 'ABC'},
    {'Key3': {'title': 'Test2', 'source': 'DEF'},
}

2 个答案:

答案 0 :(得分:2)

使用df.to_json ...这是您的情况:

>>> df = pd.DataFrame([['Test1', 'ABC'], ['Test2', 'ABC'], ['Test2', 'DEF']],
...                    index=['Key1', 'Key2', 'Key3'],
...                    columns=['title', 'source'])

>>> df
      title source
Key1  Test1    ABC
Key2  Test2    ABC
Key3  Test2    DEF

>>> df.to_json(orient='index')
{"Key1":{"title":"Test1","source":"ABC"},
 "Key2":{"title":"Test2","source":"ABC"},
 "Key3":{"title":"Test2","source":"DEF"}}

注意:

您的dataframe与我的唯一区别是我的key索引,可以使用df.set_index('Key')

进行设置

答案 1 :(得分:2)

使用VehiclePerDayto_dict返回字典,而to_dict返回字符串。如果需要to_json,请使用str。如果您需要字典,请使用to_json

to_dict