vlookup 函数的 Python 实现
最编程
2024-07-12 09:34:45
...
工作中,我们经常会用到vlookup函数来实现数据对碰,但是窃以为vlookup的使用体验极差,首先数据量一多的话,Excel就会死机,第二使用过程中经常会因为设置不当而出不来需要的结果,譬如绝对引用的设置,第三需要进行多条件对碰的话,设置太复杂,我就不会用。所以今天我们就来讲讲在Python中如何实现vlookup以及它的优势。
首先导入数据,我们示例的df1是
姓名 语文
0 张三 99
1 李四 98
2 王五 97
3 赵六 96
df2是
姓名 数学
0 张三 89
1 李四 88
2 王五 87
3 韩七 86
在Python中是用merge函数来实现vlookup的功能的,需要对碰的数据列就用on来标识,下图中我们就是用姓名这一列把两张表关联起来。另外,merge函数提供了4种连接方式,不设置的话默认为inner连接,即求的是交集
pd.merge(df1, df2, on = '姓名')
姓名 语文 数学
0 张三 99 89
1 李四 98 88
2 王五 97 87
其他3种连接方式分别是left(以左表为基础进行连接)、right(以右表为基础进行连接)和outer(求并集),对于其中没有的字段就用空值填充
pd.merge(df1, df2, on = '姓名', how = 'left')
姓名 语文 数学
0 张三 99 89.0
1 李四 98 88.0
2 王五 97 87.0
3 赵六 96 NaN
pd.merge(df1, df2, on = '姓名', how = 'right')
姓名 语文 数学
0 张三 99.0 89
1 李四 98.0 88
2 王五 97.0 87
3 韩七 NaN 86
pd.merge(df1, df2, on = '姓名', how = 'outer')
姓名 语文 数学
0 张三 99.0 89.0
1 李四 98.0 88.0
2 王五 97.0 87.0
3 赵六 96.0 NaN
4 韩七 NaN 86.0
另外使用merge函数的一个优势是,如果匹配的条件中存在重名字段,使用vlookup的话默认是只匹配第一项的,而merge则能够匹配所有项,方便我们后续手工筛选,防止漏掉数据。如下图中我们在df1中增加一个张三的数据项,使用内连接后就会出现2个张三的对碰结果。
姓名 语文
0 张三 99
1 李四 98
2 王五 97
3 赵六 96
4 张三 96
姓名 语文 数学
0 张三 99 89
1 张三 96 89
2 李四 98 88
3 王五 97 87
最后介绍一下,用merge函数来实现多个匹配条件的数据对碰,我们来看一下数据以及实现,总体还是很简单。
df1 = pd.read_excel("1.xlsx")
姓名 班级 语文
0 张三 1 99
1 李四 1 98
2 王五 1 97
3 赵六 1 96
4 张三 2 79
5 李四 2 78
6 王五 2 77
7 赵六 2 76
df2 = pd.read_excel("2.xlsx")
姓名 班级 数学
0 张三 1 89
1 李四 1 88
2 王五 1 87
3 韩七 1 86
pd.merge(df1, df2, on = ['姓名', '班级'])
姓名 班级 语文 数学
0 张三 1 99 89
1 李四 1 98 88
2 王五 1 97 87
上一篇: 磁盘调度算法
推荐阅读
-
屏幕录制功能的 Python 实现
-
算法 - 简单查找排序的 Python 实现
-
第一:C# 嵌入 Python 脚本进行图像处理并返回 C# 的构思和实现。
-
函数定义和使用的 Python 语法基础 - I. 函数定义
-
计算机毕业设计 基于 Flask + vue 的博客系统设计与实现 Python 毕业设计 Python 毕业设计题目 Flask 框架 Vue [含源代码 + 安装与调试]。
-
Python 学习笔记 - 函数 - 2.函数的基本操作
-
Python+Matplotlib 奇偶函数可视化的简单示例 - 奇异函数 定义:如果对于定义域中的任意 x,存在 f(-x) = -f(x),则称 f(x) 为奇异函数。奇函数的特征奇函数的图象与原点对称。
-
计算机毕业设计 基于深度学习的短视频内容理解与推荐系统的设计与实现 Python+Django+Vue 前后端分离,附源代码 讲座 文档
-
Python+Matplotlib 显示通用函数、变换和函数的简单示例
-
计算机毕业设计 基于 Python 的时尚女装抖音号评论数据分析系统的设计与实现 Python+Django+Scrapy 爬虫与源代码 讲座文档