gpt4 book ai didi

python - 嵌套字典到 pandas DataFrame

转载 作者:太空宇宙 更新时间:2023-11-04 00:21:01 26 4
gpt4 key购买 nike

我的数据是这样的:

{ outer_key1 : [ {key1: some_value},
{key2: some_value},
{key3: some_value} ],
outer_key2 : [ {key1: some_value},
{key2: some_value},
{key3: some_value} ] }

内部数组的长度总是相同的。 key1、key2、key3 也始终相同。

我想将其转换为 pandas DataFrame,其中 outer_key1、outer_key2... 是索引,key1、key2、key3 是列。

编辑:

数据中存在问题,我认为这是给定解决方案不起作用的原因。在少数情况下,内部数组中有三个 None 而不是三个字典。像这样:

outer_key3:[无,无,无]

最佳答案

这是一种方法:

d = { 'O1' : [ {'K1': 1},
{'K2': 2},
{'K3': 3} ],
'O2' : [ {'K1': 4},
{'K2': 5},
{'K3': 6} ] }

d = {k: { k: v for d in L for k, v in d.items() } for k, L in d.items()}

df = pd.DataFrame.from_dict(d, orient='index')

# K1 K2 K3
# O1 1 2 3
# O2 4 5 6

替代方案:

df = pd.DataFrame(d).T

None数据比较麻烦的方法:

d = { 'O1' : [ {'K1': 1},
{'K2': 2},
{'K3': 3} ],
'O2' : [ {'K1': 4},
{'K2': 5},
{'K3': 6} ],
'O3' : [ {'K1': None},
{'K2': None},
{'K3': None} ] }

d = {k: v if isinstance(v[0], dict) else [{k: None} for k in ('K1', 'K2','K3')] for k, v in d.items()}
d = {k: { k: v for d in L for k, v in d.items() } for k, L in d.items()}

df = pd.DataFrame.from_dict(d, orient='index')

# K1 K2 K3
# O1 1.0 2.0 3.0
# O2 4.0 5.0 6.0
# O3 NaN NaN NaN

关于python - 嵌套字典到 pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49115118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com