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

如何根据DataFrame指定列的数值阈值新增分类列并按条件赋值

实现方案

以下两种pandas标准写法都可以实现需求,可根据自己的使用习惯选择:

  • 方法1:numpy.where 实现(推荐,处理大规模数据时性能更好)
    导入numpy后一行代码即可完成整列的条件赋值:
    import numpy as np
    df['B'] = np.where(df['A'] >= 400, 'nonNormal', 'Normal')
    
  • 方法2:pandas原生loc索引赋值,无需额外导入numpy
    先给整列设置默认值,再针对符合条件的行做值替换,逻辑直观易读:
    # 先给B列所有行赋默认值
    df['B'] = 'Normal'
    # 筛选A列值大于等于400的行,修改对应B列的值
    df.loc[df['A'] >= 400, 'B'] = 'nonNormal'
    

执行任意一段代码后,运行head(df)就能得到你预期的输出结果:

A     B
1  200  Normal
2  230  Normal
3  400  nonNormal
4  638  nonNormal
5  502  nonNormal
6  387  Normal

注意:判断条件不要写错边界,题目要求A列值等于400时B列取nonNormal,不要把>=误写为>。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:42:10