Python实现Excel和CSV中VLOOKUP功能:从数据清洗到合并的完整指南

阿麦
阿麦
发布时间:2026-10-12| 2人浏览过
原创

本文详解如何利用Python的Pandas库在Excel和CSV文件中实现类似VLOOKUP的数据关联功能。内容涵盖删除指定行、获取最大行数、上下拼接表格以及使用merge函数进行左连接合并。通过具体代码示例,展示如何高效处理三国人物数据,解决大数据量下的性能问题,并提供从数据清洗到最终合并的完整操作流程。

本文将介绍如何使用python语言结合相关库,在Excel和CSV文件中实现类似于Excel内置VLOOKUP函数的数据查找与合并功能。为了掌握这一技能,首先需要了解python是如何操作Excel文件的。

1. python处理excel

1.1 删除excel中指定行

我们在文件夹中创建了一个包含三国人物数据的Excel文件。

观察发现,在【蜀】这一类别中,错误地多出了一条【晋】的数据记录。因此,我们的第一步是实现删除这条特定数据的功能。

import pandas as pd
import openpyxl
import os

shu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/蜀.xlsx'
#删除指定行
df_shu = pd.read_excel(shu)
selected_rows = df_shu.loc[df_shu["国家"] == "晋"]
print(selected_rows)

通过筛选条件,我们已经成功定位到了需要删除的那条数据。

接下来,我们可以利用数据框提供的drop()方法,根据索引删除选定的行。

df_shu = df_shu.drop(selected_rows.index)
print(df_shu)

最后一步是将处理后的结果重新保存回Excel文件,即可完成整个删除需求。

#保存至excel
df_shu.to_excel(shu, index=False)

此时再打开文件夹内的Excel文件,可以看到【晋】的数据已经被成功删除。

1.2 获取excel的最大行数

无需打开Excel文件,我们可以通过openpyxl库直接获取该文件的最大行数,从而对文件大小有一个初步的认识。

import pandas as pd
import openpyxl
import os

shu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/蜀.xlsx'
wei = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/魏.xlsx'
wu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/吴.xlsx'
#删除指定行
df_shu = pd.read_excel(shu)
df_wei = pd.read_excel(wei)
df_wu = pd.read_excel(wu)

#查看最大行数
workbook = openpyxl.load_workbook(wei)
worksheet = workbook['Sheet1']
max_row = worksheet.max_row

print(max_row)

执行上述代码后,即可直接获取到最大行数为4。

1.3 将excel表进行上下拼接

在当前示例中,魏、蜀、吴三个势力的数据是分开存放的。若要汇总整个三国的数据,可以先提取表头,再将剩余内容合并。这一过程可以通过concat函数来实现。

import pandas as pd
import openpyxl
import os

shu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/蜀.xlsx'
wei = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/魏.xlsx'
wu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/吴.xlsx'
#删除指定行
df_shu = pd.read_excel(shu)
df_wei = pd.read_excel(wei)
df_wu = pd.read_excel(wu)

#两张表进行上下拼接
df = pd.concat([df_shu, df_wei, df_wu])

# 将合并后的数据写入新的Excel文件
df.to_excel(r"D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/三国.xlsx", index=False)

运行程序后,会在当前文件夹中生成一个新文件。

检查新文件内容,确认其确实是多个源文件内容的拼接结果。

1.4 实现excel中的vlookup函数

在日常工作中,经常需要将两份Excel数据进行VLOOKUP操作。如果数据量较大,传统方法运行速度较慢,此时可以使用merge函数来高效实现。

import pandas as pd
import openpyxl
import os

#两张表进行vlookup
sanguo = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/三国.xlsx'
wuqi = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/武器.xlsx'

df_sanguo = pd.read_excel(sanguo)
df_wuqi = pd.read_excel(wuqi)

df=pd.merge(df_sanguo, df_wuqi, how= 'left',left_on = '人物', right_on = '名称')
print(df)

其中,how参数用于指定连接方式,本例采用左连接(left join)。left_on 和right_on 参数分别指定了两张表进行关联时所使用的字段名称。运行程序后,即可直接查看到关联后的结果。

2. python处理csv

经过实测,对CSV文件进行VLOOKOP操作与处理Excel文件的方法一致,同样可以直接使用merge函数。

至此,关于在Python中实现Excel和CSV文件VLOOKUP函数的介绍已完成。如需了解更多相关Python VLOOKUP函数内容,请搜索本站历史文章或继续浏览后续相关文章。感谢大家的支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。