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

Pandas按列后缀分组求和:汇总c1列x/y对应c2值

Pandas按结尾字符分组求和实现

原始数据

先定义目标DataFrame:

import pandas as pd

df = pd.DataFrame({'c1':['Ax','Bx','Ay','By'], 'c2':[1,2,3,4]})

输出结果:

c1  c2
0  Ax  1
1  Bx  2
2  Ay  3
3  By  4

解决方案

提供两种实用实现方式:

方法一:按结尾字符分组(通用型)

提取c1列最后一个字符作为分组键,求和后调整格式:

# 按c1最后一个字符分组,对c2求和
grouped_sum = df.groupby(df['c1'].str[-1])['c2'].sum()
# 重命名索引为Cx/Cy,转换为目标格式的DataFrame
result = grouped_sum.rename(lambda idx: f'C{idx}').reset_index(name='c2').rename(columns={'index': 'c1'})
print(result)

方法二:直接筛选求和(针对性)

如果仅需处理x和y两种结尾,可直接筛选对应行后求和:

# 分别计算x结尾和y结尾的c2总和
cx_total = df[df['c1'].str.endswith('x')]['c2'].sum()
cy_total = df[df['c1'].str.endswith('y')]['c2'].sum()
# 构建结果DataFrame
result = pd.DataFrame({'c1': ['Cx', 'Cy'], 'c2': [cx_total, cy_total]})
print(result)

两种方法最终都会输出期望结果:

c1  c2
0  Cx  3
1  Cy  7

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:55:18