【问题标题】:Python - How to convert JSON File to DataframePython - 如何将 JSON 文件转换为数据框
【发布时间】:2017-05-01 07:34:14
【问题描述】:

如何将 JSON 文件本身转换为数据框以进行一些转换。

例如,如果 JSON 文件读取:

{"FirstName":"John",

"LastName":"Mark",

"MiddleName":"Lewis",

"username":"johnlewis2",

"password":"2910"}

我怎样才能把它转换成这样的表格

Column -> FirstName | LastName | MiddleName | username | password



Row ----->    John | Mark |Lewis | johnlewis2 |2910

【问题讨论】:

    标签: python json pandas dataframe


    【解决方案1】:

    从字典对象创建数据框。

    import pandas as pd
    data = [{'name': 'vikash', 'age': 27}, {'name': 'Satyam', 'age': 14}]
    df = pd.DataFrame.from_dict(data, orient='columns')
    
    df
    Out[4]:
       age  name
    0   27  vikash
    1   14  Satyam
    

    如果您有嵌套列,那么您首先需要对数据进行规范化:

    data = [
      {
        'name': {
          'first': 'vikash',
          'last': 'singh'
        },
        'age': 27
      },
      {
        'name': {
          'first': 'satyam',
          'last': 'singh'
        },
        'age': 14
      }
    ]
    
    df = pd.DataFrame.from_dict(pd.json_normalize(data), orient='columns')
    
    df    
    Out[8]:
    age name.first  name.last
    0   27  vikash  singh
    1   14  satyam  singh
    

    来源:

    【讨论】:

    • 谢谢!很有用
    【解决方案2】:
    import pandas as pd
    print(pd.json_normalize(your_json))
    

    这会将半结构化 JSON 数据规范化为平面表

    输出

      FirstName LastName MiddleName password    username
          John     Mark      Lewis     2910  johnlewis2
    

    【讨论】:

    • 谢谢@Marlon Abeykoon,非常有用,尤其是在我想导入 JSON 时
    • 很高兴它对您有所帮助
    【解决方案3】:
    jsondata = '{"0001":{"FirstName":"John","LastName":"Mark","MiddleName":"Lewis","username":"johnlewis2","password":"2910"}}'
    import json
    import pandas as pd
    jdata = json.loads(jsondata)
    df = pd.DataFrame(jdata)
    print df.T
    

    这应该是这样的:。

    名字姓氏中间名密码用户名 0001 约翰·马克·刘易斯 2910 johnlewis2

    【讨论】:

      【解决方案4】:

      您可能有 2 个输入,您也可以在它们之间进行转换。

      1. 输入:listOfDictionaries --> 使用@VikashSingh 解决方案

      示例:[{"":{"...

      pd.DataFrame() 需要 listOfDictionaries 作为输入。

      1. 输入:jsonStr --> 使用@JustinMalinchak 解决方案

      示例:'{"":{"...

      如果你有 jsonStr,你首先需要一个额外的步骤来 listOfDictionaries。这很明显,因为它是这样生成的:

      jsonStr = json.dumps(listOfDictionaries)
      

      因此,首先从 jsonStr 切换回 listOfDictionaries:

      listOfDictionaries = json.loads(jsonStr)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-29
        • 2020-02-29
        • 2021-06-20
        • 2017-05-25
        相关资源
        最近更新 更多