gpt4 book ai didi

python - 将分层 JSON 文件导入 Pandas 数据框

转载 作者:太空宇宙 更新时间:2023-11-04 04:10:40 25 4
gpt4 key购买 nike

我一直在寻找解决我的问题的方法,但找不到任何适用的方法。我正在尝试将高维 JSON 文件导入 Pandas 数据框。

结构是这样的:

{   'manufacturing_plant_events':
{ 'data':
{ 'shiftInformation':
{ 'shift1':
{ 'color': 'red'
, 'amount' : 32
, 'order' : None
},
'shift2':
{ 'color': 'blue'
, 'amount' : 44
, 'order' : 1
},
'shift3':
{ 'color': 'green'
, 'amount' : 98
, 'order' : 2
}
}
...}
...}
}

我尝试过很多解决方案,包括:

  • json.loads()
  • pd.DataFrame(json)
  • json_normalize(json)
  • pd.read_json(json)

和其他人,我试过展平我的数组并将其转换为数据帧 bu,但这也不起作用。我不确定这是否可行,或者数据框是否仅支持几层嵌套。

我尝试过的扁平化只是尝试在包含叶信息的数据框中创建列。因此,我也可以使用以下列命名完整路径和值的数据框,即存储在节点中的实际值。

我的数据框中的第一行:

(
manufacturing_plant_events.data.shiftInformation.shift1.color
'red'

manufacturing_plant_events.data.shiftInformation.shift1.amount
32

manufacturing_plant_events.data.shiftInformation.shift1.order
None
)

等等。

非常感谢任何有关如何解决此问题的建议。

最佳答案

我通过扁平化字典提出了一个数据框:

import pandas as pd

def flat_dict(dictionary, prefix):
if type(dictionary) == dict:
rows = []

for key, items in dictionary.items():
rows += flat_dict(items, prefix + [key])

return rows

else:
return [prefix + [dictionary]]

def dict_to_df(dictionary):
return pd.DataFrame(flat_dict(dictionary, []))

感谢 json 包,您首先需要将 json 作为字典导入。

关于python - 将分层 JSON 文件导入 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56326536/

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