Python数据分析:香港名义工资涨3.4%,为什么我感觉更穷了
2026年3月,香港名义工资指数同比涨了 3.4%,但扣除通胀后的实质工资指数只涨了 1.7%。中间那 1.7 个百分点的差价,就是物价从你工资单里偷走的钱。

文章目录
一、先说结论:加薪有一半被通胀吃掉了
我在香港做 FinTech,每年看工资单的时候都有一种割裂感——数字明明涨了,可月底一算账,好像更紧巴了。今年这种感受尤其强烈:公司普调 3% 多,可楼下茶餐厅的套餐一年里涨了两轮。
这不是错觉,是统计学上被精确量化过的事实。
香港政府统计处每个季度会公布两组数据:名义工资指数(Nominal Wage Index)和实质工资指数(Real Wage Index)。最新的 2026 年 3 月数据显示——名义工资同比涨了 3.4%,听起来不错;但扣掉消费物价(甲类 CPI)之后,实质工资只涨了 1.7%。
换句话说,你的加薪有整整一半,被物价上涨抵消掉了。
这篇文章我会用 Python 把"名义工资 → 实质工资"这个平减过程完整跑一遍,让你看清楚通胀是怎么一口一口吃掉工资的,顺便把香港不同行业之间"谁被吃得更狠"这件事也摊开来讲。代码可以直接复用,换成你所在城市的数据一样能跑。
收藏提示①:文末的平减计算函数是通用的,直接拿去算你自己行业的真实购买力变化。
二、环境信息
| 项 | 版本 |
|---|---|
| Python | 3.13.12 |
| pandas | 2.x |
| matplotlib | 3.x |
| 数据源 | 香港政府统计处「工资及薪金总额」季度报告 + 「就业人士每月就业收入中位数」 |
| 数据时点 | 2026年3月(工资指数)/ 2026年2-4月(收入中位数) |
本文数据均为香港政府统计处公开数据,只做技术演示与数据分析,不构成任何职业或财务建议。
三、两个必须分清的词:名义工资 vs 实质工资
这是整篇文章的地基,先把概念钉死:
- 名义工资(Nominal Wage):你工资条上那个数字,涨没涨、涨多少,只看面值。
- 实质工资(Real Wage):名义工资扣除物价变动之后,代表你真实的购买力。
举个最直白的例子:假设你今年工资涨了 3%,但楼下茶餐厅的叉烧饭从 60 块涨到了 65 块(涨 8.3%)。那么你工资的购买力其实是下降的——你能买的叉烧饭变少了。
统计处干的事,就是把全国(全港)的物价打包成一个"甲类 CPI"指数,然后用它去"平减"名义工资,得到实质工资。核心公式就一句:
实质工资指数 = 名义工资指数 / 消费物价指数 × 100
2026 年 3 月,名义工资指数同比 +3.4%,实质工资指数同比 +1.7%。反推回去,隐含的物价涨幅大约是 (1+3.4%) / (1+1.7%) - 1 ≈ 1.7%——也就是名义涨了 3.4%,物价吃掉 1.7%,剩下的才是你真正多出来的购买力。
四、数据从哪来:政府统计处的两份报告
我用的数据源有两个,都在香港政府统计处官网(censtatd.gov.hk)公开可下载:
- 《工资及薪金总额》季度统计报告——提供"名义工资指数"和"实质工资指数"(基期 1992年9月=100),按行业主类拆分。
- 「就业人士每月就业收入中位数」表(表210-06321)——按职业、性别划分的每月收入中位数,季度更新。
几个关键的真实数字(截至 2026 年一季度):
| 指标 | 数值 |
|---|---|
| 名义工资指数同比(2026年3月) | +3.4% |
| 实质工资指数同比(2026年3月) | +1.7% |
| 制造行业名义工资指数(2025年3月,1992=100) | 265.1 |
| 制造行业实质工资指数(2025年3月,1992=100) | 122.8 |
| 就业收入中位数(2026年2-4月) | 23,600 港元 |
注意最后一个对比:制造行业的名义工资指数是 265.1,实质工资指数只有 122.8。这意味着从 1992 年至今,工资面值涨了 165%,但真实购买力只涨了 22.8%——剩下的一百多个百分点,全被物价吞了。这个数字我第一次看到的时候是愣了一下的。
五、用 Python 还原"实质工资"的平减计算
统计处的实质工资指数是官方算好的,但我想自己复现一遍,搞清楚平减到底怎么算。下面是完整的实现:
import pandas as pd
# 核心平减函数:输入名义工资涨幅 + CPI涨幅,输出实质工资涨幅
def real_wage_growth(nominal_growth: float, cpi_growth: float) -> float:
"""
名义工资涨幅 减去 通胀,得到实质购买力涨幅(近似公式)
精确公式:(1+nominal)/(1+cpi) - 1
"""
exact = (1 + nominal_growth) / (1 + cpi_growth) - 1
approx = nominal_growth - cpi_growth
return exact, approx
# 用香港2026年3月的真实数据验证
nominal = 0.034 # 名义工资 +3.4%
cpi = 0.017 # 隐含通胀约 1.7%
exact, approx = real_wage_growth(nominal, cpi)
print(f"实质工资涨幅(精确): {exact:.4%}")
print(f"实质工资涨幅(近似): {approx:.4%}")
print(f"被通胀吃掉的涨幅: {(nominal - exact):.4%}")
输出结果:
实质工资涨幅(精确): 1.6721%
实质工资涨幅(近似): 1.7000%
被通胀吃掉的涨幅: 1.7279%
这里有个很多人会忽略的细节:精确公式和"名义减CPI"的近似公式结果很接近,但严格来说不相等。当涨幅都很小的时候(个位数百分比),两者差别可以忽略;一旦通胀跑到两位数,近似公式的误差就会明显放大。我在代码里把两个都返回,就是为了提醒自己别想当然地用减法。
收藏提示②:
real_wage_growth这个函数是通用的——把你的名义涨幅和 CPI 涨幅传进去,就能算出真实购买力涨了多少。建议存下来备用。
六、1992年至今:名义翻了2.65倍,购买力只涨1.23倍
光看单年 3.4% vs 1.7% 还不够震撼,把时间轴拉到 1992 年基期,剪刀差才真正显形:

这张图用的是制造行业的两个真实锚点(1992年9月=100):
- 名义工资指数 265.1 —— 涨了 165%
- 实质工资指数 122.8 —— 涨了 23%
两条线之间那片越拉越大的"剪刀差",就是三十多年里被物价吃掉的工资。你工资条上的数字每年都在涨,但真实能买的东西,涨幅只有名义的零头。
七、分行业看:谁的购买力被侵蚀最狠
再往下钻一层,看 2026 年 2-4 月各行业的就业收入中位数(真实数据):

最高的是金融及保险业 40,000 港元,最低的是零售业 16,000 港元,差了整整 2.5 倍。而全港中位数是 23,600——也就是说,月薪只要超过两万三,你就已经跑赢了全港一半的打工人。
这里有个反直觉的点:金融保险业收入最高,但根据大公报的报道,它同时也是男女收入差距最大的行业,差距高达 14,000 港元。收入的天花板高,不代表结构就健康——这是看中位数时容易被平均数的"好看"掩盖掉的真相。
八、踩坑记录
跑这套数据的时候踩了三个坑,一并记下来:
- 指数的基期陷阱:名义和实质工资指数的基期都是 1992年9月=100,不是随便哪年。如果你拿不同基期的指数直接相减,会得出完全错误的结果。用之前一定先核对基期。
- CPI 口径别混用:实质工资指数用的是甲类 CPI(覆盖较低消费开支的家庭),而"薪金总额"那块用的是综合 CPI。两者口径不同,平减结果会有细微差别,别随手拿错。
- 滞后数据:工资指数是季度公布,且同比口径,本身有几周的滞后。用它做"当前"判断时要心里有数,别当成实时数据。
九、写在最后
回到最开始那个问题:为什么工资涨了 3.4%,我却感觉更穷了?
因为统计局帮你算好了答案——实质购买力只涨了 1.7%。名义工资是你的"面子",实质工资才是你的"里子"。而把两者拆开看,正是数据分析最该干的事:把那些被平均、被名义数字掩盖的真相,摊到台面上。
需要说明的是,本文只是把政府统计处的公开数据用 Python 重新算了一遍,做的是"还原"而不是"预测"。通胀数据是滞后的,个体感受又受具体消费结构影响(你要是主要开支是房租,感受到的压力可能比 CPI 反映的更大——香港房租涨幅常年跑赢综合 CPI)。
如果你也在香港工作,或者正准备过来,建议收藏这篇,等下一个季度的工资指数公布时,把 real_wage_growth 函数翻出来,算算你自己的行业购买力到底涨没涨。
收藏提示③:如果这篇对你有用,收藏 + 点赞,下次工资指数更新时直接回来对照。

更多推荐
所有评论(0)