使用pd.merge()合并
- 类似 MySQL 中表和表直接的合并
- merge与concat的区别在于,merge需要依据某一共同的行或列来进行合并
- 使用pd.merge()合并时,会自动根据两者相同column名称的那一列,作为key来进行合并
- 每一列元素的顺序不要求一致
1. 一对一合并
df1 = pd.DataFrame({
"name":["张三","李四","王五"],
"id":[1,2,3],
"age":[22,33,44],
})
df2 = pd.DataFrame({
"id":[2,3,4],
"sex":["男","女","男"],
"job":["Saler","CEO","Programer"]
})
display(df1,df2)
|
name |
id |
age |
0 |
张三 |
1 |
22 |
1 |
李四 |
2 |
33 |
2 |
王五 |
3 |
44 |
|
id |
sex |
job |
0 |
2 |
男 |
Saler |
1 |
3 |
女 |
CEO |
2 |
4 |
男 |
Programer |
pd.merge(df1,df2)
|
name |
id |
age |
sex |
job |
0 |
李四 |
2 |
33 |
男 |
Saler |
1 |
王五 |
3 |
44 |
女 |
CEO |
df1.merge(df2)
|
name |
id |
age |
sex |
job |
0 |
李四 |
2 |
33 |
男 |
Saler |
1 |
王五 |
3 |
44 |
女 |
CEO |
2. 多对一合并
df3 = pd.DataFrame({
"name":["张三","李四","王五"],
"id":[1,2,2],
"age":[22,33,44],
})
df4 = pd.DataFrame({
"id":[2,3,4],
"sex":["男","女","男"],
"job":["Saler","CEO","Programer"]
})
display