【发布时间】:2022-01-11 00:53:03
【问题描述】:
我有一个数据框(如下),我需要将其转换为 PERSON_ID 的嵌套字典,然后是 YEAR。我已经能够做到这一点;
frame = frame.T.to_dict('dict')
但不幸的是,我需要这样的结构;
{76129: {1951: 'IN': 3.77551684175021, 'OUT': 6.02818626979883,
1952: 'IN': 3.67945267132245, 'OUT': 1.7685974058508,
1953: 'IN': 3.53030183426851, 'OUT': 0.409577500579766}}
如果有人对如何解决此问题有任何想法,我将不胜感激。
| PERSON_ID | YEAR | IN | OUT | |
|---|---|---|---|---|
| 0 | 76129 | 1951 | 3.77551684175021 | 6.02818626979883 |
| 1 | 76224 | 1951 | 9.3791597299824 | 9.53608578598666 |
| 2 | 76250 | 1951 | 0.729347478193212 | 5.74296130666972 |
| 3 | 76322 | 1951 | 0.922030969294425 | 8.95933733613574 |
| 4 | 76129 | 1952 | 3.67945267132245 | 1.7685974058508 |
| 5 | 76224 | 1952 | 2.43404429471111 | 7.97540821827656 |
| 6 | 76250 | 1952 | 7.26162056498856 | 9.76505935514356 |
| 7 | 76322 | 1952 | 8.66970822529531 | 7.50026191441197 |
| 8 | 76129 | 1953 | 3.53030183426851 | 0.409577500579766 |
| 9 | 76224 | 1953 | 3.45390554224515 | 3.20774562896629 |
| 10 | 76250 | 1953 | 6.63976713572943 | 5.48027529875715 |
| 11 | 76322 | 1953 | 7.87048287939222 | 0.610433799575476 |
【问题讨论】:
-
如果您只是尝试导出 JSON,请参阅现有的 JSON 问题。你真的在内部真的需要这个嵌套的字典吗?似乎不太可能。如果是,您能解释一下原因吗?
-
您想要的输出不是有效的嵌套字典 (
invalid syntax)。您能否确认所需的输出应该是什么? -
@Bill:缺少尾随 '}}'
-
Nick:您是否只想导出 JSON?如果是,这是Convert Pandas DataFrame to JSON format 的副本。 (熊猫本身也有一个
df.to_json(),但它不够灵活,无法创建您想要的嵌套字典/分组。) -
@smci 即使现在添加了尾随'}}',这仍然不是有效的字典。当我尝试它时,我得到
SyntaxError: invalid syntax。