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

Python中结合np.where处理文本列的问题:基于文本条件为DataFrame新增列的代码适配方法

解决np.where处理文本列条件失效的问题

嘿,我明白你遇到的问题了——你的代码里有两个关键的语法/逻辑错误,导致针对文本列的条件判断没法正常运行,咱们来一步步修正:

问题1:把赋值运算符=当成了比较运算符==

在Python的条件判断里,判断两个值是否相等必须用==,而=是用来给变量赋值的。你原来的代码里Data.Column1 = 'Text1'这部分,其实是在尝试给Column1列赋值,而不是判断它是否等于'Text1',这肯定会出错。

问题2:逻辑运算符&的优先级问题

&(按位与)的优先级比==更高,所以你原来的Data.Column2 = 'Text 2' & Data.Column3='Text2'会被Python错误地解析,导致逻辑判断混乱。正确的做法是给每个单独的比较条件加上括号,确保先执行比较,再执行逻辑与操作。

修正后的完整代码

import numpy as np

Data['new_column'] = np.where(
    Data.Column1 == 'Text1',  # 第一个条件:Column1等于'Text1'
    1.20,
    np.where(
        (Data.Column2 == 'Text 2') & (Data.Column3 == 'Text2'),  # 两个条件都满足,注意括号
        1.09,
        1  # 默认值
    )
)

额外小提示

如果你的文本列存在大小写不一致、前后空格的情况(比如'Text2'和'text2'、' Text2 '),可以用字符串方法先做标准化处理,比如:

# 去除前后空格并统一为小写后再比较
(Data.Column2.str.strip().str.lower() == 'text2') & (Data.Column3.str.strip().str.lower() == 'text2')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 22:24:10