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

基于两个DataFrame多列比较更新replaceFlag列的实现需求

DataFrame匹配标记实现方案

现有数据定义

import pandas as pd

df1 = pd.DataFrame({"A": [1, 1, 2, 2, 3, 3, 4], "B": [1, 2, 1, 3, 1, 2, 1]})
df2 = pd.DataFrame({"C": [1, 1, 2, 2, 3], "D": [1, 2, 1, 4, 3]})
df1['replaceFlag'] = pd.NA

需求说明

仅当df1.A与df2.C匹配,但df1.B不在该匹配C对应的所有df2.D值中时,将df1.replaceFlag设为1,其余保持pd.NA。

实现代码

# 构建C对应的有效D值集合
valid_d_groups = df2.groupby('C')['D'].agg(set)

# 按条件更新replaceFlag列
df1['replaceFlag'] = df1.apply(
    lambda x: 1 if x['A'] in valid_d_groups.index and x['B'] not in valid_d_groups[x['A']] else pd.NA,
    axis=1
)

输出结果

ABreplaceFlag
11
12
21
231
311
321
41

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:42:35