将字典词典中的单个条目转换为以键为列的数据框

时间:2019-06-21 13:07:55

标签: python pandas dataframe dictionary

给出一个字典,例如:

records = {0:{'name':'John', 'salary':'5000'}, 1:{'name':'Bob', 'salary':'3500'}}

如果我想获取并存储(在csv中)数据帧,例如:

name  salary
John   5000

通过使用records [0]作为访问内部字典的方法,我该怎么做?

我尝试过:

df = pd.DataFrame(records[0], index=[0])

df= pd.DataFrame(list(records[0].values()), columns=list(records[0].keys()))

df= pd.DataFrame.from_dict(records[key], orient='columns')

但是它们都不如预期那样工作(第二个给我一个错误,第一和最后一个只有一列)

2 个答案:

答案 0 :(得分:4)

DataFrame.from_dictorient='index'一起使用:

df = pd.DataFrame.from_dict(records, orient='index')
print (df)
   name salary
0  John   5000
1   Bob   3500

编辑-对于record的第一个值,传递到嵌套列表:

df = pd.DataFrame([records[0]])
print (df)
   name salary
0  John   5000

答案 1 :(得分:2)

您可以结合使用https://github.com/adjust/cordova_sdk/issues/40DataFrame.from_dict()

records = {0:{'name':'John', 'salary':'5000'}, 1:{'name':'Bob', 'salary':'3500'}}
pd.DataFrame.from_dict(records).T

输出

+----+-------+--------+
|    | name  | salary |
+----+-------+--------+
| 0  | John  |   5000 |
| 1  | Bob   |   3500 |
+----+-------+--------+

编辑 只获取第一条记录

df[df.index==0]
+----+-------+--------+
|    | name  | salary |
+----+-------+--------+
| 0  | John  |   5000 |
+----+-------+--------+