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

如何对Pandas中以相同前缀开头的列按行求和

问题描述

我创建了如下Pandas DataFrame:

ds = {'col1' : [1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,4,4,4,4],
      'feature1' : [1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,4,4,4,4],
      'col2' : [12,3,4,5,4,3,2,3,4,6,7,8,3,3,65,4,3,2,32,1,2,3,4,5,32],
      
      }

df = pd.DataFrame(data=ds)

该DataFrame输出如下:

print(df)
    col1  feature1  col2
0      1         1    12
1      1         1     3
2      1         1     4
3      1         1     5
4      1         1     4
5      1         1     3
6      1         1     2
7      2         2     3
8      2         2     4
9      2         2     6
10     2         2     7
11     3         3     8
12     3         3     3
13     3         3     3
14     3         3    65
15     3         3     4
16     4         4     3
17     4         4     2
18     4         4    32
19     4         4     1
20     4         4     2
21     4         4     3
22     4         4     4
23     4         4     5
24     4         4    32

需要新增一个名为sumOfCols的列,该列的值为所有名称以col开头的列的行求和结果(示例中feature1列不参与计算)。

解决方案

方法一:分步实现

  1. 筛选出所有列名以col开头的列
  2. 对筛选后的列按行求和,赋值给新列sumOfCols
# 筛选目标列
target_cols = df.columns[df.columns.str.startswith('col')]
# 新增求和列
df['sumOfCols'] = df[target_cols].sum(axis=1)

方法二:一行代码简化

直接在求和操作中嵌入列筛选逻辑:

df['sumOfCols'] = df.loc[:, df.columns.str.startswith('col')].sum(axis=1)

执行上述代码后,DataFrame会新增sumOfCols列,每行值为对应行所有col开头列的数值之和,比如第一行结果为1+12=13,第二行结果为1+3=4,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:00:05