【问题标题】:Nested List of Dictionaries in Pandas DataFramePandas DataFrame 中的嵌套字典列表
【发布时间】:2016-07-24 14:15:44
【问题描述】:

这里的营养素列有 4 个字典,每个字典有 5 个键,每个键有 1 个值。

我怎样才能展平这个营养素列以使每个列或行成为一个子列或行?

实际上它是一个 JSON 文件,我已经将它扁平化了。但我不能更进一步:(

感谢您的帮助。

编辑: 请参阅下面的更多信息以及我尝试过的内容:

【问题讨论】:

  • 您能否以 text 形式发布您的 JSON 文件样本,以便我们复制、粘贴和开发可行的解决方案?我想应该可以按照您想要的方式展平您的 JSON 文件,而无需后处理
  • 我在下面发表了详细评论,如果您愿意,我可以发送 JSON 文件的另一种文本形式。再次感谢!
  • 你觉得为什么我在第一条评论中将“以 text 形式”标记为粗体? ;)

标签: python list dictionary pandas nested


【解决方案1】:

您可以使用json_normalize() 来扁平化您的 JSON 文件,如下所示:

import ujson
import pandas as pd

with open('/path/to/your/file.json') as f:
    data = ujson.load(f)

df = pd.io.json.json_normalize(data, 'nutrients', ['measure','name','ndbno','weight'])

假设 ['measure','name','ndbno','weight'] - 没有嵌套

【讨论】:

  • 谢谢@MaxU,但在我的情况下它不起作用。至少我做不到。
  • @MaxU。如果再嵌套一次“营养素”会怎样。我也面临同样的问题,但我的“营养素”列有第二级,使用 (data, ['nutrients', 'something_else']) 不起作用。
  • @DanielVargas,请询问(打开)一个问题,并以文本形式将您的数据集 (JSON) 和您想要的数据集发布到那里
  • @MaxU 实际上我已经做了好几次了。请看其中之一。 stackoverflow.com/questions/47319424/digging-down-json-file
  • @MaxU 我更新了这个问题,完整的文件块更清楚了。 stackoverflow.com/questions/47242845/…
猜你喜欢
  • 2017-12-26
  • 2019-06-27
  • 2023-04-02
  • 2021-06-09
  • 2018-10-26
  • 1970-01-01
  • 2022-01-01
  • 2019-05-27
  • 1970-01-01
相关资源
最近更新 更多