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

Python如何对DataFrame指定范围列按条件求和并新增列

实现代码与说明

你可以直接用pandas的按位置选列+逐行求和实现,两种常用方案如下:

import pandas as pd

# 方案1:取最后10列计算,完全匹配你提到的「最后10列」需求,适配性更强,不受总列数变化影响
df['new_col'] = df.iloc[:, -10:].eq(1).sum(axis=1)

# 方案2:如果要严格按你说的「第20至30列」(按从1开始计数的列序号)计算,对应pandas索引区间为19~29
df['new_col'] = df.iloc[:, 19:30].eq(1).sum(axis=1)

逻辑解释

  • iloc[:, 列区间] 是pandas按位置选取列的标准方法,不受自定义列名的影响
  • eq(1) 会对选中区域的每个元素判断是否等于1,返回布尔矩阵,True等价于数值1,False等价于数值0
  • sum(axis=1) 按行对布尔矩阵求和,最终得到的就是每行指定范围内所有等于1的数值之和

注意事项

  • pandas默认列索引从0开始计数,如果你实际的列序号规则不同,调整iloc的列区间参数即可
  • 默认开启skipna=True参数,计算时会自动跳过空值,无需额外配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:48:02