python实现vlookup匹配数据实战

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、DataFrame是什么?
  • 三、简单使用步骤
    • 1.引入库
    • 2.创建表
    • 3.数据匹配
    • 4.完整代码
  • 四、python对excel表格的vlookup使用步骤
    • 1.excel表展示
    • 2.引入库
    • 3.读取excel表
    • 4.数据匹配
    • 5.将匹配结果保存到excel
    • 6.完整代码
  • 五、merge函数参数详解
  • 总结


前言

一般来说,Excel能实现的操作,python都能实现,今天就来探究一下python实现Excel的vlookup吧!


一、pandas是什么?

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、DataFrame是什么?

DataFrame是类似表的结构,由多个Series组成的DataFrame 是一个二维的数组结构,类似二维数组。

DataFrame 构造方法如下:
pandas.DataFrame( data, index, columns, dtype, copy)
参数说明:
data:一组数据(ndarray、series, map, lists, dict 等类型)。
index:索引值,或者可以称为行标签。
columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。
dtype:数据类型。
copy:拷贝数据,默认为False。
重点参考原文出处:https://www.cnblogs.com/JINGSOLO/p/16882504.html

三、简单使用步骤

1.引入库

代码如下:

import pandas as pd 

2.创建表

创建表1,代码如下:

# 创建表1
df1 = pd.DataFrame({
        'A': ['apple', 'banana', 'cherry', 'kiwi'],
        'B': [30, 20, 25, 15]
    })
print(df1)

结果展示:
表1

创建表2,代码如下:

# 创建表2
df2 = pd.DataFrame({
        'A': ['banana', 'cherry', 'kiwi', 'pear'],
        'C': ['good', 'better', 'best', 'bad'],
        'D': ['1', 'better', 'best', 'bad']
    })
print(df2)

结果展示:
表2

3.数据匹配

使用VLOOKUP将表2中的’C’列数据匹配到表1中,代码如下:

# 使用VLOOKUP将表2中的'C'列数据匹配到表1中
df3 = df1.merge(df2[['A', 'C']], on='A', how='left')
# 将匹配结果输出
print(df3)

结果展示:
匹配结果1

# 使用VLOOKUP将表2中的'C'列和'D'列数据匹配到表1中
df3 = df1.merge(df2[['A', 'C','D']], on='A', how='left')
# 将匹配结果输出
print(df3)

结果展示:
匹配结果2

4.完整代码

 # 创建表1
df1 = pd.DataFrame({
        'A': ['apple', 'banana', 'cherry', 'kiwi'],
        'B': [30, 20, 25, 15]
    })
# 创建表2
df2 = pd.DataFrame({
        'A': ['banana', 'cherry', 'kiwi', 'pear'],
        'C': ['good', 'better', 'best', 'bad'],
        'D': ['1', 'better', 'best', 'bad']
    })
# 使用VLOOKUP将表2中的'C'列和'D'列数据匹配到表1中
df3 = df1.merge(df2[['A', 'C','D']], on='A', how='left')
# 将匹配结果输出
print(df3)

结果展示:
匹配结果2

四、python对excel表格的vlookup使用步骤

1.excel表展示

表1:
python实现vlookup匹配数据实战_第1张图片
表2:

python实现vlookup匹配数据实战_第2张图片

2.引入库

代码如下:

#导入库
import pandas as pd

3.读取excel表

读取表1,代码如下:

#读取表1:
df_1 = pd.read_excel(r"./表1.xlsx", sheet_name="Sheet1")
print(df_1)

结果如下:
表1
读取表2,代码如下:

#读取表2:
df_2 = pd.read_excel(r"./表2.xlsx", sheet_name="Sheet1")
print(df_2)

结果如下:
表2

4.数据匹配

使用VLOOKUP将表2中的性别列数据匹配到表1中,代码如下:

#使用VLOOKUP将表2中的性别列数据匹配到表1中
'''
merge(df_2[['姓名','性别']]表示匹配表2的数据范围、想拿到的数据为'性别',on='姓名'表示按姓名匹配,
how='left'表示左连接、即表1数据固定不变、表2的'性别'列根据匹配结果添加到表1的最右侧)
'''
df_3 = df_1.merge(df_2[['姓名','性别']],on='姓名',how='left')
print(df_3)

结果如下:
匹配结果

5.将匹配结果保存到excel

保存到excel,代码如下:

#将结果数据保存到新表
df_3.to_excel(r"./结果表.xlsx", encoding='utf-8', sheet_name="Sheet1", index=False)
print("保存成功")

结果如下:
保存结果
结果表展示:
python实现vlookup匹配数据实战_第3张图片

6.完整代码

#导入库
import pandas as pd

#读取表1:
df_1 = pd.read_excel(r"./表1.xlsx", sheet_name="Sheet1")
# print(df_1)
#读取表2:
df_2 = pd.read_excel(r"./表2.xlsx", sheet_name="Sheet1")
# print(df_2)
#使用VLOOKUP将表2中的性别列数据匹配到表1中
df_3 = df_1.merge(df_2[['姓名','性别']],on='姓名',how='left')
print(df_3)
#将结果数据保存到新表
df_3.to_excel(r"./结果表.xlsx", encoding='utf-8', sheet_name="Sheet1", index=False)
print("保存成功")

备注:"./表1.xlsx"表示路径,当前表1与所写代码在同一个文件目录下,如图所示:
python实现vlookup匹配数据实战_第4张图片

五、merge函数参数详解

pd.merge函数是把两个数据框按某种方式拼接起来:

pd.merge(left, right, how= 'inner', on=None, left_on=None, right_on=None, left_index = False, right_index = False, sort = False, suffixes=('_x', '_y'), copy = True, indicator = False, validate=None)
参数详解:
left:待拼接的左侧数据框。
right:待拼接的右侧数据框。
how:左右两个数据框的连接方式。可选‘left’、‘right’、‘outer’、‘inner’,默认为inner。
on:左右两个待拼接数据框有共同列名,且按该列拼接两个数据框时使用该参数。
left_on:拼接两个数据框时,左数据框对应连接关键字(可为列表)。
right_on:拼接两个数据框时,右数据框对应连接关键字(可为列表)。
left_index:若为True,则按左数据框的索引连接两个数据框。  
right_index:若为True,则按右数据框的索引连接两个数据框。  
sort:按字典顺序通过连接键对结果数据框进行排序。  
suffixes:为左右数据框中重复列名定义后缀。默认加(‘x’,‘y’)。
重点参考了CSDN博主「阿黎逸阳」的原创文章《数据分析常用函数—pd.merge》原文链接:https://blog.csdn.net/qq_32532663/article/details/108500638

总结

以上就是今天要讲的内容,本文仅仅简单介绍了pandas的vlookup使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法,更多的学习等待我们继续探究,朋友们可以多点尝试使用python解决问题。

你可能感兴趣的:(python,pandas,数据分析,excel)