這是一個有點過於嵌套的JSON。但是,如果這是你有什麼的工作,並假設你解析JSON是jdata
:
datapts = jdata['data']
rownames = ['actual', 'upper_end_of_central_tendency']
colnames = [ item['title'] for item in datapts ] + ['schedule_id' ]
sched_id = jdata['schedule_id']
rows = [ [item['data'][rn] for item in datapts ] + [sched_id] for rn in rownames]
df = pd.DataFrame(rows, index=rownames, columns=colnames)
df
現在:
如果你想簡化一點,你可以構建核心數據時不需要不對稱的schedule_id
字段,然後在事實後添加:
datapts = jdata['data']
rownames = ['actual', 'upper_end_of_central_tendency']
colnames = [ item['title'] for item in datapts ]
rows = [ [item['data'][rn] for item in datapts ] for rn in rownames]
d2 = pd.DataFrame(rows, index=rownames, columns=colnames)
d2['schedule_id'] = jdata['schedule_id']
這將使相同的DataFrame(即)。它有助於學習熊貓嘗試幾種不同的建築策略,並感受更直接的感受。有更強大的工具可以將嵌套結構展開成更平坦的表格,但是它們並不像第一次那樣容易理解。
(更新)如果您想要更好地對JSON進行結構化以便更容易地使用這種格式,請向熊貓詢問它喜歡的內容。例如。 df.to_json()
輸出,稍微美化:
{
"2009": {
"actual": "(0.2)",
"upper_end_of_central_tendency": "-"
},
"2010": {
"actual": "2.8",
"upper_end_of_central_tendency": "-"
},
"longer_run": {
"actual": "-",
"upper_end_of_central_tendency": "2.3"
},
"schedule_id": {
"actual": "2014-03-19",
"upper_end_of_central_tendency": "2014-03-19"
}
}
也就是說從大熊貓read_json
功能會立即建立你的願望DataFrame
的格式。
看看[這裏](http://stackoverflow.com/questions/13575090/construct-pandas-dataframe-from-items-in-nested-dictionary) – camdenl 2015-03-25 14:13:20