前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一分钟学会Python这个硬核操作

一分钟学会Python这个硬核操作

作者头像
前端皮皮
发布2020-11-26 10:49:10
2540
发布2020-11-26 10:49:10
举报
文章被收录于专栏:前端进阶学习交流

给定两个数据表:left, right,它们至少存在一个名字相同的列,名字假定为 key,如何连接这两个表?

Python提供了 merge 操作完成这个事情。

left 表的 key取值为:k0, k1, k2; right表的 key取值为:k0, k0, k1

1) 如果 left表的 key 指向 right表,则称此连接方式 how 为: left : 关系图表达为如下:

代码语言:javascript
复制
left    right
k0      k0
        k0
k1      k1
k2      NaN

2) 如果 right表的 key 指向 left表,则称此连接方式 how 为: right

代码语言:javascript
复制
right  left
k0      k0
k0      
k1      k1

3) 如果只拿 left 和 right表 共有 key建立关系 ,则称此连接方式 how 为: inner

代码语言:javascript
复制
left  right
k0     k0
k0     k0
k1     k1

4) 如果 left 和 right表的 key合并后再建立关系 ,则称此连接方式 how 为: outer

代码语言:javascript
复制
left  right
k0     k0
       k0
k1     k1
k2     NaN

以上就是merge中连接两个表时,根据key节点建立关系的 4 种方法。

下面通过举例验证

left 和 right 表数据:

代码语言:javascript
复制
left
   age1   key
0   10   k0
1   20   k1
2   30   k2

right
   age2   key
0   40   k0
1   50   k0
2   60   k1

how = 'left'

代码语言:javascript
复制
pd.merge(left,right,how='left',on='key')
   age1   key   age2
0   10   k0   40.0
1   10   k0   50.0
2   20   k1   60.0
3   30   k2   NaN

how = 'right'

代码语言:javascript
复制
pd.merge(left,right,how='right',on='key')
age1   key   age2
0   10   k0   40
1   10   k0   50
2   20   k1   60

how = 'inner'

代码语言:javascript
复制
pd.merge(left,right,how='inner',on='key')
age1   key   age2
0   10   k0   40
1   10   k0   50
2   20   k1   60

how = 'outer'

代码语言:javascript
复制
pd.merge(left,right,how='outer',on='key')
age1   key   age2
0   10   k0   40.0
1   10   k0   50.0
2   20   k1   60.0
3   30   k2   NaN

--------------------- End ---------------------

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT共享之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档