Python 将json列读入新列
我在pandas dataframe中有一个这样的列,我想将它转换为多个列a、b、c、dPython 将json列读入新列,python,json,python-3.x,pandas,Python,Json,Python 3.x,Pandas,我在pandas dataframe中有一个这样的列,我想将它转换为多个列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)的列,并且不会将值放入其中。
{"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。对于我来说,使用
if else
语句处理您的解决方案以处理缺少的值,并且还添加了[]
和索引
参数:
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