Pandas 将两个DataFrame反规范化合并为单表的高效实现方案
Pandas 高效合并两个DataFrame方案
针对你给出的场景和数据量,以下两种方案均能实现需求,优先推荐第一种性能更高:
方案1:字典映射(性能最优)
利用小表df2构建映射字典,直接给大表df1做列映射,避免连接操作的额外开销,50万条数据可秒级完成:
# 将df2转为{who: where}的映射字典 where_dict = df2.set_index('who')['where'].to_dict() # 直接为df1新增where列 df1['where'] = df1['who'].map(where_dict)
方案2:左连接merge(适配后续扩展需求)
如果后续需要更复杂的连接逻辑,可以用pandas标准merge操作,针对你的数据量性能也完全够用:
df1 = df1.merge(df2, on='who', how='left')
两种方案运行后,都可以得到你预期的输出结果。
内容的提问来源于stack exchange,提问作者Kylo
相关产品推荐
相关产品推荐

