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 |
+----+-------+--------+