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

Python 将字典字典中的单个条目转换为以键为列的数据帧,python,pandas,dataframe,dictionary,Python,Pandas,Dataframe,Dictionary,提供字典,例如: records = {0:{'name':'John', 'salary':'5000'}, 1:{'name':'Bob', 'salary':'3500'}} 如果我想获取并存储(csv)数据帧,例如: name salary John 5000 通过使用记录[0]作为访问内部词典的方式,我将如何做到这一点 我试过: df = pd.DataFrame(records[0], index=[0]) df= pd.DataFrame(list(records[0]

提供字典,例如:

records = {0:{'name':'John', 'salary':'5000'}, 1:{'name':'Bob', 'salary':'3500'}}
如果我想获取并存储(csv)数据帧,例如:

name  salary
John   5000
通过使用记录[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')
但是它们都没有按预期工作(第二个给了我一个错误,第一个和最后一个只有一列)

orient='index'
一起使用:

df = pd.DataFrame.from_dict(records, orient='index')
print (df)
   name salary
0  John   5000
1   Bob   3500
编辑-对于
记录的第一个值
传递到嵌套列表:

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

您可以使用和的组合:

输出

+----+-------+--------+
|    | name  | salary |
+----+-------+--------+
| 0  | John  |   5000 |
| 1  | Bob   |   3500 |
+----+-------+--------+
编辑 只为了获得第一张唱片

df[df.index==0]

我只想将第一个条目转换为数据帧。我不想两者都转换,我已经知道怎么做了。我不想把它全部转换成一个数据帧,因为我正在处理一个有数千个条目的字典,我将在迭代字典的过程中每一步都做这个操作。字典来自一个大于500mb的csv文件,因此在每次迭代时将整个文件转换为数据帧和索引将花费太多时间。@MohamadMoustafa您是将整个文件转换为csv表还是仅转换为子集?您使用的是一个字典,这样您就可以在将字典转换为数据帧之前,只遍历dict并保留您想要的内容。(或读取csv行并将所需内容放入数据框中)。使用此选项仅打开第一个条目-
pd.dataframe。从_dict([records[0]],orient='columns')
I使用_dict将使用csv文件创建的整个数据框转换为dict。然后,我循环每个“行”(dict内的dict),进行更改,将“行”转换为数据框,并将其附加到空的csv文件中。字典并不总是以特定的方式排序。在选择所需数据之前,您是否以某种方式进行订购?原始词典是如何创建的?您总是只需要第一个值吗?使用pandas从csv文件创建数据帧>转到dict>开始循环::用于输入dict:循环每个“行”>添加两个字段>将行附加到初始空csv文件>结束循环为什么需要pandas写入csv文件?您只需将字典写入csv:nice输出表示。
df[df.index==0]
+----+-------+--------+
|    | name  | salary |
+----+-------+--------+
| 0  | John  |   5000 |
+----+-------+--------+