如何使用 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
dataframe2:要合并的数据框对象。
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 |
输出