在SQL中,JOIN操作通常用于合并两个或多个表。JOINS操作有很多种,pandas也提供了这些方法的实现,可以方便地组合Series或DataFrame。SQL语句提供了多种类型的JOINS:innerjoin、outerjoin、fulljoin、self-join、cross-join。本文将重点介绍自连接和交叉连接以及如何在PandasDataFrame中操作它们。自连接顾名思义,自连接是将DataFrame连接到自身的连接。即join的左右两边是同一个DataFrame。自连接通常用于查询分层数据集或比较同一DataFrame中的行。示例1:查询分层DataFrame假设您有下表,它表示一家公司的组织结构。manager_id列引用employee_id列并指示该员工向哪个经理报告。要获取员工的下属姓名,可以使用自连接查询表。我们将首先创建一个名为df_managers的新DataFrame,然后加入我们自己。第二个df_managers的manager_id在加入的时候需要删除,这样才不会报错。要获取经理信息,请使用how='left'。做一个左链接,在没有这个管理器的情况下得到NaN,最后只重命名该列。最终输出如下所示。ReginaPhilangi没有经理,这意味着她不向任何人汇报。她是最高管理者。注意:如果我们想排除ReginaPhilangi,我们可以使用innerjoin"how='inner'"我们也可以使用pandas.merge()函数在Pandas中执行自连接,如下所示。df_manager2的输出与df_manager相同。交叉连接交叉连接也是一种连接,可生成两个或多个表中的行的笛卡尔积。它将第一个表中的一行与第二个表中的每一行组合在一起。下表说明了将表df1连接到另一个表df2时交叉连接的结果。示例2:创建产品库存本示例的目标是获取服装店的库存,可以通过任何SKU(此处为颜色)组合。对于这个示例数据,DataFrame都没有索引,因此使用pandas.merge()函数很方便。您还可以使用pandas.concat()函数,结果与pandas.merge()函数相同。总结在本文中,我描述了如何在Pandas中使用串联操作,以及它们是如何在PandasDataFrame上执行的。这是一篇非常简单的介绍性文章,希望对您在处理数据时有所帮助。https://www.overfit.cn/post/e6adb313512d4bc5b4d4a855179ae701
