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

基于指定匹配值,用另一个DataFrame替换pandas DataFrame列值

问题描述

已知合并操作,但现有合并相关内容无法针对性解决以下需求:给定一组用于匹配行的值列表,将data_1中的列值替换为data_2中的对应列值。

示例数据与预期输出

replace = ["a", "c", "x"]

data_1 = pd.DataFrame(
    {
        "val_1": ["a", "b", "c", "x", "y", "z"],
        "val_2": ["one", "two", "three", "four", "five", "six"],
    }
)

data_2 = pd.DataFrame(
    {
        "val_1": [
            "a",
            "b",
            "c",
            "p",
            "q",
            "x",
            "y",
            "z",
        ],
        "val_2": ["ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT"],
    }
)

# 预期输出:目标结果
output = pd.DataFrame(
    {
        "val_1": ["a", "b", "c", "x", "y", "z"],
        "val_2": ["ONE", "two", "THREE", "SIX", "five", "six"],
    }
)

可行实现方法

以下是一种简洁的实现方式:

df_m = pd.merge(data_1, data_2, on=['val_1'])
data_1['val_2'] = np.where(df_m['val_1'].isin(replace), 
    df_m['val_2_y'], 
    df_m['val_2_x'],
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 15:24:06