【问题标题】:read a json column into new columns pandas将 json 列读入新列 pandas
【发布时间】:2023-04-04 11:35:01
【问题描述】:

我在 pandas 数据框中有一列这样的列,我想将其转换为多列 a、b、c、d

{"a":false,"b":false}
{"a":false,"b":false,"c":true}
nan
{"a":false}
{"a":true,"d":true}

我试过了:

ops = ops.join( pd.DataFrame(json.loads(d)  for d in ops.pop('json_column')) )

但它会创建名称为 (a,b,c,d) 的列,并且不会将值放入其中。所有值都是 nan。

【问题讨论】:

    标签: python json python-3.x pandas


    【解决方案1】:

    对我来说,使用 if-else 语句处理缺失值并添加 []index 参数:

    ops = ops.join(pd.DataFrame([json.loads(d) 
                                 if pd.notna(d) 
                                 else {} 
                                 for d in ops.pop('json_column')], index=ops.index))
    print (ops)
           a      b     c     d
    0  False  False   NaN   NaN
    1  False  False  True   NaN
    2    NaN    NaN   NaN   NaN
    3  False    NaN   NaN   NaN
    4   True    NaN   NaN  True
    

    【讨论】:

      猜你喜欢
      • 2015-05-14
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 2023-03-31
      • 2017-05-19
      • 2018-06-23
      相关资源
      最近更新 更多