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

Pandas按列名筛选列求和合并为新列的简洁实现方法

解答

完全可以用.groupby实现,单行就能搞定,比你现在的写法简洁很多:

import numpy as np
import pandas as pd

# 构造示例数据
a = pd.DataFrame(np.random.randn(5, 5), columns=["Col_1","X_1","X_2","X_3","Col_3"])

# 核心实现
res = a.groupby(lambda c: "Col_2" if c.startswith("X") else c, axis=1).sum()

逻辑说明

  • 传入axis=1指定按列维度分组
  • 分组规则用匿名函数判断列名:所有X开头的列统一分到Col_2组,其余列各自用原列名作为独立分组
  • 分组后直接调用.sum()即可:单独成组的非X列求和后值和原列完全一致,X列分组求和就是你要的三列累加结果,最终列顺序自动为Col_1、Col_2、Col_3,不需要额外做删列、拼接、重命名操作。

这个写法扩展性也更好,后续如果要合并其他前缀/规则的列,只需要修改匿名函数里的判断条件就行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:15:11