数据分析和建模方面绝大部分的工作都是做数据处理,pandas是python标准库提供了一组高级的、灵活的、高效的核心算法和函数,能够轻松地将数据规整成适合机器学习建模的形式。
![629b937e727871ba073fd30c1e0afd9d.png](https://i-blog.csdnimg.cn/blog_migrate/f6567a03cc928871ee4a77cad587e248.jpeg)
pandas对象中的数据可通过一些内置的方法来合并,本文先给大家介绍一下数据的合并操作:pandas.merge。
pandas.merge的作用
pandas.merge 可根据一个或多个键将不同的dataframe中的行连接起来。使用方式如下:
![4ea7fe2746b7dddc8fbefa328b54c4fe.png](https://i-blog.csdnimg.cn/blog_migrate/c8b21af505848fa52ed1b3e65b0bca81.jpeg)
pandas.merge的参数介绍
merge函数大致有12种,具体含义如下:
- left: 参与合并左侧DataFrame对象
- right: 参与合并的右侧DataFrame对象
- on: 用于连接的列名。 必须在左侧和右侧DataFrame对象中找到。 如果未传递参数且left_index和right_index也为False,则DataFrame中的列的交集将被推断为连接键。
- left_on:左侧DataFrame中的列或索引级别用作键。 可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。
- right_on:左侧DataFrame中的列或索引级别用作键。 可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。
- left_index:如果为True,则使用左侧DataFrame中的索引(行标签)作为其连接键。 对于具有MultiIndex(分层)的DataFrame,级别数必须与右侧DataFrame中的连接键数相匹配。
- right_index: 与left_index功能相似。
- how: ‘left’, ‘right’, ‘outer’, ‘inner’,默认inner。
- sort:默认inner按字典顺序通过连接键对结果DataFrame进行排序。 默认为True,设置为False将在很多情况下显着提高性能。
- suffixes: 用于重叠列的字符串后缀元组。 默认为(‘x’,’ y’)。
- copy: 始终从传递的DataFrame对象复制数据(默认为True),即使不需要重建索引也是如此。
- indicator:将一列添加到名为merge的输出DataFrame,其中包含有关每行源的信息。merge是分类类型,并且对于其合并键仅出现在“左”DataFrame中的观察值,取得值为left_only,对于其合并键仅出现在“右”DataFrame中的观察值为right_only,并且如果在两者中都找到观察点的合并键,则为left_only。
pandas.merge实例
首先创建两个数据框,并赋予数据,分别命名为left,right。
import pandas as pdleft = pd.DataFrame({'key1': ['k0', 'k0', 'k1', 'k2'], 'key2': ['k0', 'k1', 'k0', 'k1'], 'A': ['0', '1', '2', '3'], 'B': ['0', '1', '2', '3']})right = pd.DataFrame({'key1': ['k0', 'k1', 'k1', 'k2'], 'key2': ['k0', 'k0', 'k0', 'k0'], 'C': ['0', '1', '2', '3'], 'D': ['0', '1', '2', '3']})
![5fd3f3d19270447478ded47c0d85a8b9.png](https://i-blog.csdnimg.cn/blog_migrate/fe0c8edff83d7606e0cba8ed2c13a1a3.jpeg)
使用左连接合并参数
# Use keys from left frame onlyleft_result = pd.merge(left, right, how='left', on=['key1', 'key2'])
![bdcb7f3eec8adea8512f6be1aa05eedc.png](https://i-blog.csdnimg.cn/blog_migrate/29601b3d9a9b03a4c83b5aeac665b128.jpeg)
使用左连接合并参数
# Use keys from right frame onlyright_result = pd.merge(left, right, how='right', on=['key1', 'key2'])
![609bdddcb11d678710425c1e283ffcc1.png](https://i-blog.csdnimg.cn/blog_migrate/8087ed970f2590e9fae930bfc2c0e7fb.jpeg)
使用外连接合并参数
# Use keys from outer frame onlyouter_result = pd.merge(left, right, how='outer', on=['key1', 'key2'])
![b3a3454c756fa30bfb8be2dec0b096b0.png](https://i-blog.csdnimg.cn/blog_migrate/be2778190c409d0161272fe029297da8.jpeg)
使用内连接合并参数
# Use keys from inner frame onlyinner_result = pd.merge(left, right, how='inner', on=['key1', 'key2'])
![8de5617c2480ea7328c149361daa85f0.png](https://i-blog.csdnimg.cn/blog_migrate/365d832a6f6004c4b6a3f5a7b271888a.jpeg)
好了,今天就到这,大家感兴趣的话,其他参数可以自己验证一下,如有疑问,欢迎关注留言!!!