【问题标题】:How to normalize a json file in pandas?如何规范化熊猫中的json文件?
【发布时间】:2021-07-21 16:20:27
【问题描述】:

我想规范化一个看起来像这样的 json 文件:

[{ "ID":1, "Rev":2, "Fields":{"System.Id":1, "System.State":"CLosed", "System.Title":"ABC", "Value":"Functional"}, "Comments":[] }]

我尝试通过以下方式使用 json_normalize 函数:

df = pd.json_normalize(data, 'Fields', ['Id', 'Rev', 'Comments'], record_prefix = "Fields_")

但是上面的代码创建了几行属于同一个 ID 号。我希望代码创建由“字段”描述的新列,与 json 文件中的其他列处于同一级别。每行应该有一个 ID 号和该 ID 号的其他详细信息。我该如何实现?

编辑:我需要输出如下所示:

所需输出:

相反,我得到的是:

【问题讨论】:

  • 你能分享一下你的预期输出是什么样的吗?
  • 嗨,我需要每个 ID 号有一行这样的输出:>ID REV System.ID System.State System.Title Value Comments >1 2 1 Closed ABC Functional
  • 修改了原问题,请查收。
  • 好的,我刚刚发布了答案..

标签: python json pandas data-science


【解决方案1】:

pd.json_normalize() 将返回具有一个 id 的行以及其他详细信息,然后您可以在所有列中使用 replace "Fields."""

data= [{ "ID":1, "Rev":2, "Fields":{"System.Id":1, "System.State":"CLosed", "System.Title":"ABC", "Value":"Functional"}, "Comments":[] }]
df = pd.json_normalize(data)
df.columns = [c.replace("Fields.", "") for c in df.columns]

输出

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 2020-04-22
    • 2018-10-06
    • 2021-03-30
    • 2020-10-21
    • 2019-06-29
    • 2014-12-12
    相关资源
    最近更新 更多