迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Pandas Vlookup

作者:迹忆客 最近更新:2024/04/23 浏览次数:

Vlookup 代表垂直查找。Vlookup 用于合并两个不同的表,两个表之间应该至少有一个共同的属性。

作为输出,我们将得到一个由两个表中的数据组成的表。这个过程类似于 SQL 中的 join() 查询。

要在 Python 中连接两个 DataFrame,我们可以使用 Pandas 库中提供的 merge() 方法。有很多方法可以合并两个表。


在 Pandas 中使用 Inner Join 执行 Vlookup

Inner join 合并表中的那些行,这些行具有匹配的键值。它返回两个表中满足条件的所有行。

在下面的示例中,我们打开了两个表。Student 表由 ST_IDST_NAMEDepartment 列组成。

另一个是 Course 表,其中包含有关学生注册的课程的信息。课程表的列是 ST_IDCourse

我们通过使用 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)

输出:

上一篇:绘制 Pandas 中的 Series

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas 中的散点矩阵

发布时间:2024/04/23 浏览次数:105 分类:Python

本教程演示了如何使用 scatter_matrix 函数在 Pandas 中创建散点图。

Pandas 中的 GroupBy 应用

发布时间:2024/04/23 浏览次数:181 分类:Python

本文演示了什么是 GroupBy-Apply 行为以及如何在 Pandas 中按数据分组和应用函数。

如何从 Pandas 的日期时间列中提取月份和年份

发布时间:2024/04/23 浏览次数:124 分类:Python

我们可以分别使用 dt.year()和 dt.month()方法从 Datetime 列中提取出年和蛾。我们还可以使用 pandas.DatetimeIndex.month 以及 pandas.DatetimeIndex.year 和 strftime()方法提取年份和月份。

Pandas 填充 NaN 值

发布时间:2024/04/23 浏览次数:186 分类:Python

本教程解释了我们如何使用 DataFrame.fillna()方法用指定的值填充 NaN 值。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便