【问题标题】:pandas: from how to unpack nested JSON as dataframe?熊猫:从如何将嵌套的 JSON 解压缩为数据框?
【发布时间】:2020-09-29 20:11:26
【问题描述】:

我有一个这样的 JSON 输出

json.json

{"SeriousDlqin2yrs": {"prediction": "0", "prediction_probs": {"0": 0.95, "1": 0.04}}}
{"SeriousDlqin2yrs": {"prediction": "0", "prediction_probs": {"0": 0.96, "1": 0.03}}}

我想把它读成一个看起来像这样的熊猫数据框

prediction, prediction_probs.0, prediction_probs.1
0, 0.95, 0.04
0, 0.96, 0.03

但我似乎找不到正确的方法

我试过了

predictions = pd.read_json("json.json", lines=True)
predictions.apply(lambda x: pd.DataFrame(x[0]), axis=1)

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    在 pandas 1.1.1 中测试 - 将值转换为 lists 并传递给 json_normalize

    s = pd.read_json('json.json', lines=True)['SeriousDlqin2yrs'].tolist()
    
    df = pd.json_normalize(s)
    print (df)
      prediction  prediction_probs.0  prediction_probs.1
    0          0                0.95                0.04
    1          0                0.96                0.03
    

    另一个想法是解析 json 来代替pd.read_json:

    import json
    
    s = []
    with open('json.json') as f:
        for line in f:
            s.append(json.loads(line)['SeriousDlqin2yrs'])
            
    df = pd.json_normalize(s)
    print (df)
      prediction  prediction_probs.0  prediction_probs.1
    0          0                0.95                0.04
    1          0                0.96                0.03
    

    【讨论】:

      猜你喜欢
      • 2021-10-08
      • 2020-10-18
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      • 1970-01-01
      • 2022-01-06
      • 2019-12-23
      相关资源
      最近更新 更多