在 SQL 中常常会应用 JOIN 操作来组合两个或多个表。有很多种不同品种的 JOINS 操作,并且 pandas 也提供了这些形式的实现来轻松组合 Series 或 DataFrame。
SQL 语句提供了很多种 JOINS 的类型:
- 内连贯
- 外连贯
- 全连贯
- 自连贯
- 穿插连贯
在本文将重点介绍自连贯和穿插连贯以及如何在 Pandas DataFrame 中进行操作。
自连贯
顾名思义,自连贯是将 DataFrame 连贯到本人的连贯。也就是说连贯的右边和左边都是同一个 DataFrame。自连贯通常用于查问分层数据集或比拟同一 DataFrame 中的行。
示例 1:查问分层 DataFrame
假如有以下表,它示意了一家公司的组织构造。manager_id 列援用 employee_id 列,示意员工向哪个经理汇报。
要获取员工向谁汇报的姓名,能够应用自连贯查问表。
咱们首先将创立一个新的名为 df_managers 的 DataFrame,而后 join 本人。在 join 时须要删除了第二个 df_managers 的 manager_id,这样才不会报错。要获取经理的信息所以应用 how = ‘left’。进行左链接,如果没有这个经理则会失去 NaN,最初就是重命名列。
最终输入如下所示。Regina Philangi 没有经理,这意味着她不向任何一位经理汇报。她是最高管理者。
注:如果咱们想排除 Regina Philangi,能够应用内连贯 ”how = ‘inner'”
咱们也能够应用 pandas.merge () 函数在 Pandas 中执行自连贯,如下所示。df_manager2 的输入与 df_manager 雷同。
穿插连贯
穿插连贯也是一种连贯类型,能够生成两个或多个表中行的笛卡尔积。它将第一个表中的行与第二个表中的每一行组合在一起。下表阐明了将表 df1 连贯到另一个表 df2 时穿插连贯的后果。
示例 2:创立产品的库存
此示例的指标是获取服装店的库存,能够通过任意的 SKU(这里是色彩)取得组合。
这个示例数据种两个 DataFrame 都没有索引所以应用 pandas.merge() 函数很不便。
也能够应用 pandas.concat () 函数,与 pandas.merge () 函数雷同的后果。
总结
在本文中,介绍了如何在 Pandas 中应用连贯的操作,以及它们是如何在 Pandas DataFrame 中执行的。这是一篇非常简单的入门文章,心愿在你解决数据的时候有所帮忙。
https://www.overfit.cn/post/e6adb313512d4bc5b4d4a855179ae701