python实现excel和csv中的vlookup函数示例代码
作者:孟意昶 时间:2021-05-06 07:22:48
本篇博客会介绍如何使用python
在excel和csv里实现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_on
和right_on
参数是两张表关联所使用的字段名称,运行程序后会直接看到关联后的结果
2. python处理csv
经过实测,对csv文件进行vlookup操作和对excel是一样的,都可以直接使用merge
函数
来源:https://blog.csdn.net/weixin_44999258/article/details/128450052
标签:python,vlookup,函数
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python flask sqlalchemy的简单使用及常用操作
2021-09-22 22:11:18
python直接获取API传递回来的参数方法
2023-11-10 18:01:59
Python3中urlopen()的用法解读
2023-11-22 20:26:19
解决Dreamweaver不支持中文文件名
2008-06-04 09:37:00
我对PyTorch dataloader里的shuffle=True的理解
2022-04-15 19:22:48
![](https://img.aspxhome.com/file/2023/5/97175_0s.png)
python dataframe向下向上填充,fillna和ffill的方法
2021-11-07 18:16:47
php相当简单的分页类
2023-11-17 01:50:36
解决Django layui {{}}冲突的问题
2023-07-23 15:22:18
PHP解决高并发问题(opcache)
2023-11-07 23:17:49
![](https://img.aspxhome.com/file/2023/3/62033_0s.png)
用python写扫雷游戏实例代码分享
2023-03-31 05:12:38
基于pip install django失败时的解决方法
2021-06-19 06:01:27
JS图形技术的终极体现
2008-04-30 19:43:00
![](https://img.aspxhome.com/file/UploadPic/20084/30/200843019490727s.jpg)
Python基础中所出现的异常报错总结
2023-07-14 05:33:47
![](https://img.aspxhome.com/file/2023/0/107490_0s.png)
微信小程序与php 实现微信支付的简单实例
2023-11-14 15:22:07
class和id命名探讨
2007-10-16 17:55:00
windows安装python超详细图文教程
2023-08-01 15:19:32
![](https://img.aspxhome.com/file/2023/2/61762_0s.png)
基于Python中单例模式的几种实现方式及优化详解
2022-10-24 14:20:45
用python实现的去除win下文本文件头部BOM的代码
2021-04-01 08:00:19
pandas按照列的值排序(某一列或者多列)
2022-08-14 08:54:08
python获取代码运行时间的实例代码
2023-11-04 02:25:10