Pandas教程之三十八:如何使用 pandas 在 Python 中执行 vLookup

如何使用 pandas 在 Python 中执行 vLookup

Vlookup 主要用于垂直排列的数据。Vlookup 是一种根据某些条件合并两个不同数据表的操作,其中两个表之间必须至少有一个共同属性(列)。执行此操作后,我们得到一个表,其中包含两个表中的所有数据,并且数据匹配。
我们可以使用 merge() 函数在 pandas 中执行 Vlookup。merge 函数的作用与 SQL 中的 Join 相同。我们可以针对表 1 或表 2 执行合并操作。合并两个表的方法可以不同。

 

语法: dataframe.merge(dataframe1, dataframe2, how, on, copy, indicator, suffixes, verify)
参数: 
datafram1:要合并的数据框对象。da 
da​​taframe2:要合并的数据框对象。

how  {left, right, inner, outer} 指定如何进行合并 
on:指定用于执行连接的列或索引名称。
suffixes 用于重叠列的后缀。对于异常使用值(False,False)。
validate 如果指定,则检查合并的类型。合并的类型可以是(一对一、一对多、多对一、多对多)。 
 

让我们考虑要对其执行操作的 2 个表。第一个表包含学生信息,第二列包含他们所注册的各个课程的信息。下面的代码显示了两个表中包含的信息。
 

  • Python3

# import pandas

import pandas as pd

  

# read csv data

df1 = pd.read_csv('Student_data.csv')

df2 = pd.read_csv('Course_enrolled.csv')

  

print(df1)

print(df2)

输出
 

对不同类型的连接执行 Vlook

内连接:

内连接仅生成那些在两行中都满足条件的行的输出数据框。要执行内连接,您可以在 how 中指定inner作为关键字。
示例:

 

Python3

# import pandas

import pandas as pd

   

# read csv data

df1 = pd.read_csv('Student_data.csv')

df2 = pd.read_csv('Course_enrolled.csv')

   

inner_join = pd.merge(df1, 

                      df2, 

                      on ='Name', 

                      how ='inner')

inner_join

输出

左连接:

左连接操作提供第一个数据框中的所有行和第二个数据框中的匹配行。如果行在第二个数据框中不匹配,则它们将被 NaN 替换。
示例:

 

Python3

# import pandas

import pandas as pd

   

# read csv data

df1 = pd.read_csv('Student_data.csv')

df2 = pd.read_csv('Course_enrolled.csv')

   

Left_join = pd.merge(df1, 

                     df2, 

                     on ='Name', 

                     how ='left')

Left_join

  • 输出:

右连接:

右连接有点类似于左连接,其中输出数据框将由第二个数据框中的所有行和第一个数据框中的匹配行组成。如果行在第一行中不匹配,则它们将被 NaN 替换
 

Python3

# import pandas

import pandas as pd

   

# read csv data

df1 = pd.read_csv('Student_data.csv')

df2 = pd.read_csv('Course_enrolled.csv')

   

Right_join = pd.merge(df1, 

                      df2, 

                      on ='Name',

                      how ='right')

Right_join

输出

外连接:

外连接提供由两个数据框的行组成的输出数据框。如果行匹配,则显示值,否则,对于不匹配的行,将显示 NaN。
示例:

 

Python3

# import pandas

import pandas as pd

   

# read csv data

df1 = pd.read_csv('Student_data.csv')

df2 = pd.read_csv('Course_enrolled.csv')

   

Outer_join = pd.merge(df1, 

                      df2, 

                      on ='Name', 

                      how ='outer')

Outer_join

输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潜洋

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值