已信任
Jupyter 服务器: 本地
Python 3: Not Started
[1]
import pandas as pd
import numpy as np
[6]
yuwen = pd.DataFrame({
'id':[1,2,3,4,5],
'name':['小明','小敏','小红','小黑','小王'],
'yuwenScore':[99,77,45,87,66]
})
yuwen
id name yuwenScore
0 1 小明 99
1 2 小敏 77
2 3 小红 45
3 4 小黑 87
4 5 小王 66
[7]
shuxue = pd.DataFrame({
'id':[1,2,3,4,5],
'name':['小明','小敏','小红','小黑','小王'],
'shuxueScore':[79,56,88,92,68]
})
shuxue
id name shuxueScore
0 1 小明 79
1 2 小敏 56
2 3 小红 88
3 4 小黑 92
4 5 小王 68
[8]
pd.merge(yuwen,shuxue,on='id')# 通过id合并
id name_x yuwenScore name_y shuxueScore
0 1 小明 99 小明 79
1 2 小敏 77 小敏 56
2 3 小红 45 小红 88
3 4 小黑 87 小黑 92
4 5 小王 66 小王 68
[9]
pd.merge(yuwen,shuxue,on=['id','name'])
id name yuwenScore shuxueScore
0 1 小明 99 79
1 2 小敏 77 56
2 3 小红 45 88
3 4 小黑 87 92
4 5 小王 66 68
[10]
# 新数据
shuxue = pd.DataFrame({
'id':[1,2,3,4,5,6],
'name':['小明','小敏','小红','小黑','小王','老李'],
'shuxueScore':[79,56,88,92,68,88]
})
shuxue
id name shuxueScore
0 1 小明 79
1 2 小敏 56
2 3 小红 88
3 4 小黑 92
4 5 小王 68
5 6 老李 88
[11]
pd.merge(yuwen,shuxue,on='id')# 通过id合并,取的是交集,相同的合并
id name_x yuwenScore name_y shuxueScore
0 1 小明 99 小明 79
1 2 小敏 77 小敏 56
2 3 小红 45 小红 88
3 4 小黑 87 小黑 92
4 5 小王 66 小王 68
[12]
pd.merge(yuwen,shuxue,on=['id','name'], how='inner')# 默认按照inner合并,合并交集
id name yuwenScore shuxueScore
0 1 小明 99 79
1 2 小敏 77 56
2 3 小红 45 88
3 4 小黑 87 92
4 5 小王 66 68
[13]
# how设置合并的方式,inner:键的交集;left左边的;right右边的;outer使用联合
pd.merge(yuwen,shuxue,on=['id','name'], how='right')# 按照右边的表shuxue合并
id name yuwenScore shuxueScore
0 1 小明 99.0 79
1 2 小敏 77.0 56
2 3 小红 45.0 88
3 4 小黑 87.0 92
4 5 小王 66.0 68
5 6 老李 NaN 88
[14]
yuwen = pd.DataFrame({
'id':[1,2,3,4,5,6],
'name':['小明','小敏','小红','小黑','小王','老陈'],
'yuwenScore':[99,77,45,87,66,99]
})
yuwen
id name yuwenScore
0 1 小明 99
1 2 小敏 77
2 3 小红 45
3 4 小黑 87
4 5 小王 66
5 6 老陈 99
[17]
pd.merge(yuwen,shuxue,on=['id','name'], how='outer')
id name yuwenScore shuxueScore
0 1 小明 99.0 79.0
1 2 小敏 77.0 56.0
2 3 小红 45.0 88.0
3 4 小黑 87.0 92.0
4 5 小王 66.0 68.0
5 6 老陈 99.0 NaN
6 6 老李 NaN 88.0
[-]