如何按年龄区间汇总计算收入与支出的均值?
按年龄区间计算收入与支出均值的解决方案
Excel 实现步骤
- 先清理金额列:由于
Income和Expenses列带$符号属于文本格式,无法直接计算均值。在空白列(比如D列)输入公式=VALUE(SUBSTITUTE(B2,"$","")),下拉填充得到纯数值的收入列;同理在E列用=VALUE(SUBSTITUTE(C2,"$",""))处理支出列。 - 计算25-35岁区间均值:
- 平均收入:
=AVERAGEIFS(D:D, A:A, ">=25", A:A, "<=35") - 平均支出:
=AVERAGEIFS(E:E, A:A, ">=25", A:A, "<=35")
- 平均收入:
- 计算36-50岁区间均值:把公式中的条件改为
">=36"和"<=50"即可,比如=AVERAGEIFS(D:D, A:A, ">=36", A:A, "<=50")。
Python(Pandas)实现代码
import pandas as pd # 加载数据集(如果是从文件读取,可改用pd.read_csv("your_file.csv")) data = { 'Age': [25, 30, 35, 40, 45, 50], 'Income': ['$200', '$300', '$500', '$200', '$500', '$1000'], 'Expenses': ['$100', '$150', '$300', '$50', '$100', '$500'] } df = pd.DataFrame(data) # 清理金额格式,转换为数值类型 df['Income'] = df['Income'].str.replace('$', '', regex=False).astype(int) df['Expenses'] = df['Expenses'].str.replace('$', '', regex=False).astype(int) # 划分年龄区间 age_bins = [24, 35, 50] age_labels = ['25-35', '36-50'] df['Age_Group'] = pd.cut(df['Age'], bins=age_bins, labels=age_labels) # 分组计算均值(保留整数结果) result = df.groupby('Age_Group')[['Income', 'Expenses']].mean().round(0) print(result)
运行后输出结果:
Income Expenses Age_Group 25-35 333.0 183.0 36-50 567.0 217.0
内容的提问来源于stack exchange,提问作者liorse213
相关产品推荐
相关产品推荐

