You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何关联两个数据集,为双边客户补充对应属性字段完成数据集补全?

数据集双边关联匹配实现方案

你需要对客户属性表做两次左连接操作,分别匹配Customer1和Customer2两个字段的属性即可完成需求,以下是两种常用实现方式:

方法1:Python Pandas 实现

  • 步骤说明:
    1. 分别读取关系表、客户属性表两个数据集
    2. 第一次关联:用Customer1字段关联客户属性表,匹配到的属性重命名为Net_Customer1、Recovered_1
    3. 第二次关联:用Customer2字段关联客户属性表,匹配到的属性重命名为Net_Customer2、Recovered_2
  • 示例代码:
import pandas as pd
# 读取数据集
df_relation = pd.read_csv('你的关系表存储路径')
df_cust = pd.read_csv('你的客户属性表存储路径')
# 第一次关联匹配Customer1的属性
df_result = pd.merge(
    df_relation,
    df_cust.rename(columns={'All_Customers':'Customer1', 'Net':'Net_Customer1', 'Recovered':'Recovered_1'}),
    on='Customer1',
    how='left'
)
# 第二次关联匹配Customer2的属性
df_result = pd.merge(
    df_result,
    df_cust.rename(columns={'All_Customers':'Customer2', 'Net':'Net_Customer2', 'Recovered':'Recovered_2'}),
    on='Customer2',
    how='left'
)
# 输出最终结果
print(df_result)

方法2:SQL 实现

直接对客户属性表做两次左连接即可,假设关系表名为relation,客户属性表名为cust_attr:

SELECT
  r.Customer1,
  r.Customer2,
  r.Relationship,
  r.Age_of_Relationship,
  c1.Net AS Net_Customer1,
  c2.Net AS Net_Customer2,
  c1.Recovered AS Recovered_1,
  c2.Recovered AS Recovered_2
FROM relation r
LEFT JOIN cust_attr c1 ON r.Customer1 = c1.All_Customers
LEFT JOIN cust_attr c2 ON r.Customer2 = c2.All_Customers

内容的提问来源于stack exchange,提问作者V_sqrt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:18:03