join连接

本文详细介绍了Pandas库中数据帧(DataFrame)的连接操作,包括单个字段和多个字段的内连接与外连接。示例展示了如何使用`join()`函数进行不同类型的连接,并解释了默认的内连接行为以及如何指定外连接。此外,还提到了错误的连接方式示例,强调了在使用`join()`时指定连接类型的限制。
摘要由CSDN通过智能技术生成

单个字段链接:

df.join(df2,"user").show()

输出为:
+----+---+----+--------------------+---+
|user| id|type|           visittime|sex|
+----+---+----+--------------------+---+
|   1|  1| 助手1|2017-08-10 13:44:...|  男|
|   1|  2|APP1|2017-08-04 13:44:...|  男|
|   1| 11|APP1|2017-07-15 13:45:...|  男|
|   1| 12| 助手2|2017-07-07 13:45:...|  男|
|   2|  3| 助手1|2017-08-05 13:44:...|  女|
|   2|  4| 助手1|2017-08-07 13:44:...|  女|
|   2|  9|APP2|2017-08-11 13:44:...|  女|
|   2| 10| 助手1|2017-07-14 13:44:...|  女|
+----+---+----+--------------------+---+

多个字段链接:

using形式:df.join(df2,Seq("id","user"))  //因为类似于a join b using column1的形式
column类型:df.join(df2,df("user")===df2("user"))


使用外连接:df.join(df2,df("user")===df2("user"),"outer").show()
输出:

+----+----+----+--------------------+----+----+
|  id|user|type|           visittime|user| sex|
+----+----+----+--------------------+----+----+
|   1|   1| 助手1|2017-08-10 13:44:...|   1|   男|
|   2|   1|APP1|2017-08-04 13:44:...|   1|   男|
|  11|   1|APP1|2017-07-15 13:45:...|   1|   男|
|  12|   1| 助手2|2017-07-07 13:45:...|   1|   男|
|   5|   3|APP1|2017-08-02 13:44:...|null|null|
|   6|   3|APP1|2017-08-01 13:44:...|null|null|
|   7|   3| 助手2|2017-08-14 13:44:...|null|null|
|   8|   3|APP2|2017-08-03 13:44:...|null|null|
|   3|   2| 助手1|2017-08-05 13:44:...|   2|   女|
|   4|   2| 助手1|2017-08-07 13:44:...|   2|   女|
|   9|   2|APP2|2017-08-11 13:44:...|   2|   女|
|  10|   2| 助手1|2017-07-14 13:44:...|   2|   女|
|null|null|null|                null|   5|   男|
+----+----+----+--------------------+----+----+


我们可以看到,默认的链接方式是内链接,当然我们已可以使用其他的方式,通过第三个参数来指定。我们可以指定的类型有inner, outer, left_outer, right_outer, leftsemi类型,不过只有using形式指定两个及以上字段以及使用Column类型来链接的时候可以指定链接方式。

比如下面的方式是错误的:df.join(df2,"user","outer").show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值