如何正确使用Pandas的to_dict()方法将DataFrame转换为指定格式的字典
解决Pandas DataFrame转指定格式字典的问题
嘿,刚好知道怎么用Pandas原生方法实现你想要的结果!你已经把sectionId设为DataFrame的索引了,这步很关键,接下来只需要针对xml列做操作就行:
正确的实现方式
直接提取xml列(它会变成一个Series对象),然后调用to_dict()方法,就能得到你想要的键值对格式:
mydict = mydf['xml'].to_dict()
执行后得到的结果就是:
{'f0910b98': '<p/p>', 'f0345b98': '<a/a>'}
为什么你之前的方法不对?
mydf.to_dict():默认会生成以列名为外层键的嵌套字典,结果是{'xml': {'f0910b98': '<p/p>', 'f0345b98': '<a/a>'}},不符合你的需求。mydf.to_dict('records'):会把每一行转成一个字典,最终生成列表格式:[{'xml': '<p/p>'}, {'xml': '<a/a>'}],也不是你要的结构。
另一种可选的原生方法
如果你想从整个DataFrame出发处理,也可以用to_dict('index')参数先得到按索引分组的嵌套字典,再通过字典推导式提取值:
mydict = {idx: row['xml'] for idx, row in mydf.to_dict('index').items()}
不过这种方式不如第一种直接简洁,更推荐第一种方法。
内容的提问来源于stack exchange,提问作者JFerro
相关产品推荐
相关产品推荐

