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

Python处理Excel数据:欧元区面板分析变量基期指数化及增长率计算

Python实现欧元区面板数据基期指数编制与增长率计算

以下是针对1995-2022年欧元区国家面板数据,以2005年为基期编制指数、计算增长率的完整Python实现步骤:

1. 导入必要库

import pandas as pd

2. 读取Excel数据集

假设你的Excel文件包含国家、年份、HCPI、最终总需求、实际GDP列(列名不同的话替换为实际名称即可):

# 读取数据
df = pd.read_excel('欧元区面板数据.xlsx')

# 快速检查数据结构和类型
print(df.head())
print(df.dtypes)

3. 数据预处理

确保年份为整数类型,数值变量为浮点型,并处理缺失值:

# 转换年份列类型
df['年份'] = df['年份'].astype(int)

# 转换数值列为浮点型
numeric_cols = ['HCPI', '最终总需求', '实际GDP']
df[numeric_cols] = df[numeric_cols].astype(float)

# 检查缺失值并处理(按需选择删除或填充)
print("缺失值统计:\n", df.isnull().sum())
# 示例:删除含缺失值的行
df.dropna(inplace=True)
# 或向前填充缺失值:df.fillna(method='ffill', inplace=True)

4. 编制2005年基期指数

按国家分组,以2005年的变量值为基准计算指数(指数=当期值/基期值*100):

base_year = 2005

# 提取每个国家2005年的基准值
base_values = df[df['年份'] == base_year].set_index('国家')[numeric_cols]

# 合并基准值到原数据集,计算指数
df = df.merge(base_values, on='国家', suffixes=('', '_base'))
for col in numeric_cols:
    df[f'{col}_指数'] = (df[col] / df[f'{col}_base']) * 100

# 删除临时基准列
df.drop([f'{col}_base' for col in numeric_cols], axis=1, inplace=True)

5. 计算增长率

同比增长率(较上一年)

按国家分组计算年度环比增长率:

for col in numeric_cols + [f'{col}_指数' for col in numeric_cols]:
    df[f'{col}_同比增长率(%)'] = df.groupby('国家')[col].pct_change() * 100

较基期增长率

直接用指数值减去100得到相对于2005年的增长率:

for col in numeric_cols:
    df[f'{col}_较基期增长率(%)'] = df[f'{col}_指数'] - 100

6. 保存处理后的数据

将结果导出到新的Excel文件:

df.to_excel('处理后_欧元区面板数据.xlsx', index=False)

额外说明

  • 如果原始数据是宽格式(年份作为列,每个国家一行),需要先转换为长格式:
    # 宽格式转长格式示例
    df_long = pd.melt(df, id_vars=['国家'], var_name='年份', value_vars=[str(year) for year in range(1995, 2023)])
    df_long['年份'] = df_long['年份'].astype(int)
    
  • 若部分国家2005年数据缺失,可根据研究需求选择插值补全或剔除该国家样本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:22:55