如何对以相同字符串开头的行的A&B列进行求和?
解决方案
假设你的DataFrame已完成清洗,核心需求是基于path列的字符串特征,对A、B列进行分组求和。以下是两种直接可行的实现方式:
方式1:提取path中的固定分组标识
如果path有统一结构(比如包含/groupX/这类固定前缀),用str.extract提取分组关键字,再分组求和:
# 从path中提取分组标识,示例匹配/group1、/group2这类格式 df['group_tag'] = df['path'].str.extract(r'(/group\d+)', expand=False) # 按提取的标识分组,对A、B列求和 sum_result = df.groupby('group_tag')[['A', 'B']].sum().reset_index()
方式2:匹配指定字符串生成分组标签
如果需要匹配特定关键词(比如包含"projectA"或"projectB"的path),结合np.where生成分组标签后求和:
# 根据path包含的关键词生成分组标签 df['group_tag'] = np.where( df['path'].str.contains('projectA'), '项目A', np.where(df['path'].str.contains('projectB'), '项目B', '其他分组') ) # 按标签分组求和A、B列 sum_result = df.groupby('group_tag')[['A', 'B']].sum().reset_index()
关键注意点
- 先确认A、B列是数值类型,若为字符串需先转换:
df[['A', 'B']] = df[['A', 'B']].astype(float) - 多条件匹配可用
|连接正则,比如df['path'].str.contains('projectA|projectC')
内容的提问来源于stack exchange,提问作者Sid
相关产品推荐
相关产品推荐

