如何在Pandas中合并同城市行并累加driver_count字段值?
解决方法:分组聚合合并重复城市记录
嘿,这个场景太常见了,咱们用pandas的分组聚合功能就能完美解决!
你的需求核心是按city分组,对重复行的driver_count求和,同时保留type字段(因为两行的type一致),具体实现代码如下:
# 执行分组聚合操作 merged_city_data = cityData_df.groupby('city').agg( driver_count=('driver_count', 'sum'), # 对driver_count求和 type=('type', 'first') # 取type的第一个值(两行值相同,取last也可以) ).reset_index() # 将city从索引重新转为普通列
代码细节解释:
groupby('city'):把数据按city字段分组,相同城市的行会被自动归为一组agg():自定义每个字段的聚合规则:- 对
driver_count用sum函数求和,刚好把15和3累加得到18 - 对
type用first取第一个值(因为你的两行type都是Suburban,用last结果也完全一致)
- 对
reset_index():默认分组后city会变成数据框的索引,用这个方法把它变回普通列,最终结构和原数据框保持一致
执行完这段代码后,merged_city_data里的Port James就只有一条记录,driver_count为18,type也保留了Suburban,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Mike Hager
相关产品推荐
相关产品推荐

