熊猫:转换数据框栏与栏标题为字典键和col值字典作为字典值
我有一个看起来像一个数据帧:熊猫:转换数据框栏与栏标题为字典键和col值字典作为字典值
NAME ID
155 ARBITRARY_A 697381
208 ARBITRARY_B 691820
265 ARBITRARY_C 691782
272 ARBITRARY_D 695593
我想把它转换成一个字典列表,看起来如:
[{name:ARBITRARY_A, id:697381}, {name:ARBITRARY_B, id:691820},
{name:ARBITRARY_C, id:691782}, {name:ARBITRARY_D, id:695593}]
什么是最快/最佳的方式来做这个操作?
正如评论指出,pandas.DataFrame.to_dict()
可以使用。而在你的情况,你需要orient
为record
:
代码:
df.to_dict('record')
测试代码:
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'))
结果:
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}]
很好的答案!我特别喜欢你使用** bold **加上我的一个:-) – piRSquared
所有的东西都比较好吃。 –
尝试:
df.to_dict()
如果这不会产生预期的结果尝试调换数据框:
df.T.to_dict()
您可以通过执行推导自己
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'}]
漂亮的颜色,但我们需要弄清楚如何做到这一点,而不是'png'。或者,也许从iPython复制并粘贴到SO标记应该是一件事情? –
你可能刚刚激励我想出更好的东西:-) – piRSquared
@piRSquared我为你另一个http://*.com/questions/43504945/pandas-select-rows-based-on-multiple-object -values-inside-a-column :) – Fizi
'df.to_dict('record')'? – johnchase