全球年通货膨胀率数据集:1961-2024年清洗、分析与可视化指南

发布时间:2026/10/9 3:39:17
全球年通货膨胀率数据集:1961-2024年清洗、分析与可视化指南 做数据的人都有一种体会宏观数据往往比微观数据更难折腾因为每个国家统计机构的底子不一样公布口径、更新节奏、甚至“通货膨胀”这同一概念在不同经济体里都存在细微差别。我最近整理了一份覆盖全球260多个国家和地区的年通货膨胀率数据集时间跨度从1961年一直拉到2024年算是目前公开渠道里比较全的宏观面板数据之一。你如果要做跨国家、跨年代的经济分析或者想给机器学习模型补一组宏观特征又或者只是想在博客里画几张说得过去的世界通胀热力图这份数据都挺值得上手。下面我把它的人事、细节和踩坑记录展开聊聊。1. 先弄明白这个数据集到底包含什么1.1 数据来源与统计口径在动手之前得先纠正一个常见误解网上搜“通货膨胀率数据”结果往往五花八门有的给CPI指数值有的给通货膨胀率年变化百分比还有的直接拿货币供应量增速来凑数。这些都不能直接混用。这份数据集里的年通货膨胀率指的是消费者价格指数CPI的年度同比增长率也就是常说的“今年比去年物价上涨了百分之几”。比如某国2023年通胀率是4.5%意思是该国2023年的居民消费价格水平比2022年高了4.5%。数据最初来源于世界银行开放数据World Bank Open Data的全球发展指标WDI主题库部分年份和国家的缺失记录我参考了IMF世界经济展望数据库的口径做了交叉补充。为什么选这两个源世界银行的优势是口径统一、国家覆盖面广IMF的优势是在遇到经济剧变时期会给出更细的分段估计。两者都不完美但合在一起能覆盖绝大多数主权国家和部分非主权经济体。要注意的是不同机构在个别年份上会有小幅差异比如基期年调整、统计方法修正这属于正常误差范围分析时只要统一从一个口径拿数不要混着用就行。1.2 字段设计与文件结构数据集本身不复杂核心字段包括国家名称、国家代码ISO三位字母、年份、通货膨胀率年同比百分比。但我额外保留了几个附加字段方便你做经济体分层分析包括所属区域东亚与太平洋、欧洲与中亚、拉美与加勒比、中东与北非、南亚、撒哈拉以南非洲等、收入组别低收入、中低收入、中高收入、高收入。这几个字段在实战中的价值非常大因为做全球面板模型时你得控制区域效应和收入效应如果把所有国家混在一起回归结果基本都会被几个高通胀国家带偏。文件结构我给了三种格式长表long format每个国家、每个年份占一行适合直接用pandas读取后做过滤、分组、聚合。宽表wide format年份作行、国家作列适合直接画多国折线图或者转成Excel透视图表。JSON版本适合喂给前端可视化项目或API接口。长表是最推荐的分析格式。很多新手一上来喜欢用宽表等到要做回归、做面板数据时就傻眼了得去逆透视绕一圈远路。长表配合groupby做任何维度的聚合都非常顺手。1.3 覆盖国家与时间跨度上有哪些“坑”表面上看“260多个国家、1961到2024年”很美好但实际覆盖情况参差不齐。发达国家序列相对完整基本从1960年代初就有连续记录许多发展中国家要到1970年代甚至1990年代之后才有统计数据前苏联加盟共和国在1991年之前的数据要么没有要么只代表苏联整体口径拆分后的各国连续序列很多时候要从1992年或1993年开始算。所以如果你做的是1970年代的全球面板分析可用国家数会从260多缩水到100左右这是客观存在的统计体系问题不是数据集的错误。还有一类“消失的年份”值得注意个别国家在战争、政权更迭、严重经济危机期间会停止公布官方统计数据。虽然这些空缺很让人头疼但我建议不要随意用插值法补上因为通胀这种指标在危机年份往往不是“平滑变化”的你补出来的数字可能引发更大的模型偏差。2. 为什么研究通胀率数据是搞宏观分析的基本功2.1 通胀率不是单一指标CPI、核心通胀、GDP平减指数大家平时新闻里听到的“通胀率”绝大多数时候指的是CPI同比涨幅这也是这份数据集的核心字段。但在做严谨分析时我们还会遇到“核心通胀率”和“GDP平减指数”。最通俗的理解是CPI衡量的是你我买东西的价格变化GDP平减指数衡量的是整个经济体所有最终产品和服务的价格变化而核心通胀率会把食品和能源这类波动大的项目剔除掉用来观察更稳定的价格趋势。在利用这份全球数据集时我会额外提醒你世界银行的WDI指标中有一个NY.GDP.DEFL.KD.ZG就是GDP平减指数的年增长率它和CPI通胀率走势大致相同但在特定时期差异明显。举个例子一个国家如果经历严重的汇率贬值进口商品价格会迅速推高CPI而GDP平减指数更多反映国内产出价格两者可能短期背离。分析时最好先看你研究的核心问题是什么再决定用哪个口径。2.2 从年通胀率能读到什么年通胀率背后藏着至少两类信息第一类是购买力变化第二类是货币政策与结构性扭曲的信号。单独看某个国家的某一年数据意义有限一旦放到时间序列里你就能区分高通胀、恶性通胀、通缩、温和通胀等不同状态。我处理这份数据时习惯先做一个“通胀状态标记”通胀率低于0标记为通缩0到3%标记为物价稳定3%到10%为温和通胀10%到50%为高通胀超过50%则视为恶性通胀区间。这样一分很多故事就出来了发达国家大部分时间待在0到3%区间偶尔出现通缩一部分发展中国家频繁在10%上下徘徊而个别国家某些年份动辄出现百分之几千的通胀那已经不是常规经济政策问题而是货币信用崩溃的表现。2.3 适合哪些场景从我的个人经验来看全球年通胀率数据至少在五个场景下是不可或缺的资产配置与跨国投资研究债券实际收益率、股票估值模型里都要考虑通胀预期。汇率分析高通胀国家通常伴随本币贬值压力把通胀数据和汇率数据放在一起看能发现很多因果链条。机器学习特征工程给跨国家信贷违约预测、跨境电商定价模型、供应链成本预测做宏观输入变量。学术论文与政策研究面板回归、事件研究法、双重差分模型都需要长时间跨度的宏观数据。数据可视化教程它的结构足够规整产出又很直观非常适合作图教学或数据新闻素材。3. 用 Python 完成一次全球通胀数据集实战清洗3.1 读取与标准化成长期表无论原始文件是CSV还是Excel我建议第一步就统一处理成标准长表。下面是一段可以直接用的读取代码以pandas读取CSV为例import pandas as pd df pd.read_csv(global_inflation_1961_2024.csv) print(df.shape) print(df.head(10)) print(df[year].min(), df[year].max()) print(df[country].nunique())这段代码能快速告诉你三件事数据总量、前几行长什么样、年份和国家数量是否和预期一致。拿到数据后第一步永远不是建模而是先看形态。我会再检查一下字段类型print(df.dtypes) print(df.isna().sum())大多数情况下year会被识别成int64inflation_rate是float64这没问题。如果year变成了object说明文件里某一行混入了文本需要查一下具体是哪个位置出了问题。3.2 缺失值的处理逻辑处理缺失值时我个人的原则是能定位原因的缺失不要盲目填充不能定位原因的优先保留NaN。很多做数据分析的人一看到NaN就条件反射去填中位数、填均值但在全球通胀数据里这往往是最糟糕的处理方式。我给你一个具体的例子某小岛经济体1990年代根本没有独立通胀统计它的NaN是“这个经济体当时不存在”不是“存在但没测得”。这时填充均值会凭空捏造一个经济信号后续分析会一并扭曲。正确的做法是把“缺失”当一个状态变量来处理——生成一个is_missing列值为1表示该年该国家缺失通货数据。在机器学习模型里这个状态变量本身就能携带信息数据缺失与否往往和该国的统计能力、经济稳定程度密切相关。当然如果你做的是可视化完全不填会有缝隙这时可以按区域或收入组的中位数来临时展示但要在图注里注明“缺失值按区域中位数近似替代”别把临时处理当成真实数据。3.3 异常值与恶性通胀数据该不该删这可能是这份数据里最让人纠结的问题。你打开某个国家的序列猛然看到一年通胀率是百分之几百万比如2008年前后的津巴布韦数值大到直接把图表Y轴压扁。这时候第一反应是“这肯定是脏数据”但我要明确告诉你它不是脏数据它是真实发生过的极端事件。处理这类极端值我会分三步走先看原始值是否合理结合历史背景判断出现高得离谱的值是否在合理范围内。再做对数变换在可视化或建模时把通胀率取log(1 rate)来压缩量纲让恶性通胀国家的曲线也能被画在同一张图里。最后考虑截尾如果模型的目的是研究常规波动可以在分位数层面做截尾处理但要单独记录被截掉的行数并在结论部分说明你排除了哪些极端区间。我的经验是不要轻易删除极端值。它们在面板回归里可能影响力过大但用稳健回归、分位数回归或对数变换都能解决远比一张空空的“删除后数据表”有说服力。4. 全球通胀可视化把1961到2024年的数据画出信息量4.1 全球地图热力图拿到规范的长表后最直观的输出是绘制世界地图上的通胀热力图。用plotly的choropleth可以快速生成它会自动识别国家的ISO三位代码import plotly.express as px sample df[df[year] 2023] fig px.choropleth( sample, locationsiso_code, colorinflation_rate, hover_namecountry, color_continuous_scaleRdYlBu_r, title2023 Global Inflation Rate (%), ) fig.show()不过画这种图要提醒一句地图热力图本质上是“给外行看的漂亮图”信息密度其实不高。我看这类图时会同时关注两个信息高通胀国家在地理上是否扎堆以及低收入国家是不是普遍颜色偏深。前者能看出区域传导效应后者能引出发展经济学问题。4.2 多国时间序列与滚动均值比地图更实用的是多国时间序列对比。随便挑十来个国家画1961到2024年的通胀率走势你立刻能感受到不同经济体之间的节奏差异。这里我用matplotlib画一个示例import matplotlib.pyplot as plt countries [United States, Germany, Japan, Brazil, Turkey] plot_df df[df[country].isin(countries)] for c in countries: sub plot_df[plot_df[country] c] plt.plot(sub[year], sub[inflation_rate], labelc) plt.legend() plt.xlabel(Year) plt.ylabel(Inflation Rate (%)) plt.yscale(symlog) # 关键使用对称对数轴 plt.show()这里plt.yscale(symlog)是我特别想强调的一行代码。普通线性轴会被巴西或土耳其的高通胀年份彻底压扁而log轴无法处理负数symlog则可以同时容纳负通胀和极端正通胀是画跨国通胀序列的默认选择。4.3 一个低成本的“通胀周期”特征构造思路如果有人想把这个数据集用于建模而不是只看图我建议构造这么一组特征过去5年通胀均值代表中期通胀水位。过去5年通胀标准差代表通胀波动性。近3年是否出现过超过20%的通胀率代表极端风险暴露。通胀加速度今年通胀减去去年通胀用来捕捉趋势方向。是否连续两年通缩代表通缩风险阶段。这几个特征构造成本很低但在做主权信用分析、汇率风险评级甚至供应链合约定价时都能显著提升模型的区分度。核心逻辑是很多人只把“当期通胀率”当特征忽略了通胀的波动性和路径依赖而后者往往才是真正影响经济行为的东西。5. 踩坑记录全球通胀数据的常见坑与排查方法5.1 指标之间打架CPI年率 vs GDP平减指数我见过最频繁的翻车现场是同事用同样的国家、同样的年份从两个不同表格里各拉了一次“通胀率”结果数值差出一倍多。原因很简单一张表里放的是CPI同比增速另一张放的是GDP平减指数同比增速字段名都叫“inflation”但内涵完全不同。GDP平减指数覆盖的价格范围更广还受到进出口价格影响在开放经济体中与CPI差异尤其明显。解决办法是查看原始数据字典确认FP.CPI.TOTL.ZG和NY.GDP.DEFL.KD.ZG的区别并确保整个分析从头到尾只用同一个指标代码。5.2 国家代码与合并数据导致的行数爆炸另一个高频问题出现在把通胀数据和其他数据集合并时。不同来源的国家名称写法五花八门有的是“United States”有的是“USA”还有的是“United States of America”。一个不留神合并之后会产生大量重复行。我的做法是先用ISO三位字母代码作为唯一键而不是用国家名称。ISO代码相对稳定改名也只影响名称列不影响代码。运行时可以采用类似下面的mergemerged pd.merge( inflation_df, other_df, on[iso_code, year], howinner, validateone_to_one, ) print(merged.shape) merged merged.drop_duplicates(subset[iso_code, year])validateone_to_one会在合并键存在重复时直接报错能尽早暴露你数据里的脏点而不是让你事后对着笛卡尔积傻眼。5.3 时间跨度不一致与代码混乱数据集的“1961到2024”指的是整体时间边界不代表每个国家都有完整64条记录。我在用r语言做面板回归时遇到过最无语的报错就是“unbalanced panel”。这时候不要硬跑固定效应模型先用isna()或value_counts()看每个国家的记录数判断是否平衡面板。如果只是为了跑通模型可以用dropna()把缺失国别删掉如果缺失太多就考虑改用随机效应模型或者在模型里加入是否缺失的哑变量。我还遇到过某个国家的ISO代码在历史版本中发生过变化比如一些国家在解体后代码被重新分配。这种问题比较难排查但两个特征可以作为警示信号一是代码相同的国家名称在前后年份出现变化二是单个国家在时间序列中间突然断档。遇到这类情况建议直接把原始代码对照一遍而不是盲目信任一个已存在的映射表。6. 我自己的后续延伸思路6.1 结合汇率与劳动力市场数据做多变量分析单一通胀率数据是“鱼骨”但要成菜还得配上汇率、利率、失业率、GDP增速。我做了一个简单的合并测试把通胀数据和美元兑各国名义汇率、失业率数据合并后先算各变量之间的相关系数矩阵再用固定效应模型跑了一遍。结果能明显看到高通胀国家对汇率贬值的弹性远高于低通胀国家说明通胀预期在这些经济体中更容易自我强化。这组结论单独靠通胀数据是得出来的但起点仍然是这份扎实的年通胀面板。6.2 作为机器学习预测模型的输入特征把1961到2024年各国通胀数据整理成特征集可以做的事情很多。比如预测下一年该国是否进入高通胀状态用简单的逻辑回归或随机森林就能入门。我先构造了滞后1到3年的通胀率、5年滚动均值、5年滚动标准差以及“是否处于高通胀”的滞后标签然后训练了一个随机森林分类器国家层面的AUC基本能到0.8以上。这个结果说明通胀具有很强的路径依赖历史序列本身就是相当强的预测因子。对于想做时间序列预测的新手来说这是一个很好的动手练级项目。6.3 作为开放教育内容与研究素材如果你在大学做助教、带兴趣小组或者在企业里做内部分享这份数据可以直接拿来当作业题素材。学生用它练习数据清洗、画图、做面板回归门槛低但延展性极强。一个有趣的练习方向是让学生找出1961至2024年间出现过至少一次恶性通胀年通胀率超过50%的经济体再对照其后续5年的平均通胀率看是否出现明显的均值回归。这类练习能帮助学生理解统计概念同时顺带获得真实世界经济史的语感。整理这份全球年通货膨胀率数据集的过程中我自己最大的收获不是“终于拿到了一个完整文件”而是更清楚地意识到宏观数据里每一个缺失值背后都有真实的历史与制度背景不能一概而论地填充或丢弃。拿到任何一个数据集先花半小时看清它的口径、覆盖范围和缺失结构再考虑怎么分析往往比急着出图更省时间。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询