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

Python如何基于DataFrame多列条件高效生成新列(不使用循环)

实现方案

pandas原生向量化操作是最高效的实现方式,完全无需Python层面的循环,底层基于C实现,处理百万级以上行数据也能保持极高性能。

最简写法(适用于A-E列仅包含0/1的场景)

直接按行判断是否存在非0值,将布尔结果转为整数即可:

# 手动指定列名
df['col'] = df[['A', 'B', 'C', 'D', 'E']].any(axis=1).astype(int)

# 若A-E是连续列,可直接用切片选择,无需逐个写列名
df['col'] = df.loc[:, 'A':'E'].any(axis=1).astype(int)

严谨写法(兼容A-E列存在其他值的场景)

如果A-E列可能存在0/1以外的数值,需要精准匹配1的判断规则,可先做等值判断再按行聚合:

df['col'] = df.loc[:, 'A':'E'].eq(1).any(axis=1).astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:36:04