簡體   English   中英

如何使用與 pandas dataframe 相同的鍵轉換 dict 列表的 dict 列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM