如何按KeyCode汇总pandas DataFrame的Tons并展示对应Origin
解决方案
你当前的groupby代码只是返回了原数据,没有做实际的聚合操作。要实现按KeyCode汇总Tons总和并展示所有对应Origin,可以用以下两种方法:
方法1:保留所有Origin(含重复)
直接用agg方法同时聚合总和与Origin列表:
# 分组聚合:计算Tons总和,收集所有Origin result = data.groupby("KeyCode").agg( Total_Tons=("Tons", "sum"), All_Origins=("Origin", list) ).reset_index() # 查看结果 print(result.head())
方法2:保留去重后的Origin
如果不需要重复的Origin,用lambda函数去重:
result = data.groupby("KeyCode").agg( Total_Tons=("Tons", "sum"), Unique_Origins=("Origin", lambda x: list(set(x))) ).reset_index() print(result.head())
额外提示
如果你的数据里还有其他无关列,可以先筛选出需要的列再分组,提升效率:
filtered_data = data[["KeyCode", "Tons", "Origin"]] result = filtered_data.groupby("KeyCode").agg( Total_Tons=("Tons", "sum"), All_Origins=("Origin", list) ).reset_index()
内容的提问来源于stack exchange,提问作者Ewallk
相关产品推荐
相关产品推荐

