[英]How to convert list of dict of list of dict with same key as pandas dataframe
我有這樣的 json 響應-
{
"returnedRowCount":2,
"columns":[
{"name":"type","type":"TEXT","index":0},
{"name":"type","type":"TEXT","index":1},
{"name":"dept","type":"TEXT","index":2}],
"rows":[
{"row":[{"v":"type1"},{"v":"name1"},{"v":"dept1"}]},
{"row":[{"v":"type2"},{"v":"name2"},{"v":"dept2"}]}
]
}
需要一種轉換為 dataframe 的方法,如下所示 -
type name dept
0 type1 name1 dept1
1 type2 name2 dept1
我相信這需要理解才能首先轉換為 dict 但無法弄清楚
是的,您可以使用列表推導提取列名和行數據:
import pandas as pd
j = {
"returnedRowCount":2,
"columns":[
{"name":"type","type":"TEXT","index":0},
{"name":"name","type":"TEXT","index":1},
{"name":"dept","type":"TEXT","index":2}],
"rows":[
{"row":[{"v":"type1"},{"v":"name1"},{"v":"dept1"}]},
{"row":[{"v":"type2"},{"v":"name2"},{"v":"dept2"}]}
]
}
data = [[c['v'] for c in r] for r in [row['row'] for row in j['rows']]]
columns = [c['name'] for c in j['columns']]
df = pd.DataFrame(data, columns=columns)
結果:
type name dept
0 type1 name1 dept1
1 type2 name2 dept2
你也可以這樣做:
data = [[vals['v'] for vals in dat['row']] for dat in j['rows']]
pd.DataFrame(data, columns = pd.DataFrame(j['columns'])['name'].tolist())
type name dept
0 type1 name1 dept1
1 type2 name2 dept2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.