python实现excel和csv中的vlookup函数示例代码
作者:孟意昶 发布时间:2021-05-06 07:22:48
标签:python,vlookup,函数
本篇博客会介绍如何使用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 + shell 编写,是一个简易solaris系统巡检程序#!/usr/bin/python -u#-*- coding:
- loc和iloc的意思首先,loc是location的意思,和iloc中i的意思是指integer,所以它只接受整数作为参数,详情见下面。l
- 画之前肯定要知道规格图,我找了一个大致的图。参考图片:绘制大星的方法很简单,五角星的补角是144度。绘制小五角星有点麻烦,因为我国国旗上的小
- 本文实例讲述了Python 进程操作之进程间通过队列共享数据,队列Queue。分享给大家供大家参考,具体如下:队列中的数据是放在内存中的,可
- xhEditor简介xhEditor是一个基于jQuery开发的简单迷你并且高效的可视化HTML编辑器,基于网络访问并且兼容IE 6.0+,
- 方法一:登录MySQL,先做 set names latin1 ,然后在更新语句或者执行SQL语句mysql> set names l
- 前段时间冷空气突袭的时候,据说郊区密云的雪积得挺厚,但北京城内除了飘了一点小雪粒,毫无动静。应该是气温过高所致,我在慈云寺桥附近拍下的照片可
- 以下面的代码为例import osos.system(“ping www.baidu.com”)在pycharm界面运行后会显示乱码,如下图
- 本文实例为大家分享了vue文件树组件的实现方法,供大家参考,具体内容如下本文主要是分析vue官方仓库里的文件树组件[vue github]d
- 前言有时,我们希望判断文本框中用户输入的字符是否含有特殊符号(*/#$@),就像用户注册时密码框的填写。demo利用 RegExp 对象,能
- 近期线上出现一个bug,研发的小伙伴把测试环境的地址写死到代码中,在上线前忘记修改,导致线上发布的代码中使用了测试环境地址。开发过程中虽然有
- 1.11 – 添加缎带修饰网页局部模块中右上角的蓝色缎带修饰是这个网站界面设计中的一个亮点,只要合理的运用CSS、PNG透明图片和绝对定位属
- requests 提供了一个叫做session类,来实现客户端和服务端的会话保持使用方法1.实例化一个session对象2.让session
- 内容摘要:本文介绍了使用js来实现下拉伸缩导航菜单的功能,并带有渐显的效果,值得收藏。正好这几天公司不忙,学校又没有事情,所以想抽空架一个个
- 1. js的数据类型1.1 js引入方式<!DOCTYPE html><html lang="en"&
- 一、简介此模块用于简化paramiko与网络设备之间的ssh连接,可在windows与Unix平台使用 二、目前支持的设备(201
- 写SQL语句的时候很多时候会用到filter筛选掉一些记录,SQL对筛选条件简称:SARG(search argument/SARG) wh
- 热词图很酷炫,也非常适合热点事件,抓住重点,以图文结合的方式表现出来,很有冲击力。下面这段代码是制作热词图的,用到了以下技术:jieba,把
- 前一阵看到一篇文章《使用css3仿造window7的开始菜单》,文中仅使用CSS3 实现了Windows 7 开始菜单的动态效果,很久以来一
- Centos6.5在线安装mysql 8.0的顺序如下,希望大家可以顺利进行安装。Mysql卸载从下往上顺序 [root@localhost