2017-05-05 135 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)