Fiz*_*izi 3 python dictionary pandas
我有一个如下所示的数据框:
NAME ID
155 ARBITRARY_A 697381
208 ARBITRARY_B 691820
265 ARBITRARY_C 691782
272 ARBITRARY_D 695593
Run Code Online (Sandbox Code Playgroud)
我想把它转换成一个字典列表,看起来像:
[{name:ARBITRARY_A, id:697381}, {name:ARBITRARY_B, id:691820},
{name:ARBITRARY_C, id:691782}, {name:ARBITRARY_D, id:695593}]
Run Code Online (Sandbox Code Playgroud)
执行此操作的最快/最佳方法是什么?
正如评论中指出的,pandas.DataFrame.to_dict()可以使用。在你的情况下,你orient需要record:
代码:
df.to_dict('record')
Run Code Online (Sandbox Code Playgroud)
测试代码:
df = pd.read_fwf(StringIO(u"""
NAME ID
155 ARBITRARY_A 697381
208 ARBITRARY_B 691820
265 ARBITRARY_C 691782
272 ARBITRARY_D 695593"""),
header=1, index_col=0)
print(df)
print(df.to_dict('record'))
Run Code Online (Sandbox Code Playgroud)
结果:
NAME ID
155 ARBITRARY_A 697381
208 ARBITRARY_B 691820
265 ARBITRARY_C 691782
272 ARBITRARY_D 695593
[{u'NAME': u'ARBITRARY_A', u'ID': 697381L}, {u'NAME': u'ARBITRARY_B', u'ID': 691820L}, {u'NAME': u'ARBITRARY_C', u'ID': 691782L}, {u'NAME': u'ARBITRARY_D', u'ID': 695593L}]
Run Code Online (Sandbox Code Playgroud)
您可以通过自己进行理解来提高性能
v = df.values.tolist()
c = df.columns.values.tolist()
[dict(zip(c, x)) for x in v]
[{'ID': 697381L, 'NAME': 'ARBITRARY_A'},
{'ID': 691820L, 'NAME': 'ARBITRARY_B'},
{'ID': 691782L, 'NAME': 'ARBITRARY_C'},
{'ID': 695593L, 'NAME': 'ARBITRARY_D'}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2312 次 |
| 最近记录: |