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

如何使用Python匹配两个Excel表行数据,填充对应列值

实现步骤

1. 安装依赖库

执行以下命令安装处理Excel所需的库:
pip install pandas openpyxl

2. 完整代码

import pandas as pd

# 读取两个Excel文件,替换为你本地的实际文件路径
# sheet_name填工作表序号(从0开始计数)或工作表名称
df_excel1 = pd.read_excel("excel1.xlsx", sheet_name=0)
df_excel2 = pd.read_excel("excel2.xlsx", sheet_name=0)

# 构建标签和数值的映射字典
label_value_map = dict(zip(df_excel2["Network Label"], df_excel2["Value"]))

# 按标签匹配填充Amount列
df_excel1["Amount"] = df_excel1["Group Summary Label"].map(label_value_map)

# 导出结果到新文件,不覆盖原文件避免数据丢失
df_excel1.to_excel("已填充的excel1.xlsx", index=False, engine="openpyxl")

3. 代码说明

  • pandas是常用的表格数据处理库,openpyxl是用来读写xlsx格式文件的依赖
  • 先把两个Excel的内容读入内存中的表格结构(DataFrame)
  • 把Excel2的标签和对应值做成映射字典,匹配时直接查表效率很高
  • map方法会自动根据Group Summary Label的内容去字典里找对应值,赋值给Amount列
  • 导出时index=False表示不把pandas自动生成的行序号导出到Excel里

注意事项

如果两个文件的标签内容存在大小写差异、前后有空格的情况,匹配会失败,你可以先对标签列做一下清洗再匹配,比如统一转小写、去掉首尾空格:

# 清洗标签列的示例
df_excel1["Group Summary Label"] = df_excel1["Group Summary Label"].str.strip().str.lower()
df_excel2["Network Label"] = df_excel2["Network Label"].str.strip().str.lower()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:30:04