如何批量将按team拆分的多个pandas dataframe与另一表执行merge合并
解决方案
推荐方案(性能更优)
没有特殊提前拆分需求的话,优先先做全量合并再按team拆分,仅需要执行1次合并操作,数据量越大性能优势越明显:
# 全量df先合并df2的字段 merged_full = df.merge(df2, on=['employee', 'workplace']) # 再按team拆分得到所有合并后的分组dataframe merged_grouper = [g[1] for g in merged_full.groupby('team')]
适配已有分组的方案
如果你已经完成了提前拆分,需要直接对已有grouper做批量合并,用列表推导式遍历即可:
merged_grouper = [group.merge(df2, on=['employee', 'workplace']) for group in grouper]
如果需要按team名快速索引对应的合并结果,可以存为字典格式:
merged_team_map = {team: group.merge(df2, on=['employee', 'workplace']) for team, group in df.groupby('team')} # 后续取team为a的合并结果直接调用 merged_team_map['a'] 即可
内容的提问来源于stack exchange,提问作者futuredataengineer
相关产品推荐
相关产品推荐

