如何优化将字典key转为DataFrame元素的现有可运行代码
高效实现方案
你当前的循环拼接方案性能较差,尤其当字典规模较大时,反复调用pd.concat会产生大量不必要的内存开销。可以直接使用pandas内置的DataFrame.from_dict方法实现相同需求,全程无手动循环,代码更简洁性能也更高:
import pandas as pd thisdict = { "A": {'v1':'3','v2':5}, "B": {'v1':'77','v2':99}, "ZZ": {'v1':'311','v2':152} } # 输出和你原有代码完全一致 output = pd.DataFrame.from_dict(thisdict, orient='index').rename_axis(index='id') # 如果需要把id从索引转为普通列,加一行reset_index即可 # output = output.reset_index()
方案优势
- 性能提升明显:底层是pandas基于C实现的内置逻辑,比手动循环拼接的效率高1~2个数量级,数据量越大优势越突出
- 鲁棒性更强:如果不同key对应的内层字典存在键差异,会自动填充NaN值,不需要额外做兼容处理
- 代码简洁易读:省去了手动构造子DataFrame、透视、拼接的冗余步骤,可维护性更高
内容的提问来源于stack exchange,提问作者Harry
相关产品推荐
相关产品推荐

