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

如何在两个DataFrame中匹配名称并按状态设置DF2的flag列值

解决方案

可以分两步精准实现你的需求,先筛选出符合条件的名称集合,再批量更新DF2的flag列:

  1. 从DF1中提取所有状态为completed的名称
# 筛选DF1里状态为completed的name,得到目标名称集合
completed_names = DF1[DF1['status'] == 'completed']['name']
  1. 匹配DF2中符合条件的行,设置flag为CLOSED
# 定位到DF2中name在目标集合里的行,修改flag列
DF2.loc[DF2['name'].isin(completed_names), 'flag'] = 'CLOSED'

补充说明

你之前的代码DF2['name'].isin(DF1['name']).astype(int)仅能判断名称是否存在于DF1,但没结合status == completed这个核心条件。上面的写法直接先锁定DF1里已完成的名称,再匹配DF2完成更新,既简洁又高效,且不会改动DF2中不符合条件的行的flag原值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:02:07