当前的熊猫数据框:
人 | 动物 | 频率 |
---|---|---|
鲍勃 | 狗 | 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] 删除。
我来说两句