使用dplyr分组人口统计变量,计算国家维度性别占比与平均年龄
分组计算年龄均值与性别占比
原始数据
country age sex x 10 m y 20 f x 12 m y 40 m
需求说明
按country字段对数据分组,计算每组的平均年龄,以及sex字段中m和f的占比,最终输出目标格式的统计结果。
实现代码(Python Pandas)
import pandas as pd # 构造原始数据框 df = pd.DataFrame({ 'country': ['x', 'y', 'x', 'y'], 'age': [10, 20, 12, 40], 'sex': ['m', 'f', 'm', 'm'] }) # 分组聚合计算指标 result = df.groupby('country').agg( mean_age=('age', 'mean'), percent_m=('sex', lambda s: f"{(s == 'm').mean() * 100:.0f}%"), percent_f=('sex', lambda s: f"{(s == 'f').mean() * 100:.0f}%") ).reset_index() # 输出无索引的格式化结果 print(result.to_string(index=False))
运行结果
country mean_age percent_m percent_f x 11 100% 0% y 30 50% 50%
注:原始数据中country=y的年龄为20和40,平均年龄应为30,需求示例中的20为笔误
内容的提问来源于stack exchange,提问作者P.Hubert
相关产品推荐
相关产品推荐

