Python3中用Pandas合并DataFrame同名同年度行并求和的方法
Python3中用Pandas按条件合并DataFrame行的方案
完全可以实现你的需求,通过筛选+分组聚合两步就能完成,具体操作如下:
步骤说明
- 第一步:从原DataFrame中筛选出所有
Names为"Steve"的记录 - 第二步:按
Year和Names分组,对Counts列进行求和合并 - 第三步:重置索引并调整列顺序,匹配示例输出格式
完整代码示例
假设你的DataFrame变量名为df,执行以下代码:
import pandas as pd # 筛选出名称为Steve的记录 steve_records = df[df['Names'] == 'Steve'] # 按年份和名称分组,对Counts求和合并 merged_result = steve_records.groupby(['Year', 'Names'], as_index=False)['Counts'].sum() # 调整列顺序以匹配示例输出 merged_result = merged_result[['Names', 'Counts', 'Year']]
代码细节解释
df[df['Names'] == 'Steve']:通过布尔索引精准筛选目标记录groupby(['Year', 'Names'], as_index=False):指定分组维度,as_index=False避免将分组列转为索引['Counts'].sum():对同组内的Counts值求和,实现行合并- 最后调整列顺序是为了和你给出的示例输出结构完全一致
示例输出
执行后得到的结果格式如下:
Names Counts Year 0 Steve 237 2000 1 Steve 400 2001 2 Steve 35 2002 ... ... ... ... 15 Steve 26 2015
内容的提问来源于stack exchange,提问作者Rashid Abramov
相关产品推荐
相关产品推荐

