Pandas Vlookup
-
在 Pandas 中使用
Inner Join
执行 Vlookup -
在 Pandas 中使用
Left Join
执行 Vlookup -
在 Pandas 中使用
Right Join
执行 Vlookup -
在 Pandas 中使用
Outer Join
执行 Vlookup
Vlookup
代表垂直查找。Vlookup 用于合并两个不同的表,两个表之间应该至少有一个共同的属性。
作为输出,我们将得到一个由两个表中的数据组成的表。这个过程类似于 SQL 中的 join()
查询。
要在 Python 中连接两个 DataFrame,我们可以使用 Pandas 库中提供的 merge()
方法。有很多方法可以合并两个表。
在 Pandas 中使用 Inner Join
执行 Vlookup
Inner join
合并表中的那些行,这些行具有匹配的键值。它返回两个表中满足条件的所有行。
在下面的示例中,我们打开了两个表。Student
表由 ST_ID
、ST_NAME
和 Department
列组成。
另一个是 Course
表,其中包含有关学生注册的课程的信息。课程表的列是 ST_ID
和 Course
。
我们通过使用 Pandas 对象调用 merge()
方法来执行 inner join
,并传递了两个表、合并表的列名和指定的 inner join
。
这两个表将根据 ST_ID
值组合成一个表作为输出。
如果学生表中的 ST_ID
值与课程表的 ST_ID
值匹配的条件,则将选择这些记录进行合并。这里的 ST_ID
就像 SQL 中的外键一样工作。
#Python 3.x
import pandas as pd
student = pd.read_csv('student.csv')
course = pd.read_csv('Course.csv')
print(student)
print(course)
inner_join = pd.merge(student, course, on ='ST_ID', how ='inner')
print(inner_join)
输出:
在 Pandas 中使用 Left Join
执行 Vlookup
Left join
的工作方式类似于 inner join
,但唯一的区别是它包括所有左表/第一个表行和第二个表的匹配行。在下面的示例中,我们通过在 merge()
方法调用中指定 left
来执行 left join
。
作为输出,我们可以看到所有匹配的记录,加上左表中的额外记录也包含在最终表中。如果在第二个表中没有找到匹配的记录,则该行的值将是 NaN
(不是数字)。
#Python 3.x
import pandas as pd
student = pd.read_csv('student.csv')
course = pd.read_csv('Course.csv')
print(student)
print(course)
left_join = pd.merge(student, course, on ='ST_ID', how ='left')
print(left_join)
输出:
在 Pandas 中使用 Right Join
执行 Vlookup
右连接
与左连接
相反。右连接
就像内连接
;但是,唯一的区别是它包括所有正确的表/第二个表行和两个表的匹配行。
下面的示例通过在 merge()
方法调用中指定 right
来执行 right join
。作为输出,我们可以看到所有匹配的记录以及右表中的额外记录都包含在最终表中。
如果在第一个表中没有找到匹配的记录,则该行的值将是 NaN
(不是数字)。
#Python 3.x
import pandas as pd
student = pd.read_csv('student.csv')
course = pd.read_csv('Course.csv')
print(student)
print(course)
right_join = pd.merge(student, course, on ='ST_ID', how ='right')
print(right_join)
输出:
在 Pandas 中使用 Outer Join
执行 Vlookup
外连接
是左连接和右连接的组合。它结合了左表和右表中的所有行。
如果没有找到匹配的值,NaN
将出现在该行中。
#Python 3.x
import pandas as pd
student = pd.read_csv('student.csv')
course = pd.read_csv('Course.csv')
print(student)
print(course)
outer_join = pd.merge(student, course, on ='ST_ID', how ='outer')
print(outer_join)
输出:
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn