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

Pandas判断同一行某列字符串是否为另一列子串,现有代码全部返回Yes

问题原因

你编写的代码是对每个DEPTH列的值,全局扫描整个Description列判断是否存在匹配,搭配.any()后只要全列有任意一行匹配就返回Yes,这就是所有行结果都为Yes的原因,你的需求是同一行的两个字段比对,需要按行维度处理数据。

代码实现

新增Compare列输出Yes/No

以下两种写法都可以得到你预期的结果:

  1. 行方向apply(逻辑直观,适合小数据量)
df['Compare'] = df.apply(lambda row: 'Yes' if row['DEPTH'] in row['Description'] else 'No', axis=1)
  1. 列表推导式实现(性能更优,适合十万行以上的大表)
df['Compare'] = ['Yes' if depth in desc else 'No' for depth, desc in zip(df['DEPTH'], df['Description'])]

直接过滤不符合要求的行

如果不需要保留Compare列,可一步完成过滤操作,删掉DEPTH未出现在同一行Description的行:

df = df[[depth in desc for depth, desc in zip(df['DEPTH'], df['Description'])]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:15:00