当前位置: 首页>>技术教程>>正文


Python - 如何使用 Pandas 进行vLookup

技术教程 , , 去评论
Vlookup本质上用于垂直排列的数据。 Vlookup是一种操作,用于根据某些条件合并两个不同的数据表,要求在两个表之间必须至少有一个公共属性(列)。执行完此操作后,我们将获得一个表,其中包含来自两个表中的所有数据。

我们可以用merge()函数在 Pandas 中执行Vlookup。合并函数(merge)执行与SQL中Join相同的工作,即针对表1和表2执行合并操作。合并2个表的方式可能不同。

语法:dataframe.merge(dataframe1, dataframe2, how, on, copy, indicator, suffixes, validate)

 

参数:
datafram1:要合并的dataframe对象。
dataframe2:要合并的dataframe对象。
how:{left,right,inner,external}指定如何进行合并
on:指定用于执行连接的列或索引名称。
suffixes:后缀用于重叠的列。对于异常,使用值(False,False)。
validate:如果指定,则检查合并的类型.merge的类型可以是(one-one,one-many,many-one,many-many)。

让我们考虑要执行操作的2个表。第一个表包含学生的信息,第二列包含他们所报名的各个课程的信息。两个表中包含的信息如下。

import pandas as pd

 

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

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

 

print(df1)

print(df2)

输出

在不同类型的联接上执行Vlook

  • 内联接(Inner join):内部联接仅产生两行都满足条件的那些行的输出数据帧。要执行内部联接,您可以指定inner作为关键字。示例

    import pandas as pd

      

    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

    输出

  • 左联接(Left join):左联接操作提供第一个数据帧中的所有行以及第二个数据帧中匹配的行。如果第二个数据帧中的行不匹配,则将其替换为NaN。例:

    import pandas as pd

      

    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

    输出

     

  • 右连接(Right join):右连接有点类似于左连接,在右连接中,输出数据帧将包含第二个数据帧中的所有行和第一个数据帧中的匹配行。如果第一个数据帧中的行不匹配,则将其替换为NaN

    import pandas as pd

      

    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

    输出

  • 外联接(Outer join):外部联接提供了由两个数据帧中的行组成的输出数据帧。如果行匹配,将显示值,否则将显示不匹配的NaN。例:

    import pandas as pd

      

    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

    输出

 


参考资料

本文由《纯净天空》出品。文章地址: https://vimsky.com/article/4615.html,未经允许,请勿转载。