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

如何在Python的np.where中添加多条件判断

解决方案

方法1:用np.select一次性处理多条件优先级

多次用np.where赋值会覆盖整列,所以可以用np.select把所有条件按优先级整合,一次生成结果。这里要注意Column C的X/Y条件优先级高于Column D的条件(因为需要覆盖原有Up的结果):

import numpy as np
import pandas as pd

# 定义条件列表(按优先级从高到低)
conditions = [
    df['Column C'] == 'X',
    df['Column C'] == 'Y',
    df['Column D'] <= 99
]
# 对应条件的赋值内容
values = [
    'Down',
    'Left',
    'Up'
]
# 生成Comment列,不符合所有条件时赋值为空
df['Comment'] = np.select(conditions, values, default='')

方法2:用df.loc精准修改指定行

如果想保留原有逻辑,再针对性修改符合X/Y条件的行,用loc定位目标行即可,只会更新指定行,不会覆盖其他内容:

# 先执行原有逻辑生成基础Comment值
df['Comment'] = np.where(df['Column D'] <= 99, 'Up', '')

# 修改Column C为X的行
df.loc[df['Column C'] == 'X', 'Comment'] = 'Down'

# 修改Column C为Y的行
df.loc[df['Column C'] == 'Y', 'Comment'] = 'Left'

两种方法最终都会得到你想要的目标DataFrame:

Column AColumn BColumn CColumn DComment
A20010Up
B200X20Down
C200100
D200X60Down
E200Y30Left
F20010Up

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:18:26