合并两个数据集获取目标格式输出的实现方法咨询
实现方案
核心逻辑
你要的结果核心是需要先把原有的单向客户对扩展为双向,再做属性匹配,两步即可完成:
- 复制df1,交换每行的Customer1和Customer2,得到反向客户对数据集
- 把原df1和反向的数据集合并,再和df2左连接匹配Customer1对应的Net、Recovered字段即可
Pandas 实现代码
import pandas as pd # 生成反向客户对数据 df1_reverse = df1.copy() df1_reverse[["Customer1", "Customer2"]] = df1_reverse[["Customer2", "Customer1"]] # 合并原数据和反向数据,得到全量双向客户对 df_all_pairs = pd.concat([df1, df1_reverse], ignore_index=True) # 关联df2获取Customer1的属性 df_output = pd.merge( df_all_pairs, df2, left_on="Customer1", right_on="All_Customers", how="left" ).drop(columns="All_Customers") # 删除匹配产生的冗余字段
运行后df_output就是你期望的结果,如果需要和你给出的示例顺序完全一致,可额外添加排序逻辑:
df_output = df_output.sort_values(by=["Customer1", "Customer2"], ignore_index=True)
内容的提问来源于stack exchange,提问作者V_sqrt
相关产品推荐
相关产品推荐

