
@R星校长
第1关:合并数据
Pandas提供了一套合并数据集操作的方法,本实训主要介绍merge()、concat()和combine_first()实现。
merge()
merge()可根据一个或者多个键将不同的DataFrame连接在一起,类似于SQL数据库中的合并操作。
| 参数名 | 说明 |
|---|---|
| left | 拼接左侧DataFrame对象 |
| right | 拼接右侧DataFrame对象 |
| on | 列(名称)连接,必须在左和右DataFrame对象中存在(找到)。 |
| left_on | 左侧DataFrame中的列或索引级别用作键,可以是列名、索引级名,也可以是长度等于DataFrame长度的数组。 |
| right_on | 右侧DataFrame中的列或索引级别用作键。可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。 |
| left_index | 如果为True,则使用左侧DataFrame中的索引(行标签)作为其连接键。 |
| right_index | 与left_index相似 |
| how | 它可以等于left, right, outer, inner. 默认inner。inner是取交集,outer取并集。 |
| sort | sort - 按照字典顺序通过连接键对结果DataFrame进行排序。 |
| suffixes | 用于追加到重叠列名的末尾。例如,左右两个DataFrame都有‘data’列,则结果中就会出现data_x和data_y |
| copy | 默认总是复制 |
在一个或多个键上合并两个DataFrame
left = pd.DataFrame({
'id':[1,2,3,4,5],
'Name': ['Alex', 'Amy', 'Alice', 'Alice', 'Ayoung'],
'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
'id':[1,2,3,4,5],
'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
'subject_id':['sub2','sub4','sub3','sub6','sub5']})
pd.merge(left,right,on="id")
pd.merge(left,right,on=["id","subject_id"])
输出:
id Name_x subject_id_x Name_y subject_id_y
0 1 Alex sub1 Billy sub2
1 2 Amy sub2 Brian sub4
2 3 Alice sub4 Bran sub3
3 4 Alice sub6 Bryce sub6
4 5 Ayoung sub5 Betty sub5
---------------------------------------------
id Name_x subject_id Name_y
0 4 Alice sub6 Bryce
1 5 Ayoung sub5 Betty
使用“how”参数
如何合并参数指定如何确定哪些键将被包含在结果表中。如果组合键没有出现在左侧或右侧表中,则连接表中的值将为NA。
left = pd.DataFrame({
'id':[

本文介绍了Pandas数据预处理中的合并数据方法,包括merge()、concat()和combine_first()函数的使用。通过实例展示了如何沿特定轴进行纵向和横向合并,以及如何处理缺失值。同时提出了编程任务,要求读者根据提示完成数据合并操作。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



