如何在DataFrame中添加聚合值列?合并操作遇阻求解决方案
解决方案
Python(Pandas)实现
你用merge得到叠加结果,大概率是没指定匹配键和连接方式。直接用左连接(how='left'),以age_group为匹配键,就能把聚合表的group total对应到主表的每一行:
import pandas as pd # 替换成你的实际DataFrame名称 result_df = pd.merge(main_df, agg_df, on='age_group', how='left')
输出的result_df就包含Residential Status、age_group、frequency、group total四个字段,完全符合需求。
R(dplyr)实现
summarise是用来聚合数据的,没法做表关联,你需要用left_join函数,同样以age_group作为匹配键:
library(dplyr) # 替换成你的实际DataFrame名称 result_df <- main_df %>% left_join(agg_df, by = "age_group")
执行后就能得到带group total列的目标结构。
注意事项
- 确保两个表的
age_group格式完全一致(比如都是字符串、无大小写差异、分类类型统一),不然会出现匹配失败的情况。 - 如果聚合表中某个年龄组在主表里没有,左连接后对应行的
group total会显示NA,可根据需求处理缺失值。
内容的提问来源于stack exchange,提问作者AB R.
相关产品推荐
相关产品推荐

