使用Pandas按指定年龄组筛选数据集并关联对比营收列实现方法
Pandas 实现年龄分群与营收关联对比操作
直接通过pd.cut分箱+分组聚合即可完成需求,操作步骤如下:
- 首先确认你的DataFrame包含
age(年龄字段)和revenue(营收字段,可替换为你实际的营收列名) - 定义年龄区间和对应标签,用
pd.cut生成年龄分群列 - 按分群列分组聚合营收的各类统计指标,即可完成对比
示例代码如下:
import pandas as pd # 1. 定义年龄区间和对应标签 age_bins = [18, 30, 50, 99] age_labels = ["18-30岁", "30-50岁", "50-99岁"] # 2. 生成年龄分群列,right=False表示左闭右开,即18<=x<30归为第一组,以此类推 # 如果需要包含区间右边界(比如30岁归到18-30区间),把right参数改为True即可 df["age_group"] = pd.cut(df["age"], bins=age_bins, labels=age_labels, right=False) # 3. 按年龄分群分组统计营收指标,可按需调整要统计的维度 grouped_revenue = df.groupby("age_group", observed=True)["revenue"].agg( 总营收="sum", 平均营收="mean", 营收中位数="median", 群体用户数="count" ).reset_index() # 输出结果即可直接查看各年龄组的营收对比 print(grouped_revenue)
提示:如果你的年龄数据存在小于18或者大于99的异常值,
pd.cut会默认赋值为NaN,你可以提前过滤异常值,或者在age_bins里补充对应的区间(比如修改为[0,18,30,50,99,120])和对应标签即可。
内容的提问来源于stack exchange,提问作者Burak
相关产品推荐
相关产品推荐

