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

如何在pandas dataframe中基于A列包含B列的条件创建新列C

错误原因

你之前使用的isin()方法的作用是判断A列的每个完整值是否存在于B列的所有值组成的集合中,并不是逐行判断当前行的A列字符串是否包含当前行的B列内容,因此无法得到预期结果。

正确实现方法

方法1:列表推导式(效率更高,推荐大多数场景使用)

import pandas as pd
import numpy as np

df=pd.DataFrame({'A':['Mary, Tom, Steve','Mary, Kim','Petr, Steve','Petr, Mary'],
                 'B':['Kim','Kim','Kim','Mary']})

# 逐行判断B列内容是否在A列字符串中
df['C'] = np.where([b in a for a, b in zip(df['A'], df['B'])], 'OK', 'Not OK')

最终输出结果:

ABC
Mary, Tom, SteveKimNot OK
Mary, KimKimOK
Petr, SteveKimNot OK
Petr, MaryMaryOK

方法2:apply逐行判断(写法更直观,适合小数据量场景)

df['C'] = np.where(df.apply(lambda x: x['B'] in x['A'], axis=1), 'OK', 'Not OK')

两种方法得到的结果完全一致,你可以根据实际数据量选择合适的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:57:00