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

如何在Python中实现Excel INDEX+MATCH功能计算产品月度销量差值

Python实现Excel INDEX+MATCH匹配计算销量差值方案

工具选择

优先使用pandas库,它是专门为表格数据处理设计的工具,比numpy更适合这类行列匹配、关联计算的场景,代码更简洁易读。

实现步骤

1. 安装依赖库

首先安装pandas和读写Excel所需的openpyxl库,执行命令:
pip install pandas openpyxl

2. 完整代码实现

import pandas as pd

# 1. 读取Excel文件,替换为你的实际文件路径
df = pd.read_excel("你的文件路径.xlsx", engine="openpyxl")

# 2. 拆分7月、8月数据,重命名列避免冲突
# 列索引从0开始计数,A列为0、B列为1、C列为2、D列为3
july_data = df.iloc[:, [0, 1]].rename(columns={df.columns[0]: "产品名", df.columns[1]: "7月销量"})
aug_data = df.iloc[:, [2, 3]].rename(columns={df.columns[2]: "产品名", df.columns[3]: "8月销量"})

# 3. 按产品名精准匹配,等价于Excel INDEX+MATCH的精准匹配逻辑
# how参数说明:left保留所有8月产品,inner只保留两个月都存在的产品
merge_df = pd.merge(aug_data, july_data, on="产品名", how="left")

# 4. 计算销量差值:8月销量 - 7月销量
merge_df["销量差值(8月-7月)"] = merge_df["8月销量"] - merge_df["7月销量"]

# 可选:将结果保存到新Excel文件
merge_df.to_excel("销量差值计算结果.xlsx", index=False, engine="openpyxl")

# 打印结果校验
print(merge_df)

关键逻辑说明

  • pd.merge的on="产品名"参数就是实现两个表按产品名精准匹配的逻辑,完全等价Excel里的MATCH精准匹配功能
  • 匹配后直接对两列销量做减法,不需要循环逐行计算,pandas会自动按行对齐计算,效率远高于手动逐行处理
  • 如果有产品只在8月存在、7月没有匹配记录,对应的7月销量和差值会显示为NaN,如果需要处理空值可以加一行merge_df = merge_df.fillna(0)把空值替换为0即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:12:02