如何将dict转换为数据框,其值作为标题和行?

时间:2020-10-01 16:28:56

标签: python pandas dataframe

所以我最近遇到了API调用的返回,其中返回格式是字典列表,但是格式导致pd.DataFrame()出错。我得到的返回格式为:

{'name': 'a1', 'value': 'b1'}
{'name': 'a2', 'value': 'b2'}
{'name': 'a3', 'value': 'b3'}
{'name': 'a4', 'value': 'b4'}
{'name': 'a5', 'value': 'b5'}

当我在其上运行pd.DataFrames时,它变成:

name    value
a1      b1
a2      b2
a3      b3
a4      b4
a5      b5

我尝试使用df.pivot(column ='name',values ='value'),但这导致5 x 5 df而不是仅1行。 理想情况下,我想在列名= dictionary [name]和行value = dictionary [value]的地方获取它:

index a1  a2  a3  a4  a5
0     b1  b2  b3  b4  b5

非常感谢您的帮助和建议,谢谢!

1 个答案:

答案 0 :(得分:2)

将索引设置为“名称”列,然后转置数据框(以切换行和列)

df = pd.DataFrame(api_result)
df = df.set_index("name").T

您也可以在创建数据框时直接使用from_records方法执行此操作:

df = pd.DataFrame.from_records(api_result, index="name").T