如何将pandas df转换为复杂的json结构?

等等

当前的熊猫数据框:

动物 频率
鲍勃 2
鲍勃 1个
鲍勃 鹦鹉 1个
凯特 1个
凯特 鹦鹉 1个
喜悦 3

所需的输出(此json字典):

dictionary={'title': 'frequencies',
            'children': [{'animal': 'dog', 'people': [{'name': 'Bob', 'freq': 2}, {'name':'Kate', 'freq': 1}]},
                         {'animal': 'cat', 'people': [{'name': 'Bob', 'freq': 1}, {'name':'Joy', 'freq': 3}]},
                         {'animal': 'parrot', 'people': [{'name':'Kate', 'freq': 1}, {'name':'Bob', 'freq': 1}]}]}

目前,我仅设法将上述pandas df转换为词典列表。我想这是一个开始的方式?

list_dicts = df.to_dict('records')

导致:

list_dicts = [{'people': 'Bob', 'animal': 'dog', 'frequencies': 2},
              {'people': 'Bob', 'animal': 'cat', 'frequencies': 1},
              {'people': 'Bob', 'animal': 'parrot', 'frequencies': 1},
              {'people': 'Kate', 'animal': 'dog', 'frequencies': 1},
              {'people': 'Kate', 'animal': 'parrot', 'frequencies': 1},
              {'people': 'Joy', 'animal': 'cat', 'frequencies': 3}]
杜基
>>> list_dicts = [{"people": "Bob", "animal": "dog", "frequencies": 2},
...               {"people": "Bob", "animal": "cat", "frequencies": 1},
...               {"people": "Bob", "animal": "parrot", "frequencies": 1},
...               {"people": "Kate", "animal": "dog", "frequencies": 1},
...               {"people": "Kate", "animal": "parrot", "frequencies": 1},
...               {"people": "Joy", "animal": "cat", "frequencies": 3}]
>>> 
>>> temp = defaultdict(list)
>>> for item in list_dicts:
...     temp[item["animal"]].append({"name": item["people"], "freq": item["frequencies"]})
... 
>>> result = {"title": "frequencies", "children":[
...     {"animal": animal, "people": people} for animal, people in temp.items()
... ]}
>>> result
{'title': 'frequencies', 'children': [{'animal': 'dog', 'people': [{'Bob': 2}, {'Kate': 1}]}, {'animal': 'cat', 'people': [{'Bob': 1}, {'Joy': 3}]}, {'animal': 'parrot', 'people': [{'Bob': 1}, {'Kate': 1}]}]}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章