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

如何根据pandas DataFrame某列是否含指定词给另一列对应位置赋值

你写的代码有两处核心错误:

  • np.where() 方法需要传入3个参数:判断条件、条件为真时的返回值、条件为假时的返回值,你只传了一个错误的条件,缺少返回值参数
  • df['Description'].str.contains('good') 本身返回的就是布尔值(True/False),你把它和字符串good_present做相等判断逻辑完全错误,永远会返回False

正确实现方式,两种可选:

方法1:使用numpy.where实现

import numpy as np
df['Value'] = np.where(df['Description'].str.contains('good'), 'good_present', np.nan)

如果需要严格匹配独立单词good(避免匹配到"goodness"、"goodbye"这类包含good的其他单词),可以加正则单词边界:

df['Value'] = np.where(df['Description'].str.contains(r'\bgood\b'), 'good_present', np.nan)

方法2:使用pandas.loc直接赋值

这种写法更简洁,不需要额外导入numpy,且会自动保留不满足条件行的原有NaN值:

df.loc[df['Description'].str.contains('good'), 'Value'] = 'good_present'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 17:54:10