如何通过美国劳工统计局(BLS)API获取数据的年度百分比变化
计算BLS时间序列的年度百分比变化
核心方案:利用Pandas内置方法高效计算
你的数据已经整理成按时间升序排列的DataFrame,直接使用Pandas的pct_change()方法即可实现年度同比计算——该方法会计算当前值与指定周期前数值的百分比变化,指定periods=12对应去年同月的数据。
在现有代码末尾添加以下代码:
# 计算年度百分比变化并转为百分比格式(保留2位小数) df['annual_pct_change'] = df[series['id']].pct_change(periods=12) * 100 df['annual_pct_change'] = df['annual_pct_change'].round(2) # 查看结果(前12行因无去年数据会显示NaN,从第13行开始有有效数值) print(df.tail())
关于你之前尝试的问题
你调用的i['calculations']字段需要在API请求时添加calculations=true参数才会返回,且BLS API默认不提供年度同比的计算结果。相比依赖API返回的固定计算值,用Pandas本地处理更灵活,还能自定义精度和格式。
可选:手动实现计算逻辑
如果想手动完成计算(效果和内置方法一致),可以用shift()方法获取去年同月的数据:
# 手动计算:(当前值 - 去年同月值) / 去年同月值 × 100 df['annual_pct_change_manual'] = (df[series['id']] - df[series['id']].shift(12)) / df[series['id']].shift(12) * 100 df['annual_pct_change_manual'] = df['annual_pct_change_manual'].round(2)
内容的提问来源于stack exchange,提问作者Michelle
相关产品推荐
相关产品推荐

