You need to enable JavaScript to run this app. 如何基于值在另一DataFrame中的存在性更新DataFrame指定列的值
优惠活动
大模型
产品
解决方案
定价
更多

如何基于值在另一DataFrame中的存在性更新DataFrame指定列的值

实现方案

核心可以用pandas内置的isin()方法完成需求,代码简洁高效:

# 方式1:直接转布尔值为int,满足0/1赋值需求
df['col3'] = df['col1'].isin(df_2['col2']).astype(int)

如果需要设置其他非初始的自定义值,可以用np.where实现:

# 方式2:自定义匹配成功时的赋值,比如匹配成功设为99,失败保持0
df['col3'] = np.where(df['col1'].isin(df_2['col2']), 99, 0)

Series.isin()会逐行判断df['col1']的取值是否存在于df_2['col2']的取值集合中,返回布尔类型的序列,转换为整数后True对应1、False对应0,运行后得到的结果和你给出的示例完全一致。

  • 如果df_2['col2']数据量很大,可以先转成集合再传入,提升判断效率:
    col2_set = set(df_2['col2'])
    df['col3'] = df['col1'].isin(col2_set).astype(int)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 22:03:03