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

如何在Pandas DataFrame中基于多列规则生成新列four_of_five

Pandas实现多列条件判断生成新列

首先构造原始数据集:

import pandas as pd

df = pd.DataFrame({
    'person': ['mike', 'Anton'],
    'health': [40, 20],
    'life': [50, 30],
    'power': [45, 10],
    'nexy': [20, 50],
    'prox': [40, 40]
})

无需堆砌复杂的if/or语句,直接用Pandas的向量化运算就能高效完成需求:

实现步骤

  • 选中需要判断的5列,对每个元素判断是否≥40,得到布尔值组成的DataFrame
  • 按行求和(True会被计为1,False计为0),统计每行符合条件的列数
  • 根据求和结果映射为yes或no:计数≥4则返回yes,否则返回no

对应代码如下:

# 指定需要判断的目标列
target_cols = ['health', 'life', 'power', 'nexy', 'prox']
# 计算每行符合条件的列数量
qualified_count = df[target_cols].ge(40).sum(axis=1)
# 生成新列
df['four_of_five'] = qualified_count.ge(4).map({True: 'yes', False: 'no'})

执行后得到的结果:

person  health  life  power  nexy  prox four_of_five
0   mike      40    50     45    20    40          yes
1  Anton      20    30     10    50    40           no

代码说明

  • df[target_cols].ge(40):批量判断目标列的每个值是否≥40,返回布尔矩阵
  • .sum(axis=1):按行汇总布尔值,得到每行符合条件的列数
  • .ge(4).map(...):判断计数是否达标,再将布尔结果转换为指定的文本标识

这种方法完全依赖Pandas的向量化特性,代码简洁且执行效率高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:00:59