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

如何对DataFrame中number开头列的1-5范围值按行求和?

Pandas计算指定列中符合范围的数值之和

要实现每行中number开头列里1-5数值的求和,你可以先筛选目标列,再把不符合范围的值置为0,最后按行求和,具体有两种简洁的写法:

方法一:利用布尔掩码相乘求和

# 筛选number开头的列,标记1-5范围内的数值,相乘后按行求和
df['sum_values'] = df.filter(like='number').between(1, 5).mul(df.filter(like='number')).sum(axis=1)

原理:between(1,5)会生成一个布尔矩阵,符合条件的位置为True(对应1),不符合为False(对应0),和原数值相乘后,不符合的数值会被置为0,再求和就得到了目标结果。

方法二:用where替换不符合的值后求和

# 把number列中不在1-5范围的值替换为0,再按行求和
df['sum_values'] = df.filter(like='number').where(lambda x: x.between(1, 5), 0).sum(axis=1)

原理:where方法会保留符合条件的数值,把不符合的替换成指定的0,之后直接求和即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 12:10:57