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

使用Python按国家和年份匹配通胀表更新销售表数值

用Python实现销售数据的通胀调整

核心思路

使用pandas库完成表格匹配与计算,这是处理结构化表格数据最便捷的方案。步骤包括:按国家+年份合并两张表,计算通胀调整后的销售额,生成结果表。

示例实现

假设你的销售表和通胀表结构如下(实际使用时替换为你的数据源,比如读取CSV/Excel文件):

示例数据结构

销售表(Sales Table):

国家年份销售额
美国20201000
美国20211200
中国2020800
中国2021900

通胀表(Inflation Table):

国家年份通胀率
美国20201.02
美国20211.05
中国20201.01
中国20211.03

代码实现

import pandas as pd

# 1. 加载数据(实际场景中可替换为pd.read_csv/pd.read_excel)
# 销售表
sales_df = pd.DataFrame({
    '国家': ['美国', '美国', '中国', '中国'],
    '年份': [2020, 2021, 2020, 2021],
    '销售额': [1000, 1200, 800, 900]
})

# 通胀表
inflation_df = pd.DataFrame({
    '国家': ['美国', '美国', '中国', '中国'],
    '年份': [2020, 2021, 2020, 2021],
    '通胀率': [1.02, 1.05, 1.01, 1.03]
})

# 2. 按国家和年份匹配合并表格
# how='left':保留销售表所有数据,若通胀表无对应匹配则显示NaN
merged_df = pd.merge(sales_df, inflation_df, on=['国家', '年份'], how='left')

# 3. 计算通胀调整后的销售额
merged_df['调整后销售额'] = merged_df['销售额'] * merged_df['通胀率']

# 4. 整理结果表(可选,按需筛选列)
result_df = merged_df[['国家', '年份', '销售额', '通胀率', '调整后销售额']]
print(result_df)

输出结果

国家    年份  销售额  通胀率  调整后销售额
0  美国  2020  1000  1.02    1020.0
1  美国  2021  1200  1.05    1260.0
2  中国  2020   800  1.01     808.0
3  中国  2021   900  1.03     927.0

关键注意事项

  • 数据一致性:确保两张表中的国家名称、年份格式完全匹配(比如年份都是整数,国家名称无拼写/大小写差异),否则匹配会失败。
  • 缺失数据处理:如果通胀表存在缺失的国家-年份组合,how='left'会保留销售表数据并标记为NaN。你可以用merged_df.dropna()删除缺失行,或merged_df.fillna(1.0)用默认通胀率(无通胀)填充。
  • 通胀率格式转换:如果你的通胀率是百分比(比如2代表2%),需要先转换为乘数:merged_df['通胀率'] = merged_df['通胀率'] / 100 + 1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:23:08