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

如何以插补方式合并两个数据集,优先选用第一个数据集的值

按优先规则插补合并两个数据集的解决方案

嘿,我来帮你搞定这个数据集合并的问题!根据你给出的规则——优先选用第一个数据集的值,仅用第二个数据集插补第一个的缺失值,我们先把两个原始数据理清楚,再给出最终合并结果,还能给你一个Python实现的代码示例。


原始数据集说明

第一个数据集(优先选用)

这个数据集包含Customer_id、column1、column2、column3、column4,其中column4全为缺失值:

Customer_idcolumn1column2column3column4
1564564缺失
2451445缺失
3463245缺失

第二个数据集(仅用于插补)

这个数据集用于填补第一个的缺失,包含Customer_id、column3、column4:

Customer_idcolumn3column4
164缺失
24245
34573

合并规则回顾

若两个数据集对应值均非缺失,优先选用第一个数据集的值;第一个数据集缺失的字段,用第二个数据集的对应值填补。


最终合并结果

根据规则处理后,得到的数据集如下:

Customer_idcolumn1column2column3column4
1564564缺失
245144545
346324573

结果说明

  • Customer_id=1:column3两个数据集都为64,取第一个的;column4两个都缺失,所以还是缺失
  • Customer_id=2:column3第一个是45(非缺失),第二个是42,优先取第一个的;column4第一个缺失,用第二个的45填补
  • Customer_id=3:column3两个都是45,取第一个的;column4第一个缺失,用第二个的73填补

用Python Pandas实现的代码示例

如果你需要用代码自动化这个过程,Pandas的combine_first方法完美匹配你的需求——它会自动保留第一个DataFrame的非缺失值,仅用第二个的内容填补缺失:

import pandas as pd

# 构建第一个数据集(优先)
df_priority = pd.DataFrame({
    'Customer_id': [1, 2, 3],
    'column1': [56, 45, 46],
    'column2': [45, 14, 32],
    'column3': [64, 45, 45],
    'column4': [pd.NA, pd.NA, pd.NA]
})

# 构建第二个数据集(插补用)
df_fill = pd.DataFrame({
    'Customer_id': [1, 2, 3],
    'column3': [64, 42, 45],
    'column4': [pd.NA, 45, 73]
})

# 合并:以优先数据集为基础,用插补数据集填补缺失
merged_result = df_priority.set_index('Customer_id') \
                           .combine_first(df_fill.set_index('Customer_id')) \
                           .reset_index()

# 查看结果
print(merged_result)

运行这段代码后,你就能得到上面的最终合并数据集啦。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:37:02