点击上方“Python读数”,选择“星标”公众号
重磅干货,第一时间送达
为了方便维护,一般公司的数据在数据库内都是分表存储的,比如用一个表存储所有用户的基本信息,一个表存储用户的消费情况。所以,在日常的数据处理中,经常需要将两张表拼接起来使用,这样的操作对应到SQL中是join
,在Pandas中则是用merge
来实现。这篇文章就讲一下merge
的主要原理。
上面的引入部分说到merge
是用来拼接两张表的,那么拼接时自然就需要将用户信息一一对应地进行拼接,所以进行拼接的两张表需要有一个共同的识别用户的键(key)。总结来说,整个merge
的过程就是将信息一一对应匹配的过程,下面介绍merge
的四种类型,分别为'inner'
、'left'
、'right'
和'outer'
。
inner
merge
的'inner'
的类型称为内连接,它在拼接的过程中会取两张表的键(key)的交集进行拼接。什么意思呢?下面以图解的方式来一步一步拆解。
首先我们有以下的数据,左侧和右侧的数据分别代表了用户的基础信息和消费信息,连接两张表的键是userid
。
![9bec103af1944f56dc486206a3447aa5.png](https://i-blog.csdnimg.cn/blog_migrate/d7379269e218682bc14ba0abde6aefad.png)
现在用'inner'
的方式进行merge
In [6]: df_1.merge(df_2,how='inner',on='userid')Out[6]: userid age payment0 a 23 20001 c 32 3500
过程图解:
①取两张表的键的交集,这里df_1
和df_2
的userid
的交集是{a,c}