Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将json列读入新列_Python_Json_Python 3.x_Pandas - Fatal编程技术网

Python 将json列读入新列

Python 将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)的列,并且不会将值放入其中。

我在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)的列,并且不会将值放入其中。所有值均为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