2017-05-05 201 views
1
{ 
    "type_a": { 
    "2015-08-07": { 
     "is_available": false, 
     "variable": 0.282 
    }, 
    "2015-08-23": { 
     "is_available": false, 
     "variable": 0.296 
    }, 
    "2017-03-28": { 
     "is_available": false, 
     "variable": 0.524 
    } 
    }, 
    "type_b": { 
    "2015-06-27": { 
     "is_available": true, 
     "variable": 0.038 
    }, 
    "2015-07-30": { 
     "is_available": true, 
     "variable": 0.035 
    }, 
    "2017-04-27": { 
     "is_available": true, 
     "variable": 0.158 
    } 
    } 
} 

我想上面的JSON加载到大熊猫数据帧,使两者is_availablevariable列名,因此最终的结构看起来像这样:解析JSON成大熊猫数据帧

   data_source  is_available  variable 
2015-08-07  type_a   false   0.282 
2015-08-23  type_a   false   0.296 
2017-03-28  type_a   false   0.524 
2015-06-27  type_b   true   0.038 
2015-07-30  type_b   true   0.035 
2015-04-27  type_b   true   0.158 

目前,我做这样的:

pd.read_json(json) 
+1

这是不是违反使用真假?因为这不是Python语法 – TLOwater

回答

2

如果我假设你的数据被称为data,这将做到这一点:

import pandas as pd 

df = pd.DataFrame.from_dict({(i, j): data[i][j] for i in data.keys() for j in data[i].keys()}, orient='index') 
df['data_source'] = df.index.droplevel(level=1) 
df.index = df.index.droplevel(level=0)