You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算DataFrame相邻年份列的数值变化百分比

相邻年份变化百分比计算方案

你可以直接使用pandas内置的pct_change()方法完成需求,不需要额外自定义函数,具体实现如下:

核心实现逻辑

  • 先将非数值的国家名称列rownames设为行索引,避免被纳入数值计算
  • 调用pct_change(axis=1)沿水平方向(列方向)逐行计算相邻列的变化率,计算规则为(当前列值 - 前一列值)/前一列值,结果就是相邻年份的变化百分比
  • 计算完成后直接删除无前置对比基准的2015Y列即可

完整可运行代码

# 设置国家列为行索引
df_result = dfhigh.set_index('rownames')
# 计算相邻年份的变化百分比
df_result = df_result.pct_change(axis=1)
# 删除无基准的2015Y列
df_result = df_result.drop(columns="2015Y")
# 如需将国家名还原为普通列,执行下行代码即可
df_result = df_result.reset_index()

注意事项

  • 方法默认返回小数形式的变化率,比如返回值0.636代表较前一年上涨63.6%,如果需要展示为百分号格式,可以对数值列做df_result[年份列] = df_result[年份列].apply(lambda x: f"{x*100:.2f}%")格式化
  • 如果原始数据中存在前一年数值为0的情况,计算会返回无穷大值,可提前将0值替换为空值避免异常:dfhigh = dfhigh.replace(0, pd.NA)

内容的提问来源于stack exchange,提问作者lasagna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 18:03:18