Pandas连接合并函数merge()详解
在pandas中,merge函数用于将两个数据集按照某些规则合并为一个数据集。本文将详细讲解merge函数的用法和示例。
merge函数的分类
merge有四种连接方式:
- 内连接(inner join)
- 左连接(left join)
- 右连接(right join)
- 外连接(outer join)
merge函数的基本用法
merge函数的基本语法如下:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False)
参数说明:
- left: 需要合并的左侧数据集
- right: 需要合并的右侧数据集
- on: 两个数据集连接的列名,可指定多个列名
- how: 指定连接方式,默认是inner join
- left_on: 左侧数据集中连接列的列名
- right_on: 右侧数据集中连接列的列名
- left_index: 是否将左侧索引用作连接键
- right_index: 是否将右侧索引用作连接键
- sort: 按照连接键对合并后的数据集进行排序
下面通过两个例子说明merge函数的用法。
示例一
在该例子中,我们将合并两个不同的数据集。left数据集中包含了汽车品牌和证书,right数据集中包含了汽车品牌和颜色。我们根据汽车品牌将它们合并,得到一个包含证书、颜色和品牌的新数据集。
import pandas as pd
# 创建left数据集
data1 = {'cars': ['Toyota', 'Nissan', 'Honda'], 'certificate': ['yes', 'no', 'yes']}
left = pd.DataFrame(data = data1)
# 创建right数据集
data2 = {'cars': ['Toyota', 'Nissan', 'Honda'], 'color': ['red', 'blue', 'yellow']}
right = pd.DataFrame(data = data2)
# 按照cars列合并两个数据集
data_merge = pd.merge(left, right, on='cars')
print(data_merge)
输出结果如下:
cars | certificate | color | |
---|---|---|---|
0 | Toyota | yes | red |
1 | Nissan | no | blue |
2 | Honda | yes | yellow |
从结果中可以看到,两个数据集按照cars列进行了合并。
示例二
在该例子中,我们将合并两个包含相同信息的数据集,left_data数据集中包含了员工ID和姓名,right_data数据集中包含了员工ID和年龄。我们根据员工ID将它们合并,得到一个包含ID、姓名和年龄的新数据集。
import pandas as pd
# 创建left数据集
data1 = {'ID': [1, 2, 3, 4, 5], 'Name': ['Tom', 'Jerry', 'Andy', 'Mike', 'Carl']}
left_data = pd.DataFrame(data=data1)
# 创建right数据集
data2 = {'ID': [1, 2, 4, 5, 6], 'Age': [23, 35, 28, 32, 29]}
right_data = pd.DataFrame(data=data2)
# 按照ID列合并两个数据集
join_data = pd.merge(left_data, right_data, on='ID')
print(join_data)
输出结果如下:
ID | Name | Age | |
---|---|---|---|
0 | 1 | Tom | 23 |
1 | 2 | Jerry | 35 |
2 | 4 | Mike | 28 |
3 | 5 | Carl | 32 |
从结果中可以看到,两个数据集按照ID列进行了合并,且只保留了ID存在于两个数据集中的行。
总结
通过上述两个示例,我们可以发现merge函数的实现非常简单,只需要指定需要合并的数据集和连接键即可完成。merge函数支持不同的连接方式,可以根据实际情况选择最合适的连接方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas 连接合并函数merge()详解 - Python技术站