我有这样一个DF:
In [2]: x
Out[2]:
A B C D E F
0 s1 sent1 0 0 e1 yes
1 s1 sent1 0 0 e2 no
2 s4 sent6 74 6 e1 no
我能够让它为嵌套JSON做好准备,如下所示:
y = x.groupby(['A','B'])[['C','D','E','F']].apply(lambda x: x.to_dict(orient='r')).reset_index(name='sb').to_dict(orient='r')
这将提供以下输出:
[{'A': 's1',
'B': 'sent1',
'sb': [{'C': 158, 'D': 1, 'E': 'ent1', 'F': 'yes'},
{'C': 158, 'D': 1, 'E': 'ent2', 'F': 'no'}]},
{'A': 's1',
'B': 'sent6',
'sb': [{'C': 260, 'D': 5, 'E': 'ent1', 'F': 'no'}]}]
我多么希望它也将E
和F
嵌套为自己的部分,类似于sb
(称为tok
):
[{'A': 's1',
'B': 'sent1',
'sb': [{'C': 158, 'D': 1, 'tok': [{'E': 'ent1', 'F': 'yes'}]]},
{'C': 158, 'D': 1, 'tok': [{'E': 'ent2', 'F': 'no'}]}]},
{'A': 's1',
'B': 'sent6',
'sb': [{'C': 260, 'D': 5, 'tok': [{'E': 'ent1', 'F': 'no'}]}]}]
有没有办法添加额外的groupby
我认为您需要在解决方案之前创建由dict列表填充的
tok
列,然后将E,F
列更改为tok
:相关问题 更多 >
编程相关推荐