1-merge
# merge
import pandas as pd
df1 = pd.DataFrame({'key': ['a', 'b', 'c'], 'data1': range(3)})
print(df1)
输出结果:
key data1
0 a 0
1 b 1
2 c 2
df2 = pd.DataFrame({'key': ['a', 'b', 'd'], 'data2': range(3)})
print(df2)
输出结果:
key data2
0 a 0
1 b 1
2 d 2
# 两个表做内连接
r = pd.merge(df1, df2)
print(r)
输出结果:
key data1 data2
0 a 0 0
1 b 1 1
# 左连接,以左表为基准
r = pd.merge(df1, df2, how="left") # 以左边的为准
print(r)
输出结果:
key data1 data2
0 a 0 0.0
1 b 1 1.0
2 c 2 NaN
#右连接,以右表为基准
r = pd.merge(df1,df2,how="right")
print(r)
输出结果:
key data1 data2
0 a 0.0 0
1 b 1.0 1
2 d NaN 2
2-concat
# merge
import pandas as pd
df1 = pd.DataFrame({'key': ['a', 'b', 'c'], 'data1': range(3)})
print(df1)
输出结果:
key data1
0 a 0
1 b 1
2 c 2
df2 = pd.DataFrame({'key': ['a', 'b', 'd'], 'data2': range(3)})
print(df2)
输出结果:
key data2
0 a 0
1 b 1
2 d 2
# concat
r1 = pd.concat([df1, df2], axis=0, sort=False) # axis是纵向连接
print(r1)
输出结果:
key data1 data2
0 a 0.0 NaN
1 b 1.0 NaN
2 c 2.0 NaN
0 a NaN 0.0
1 b NaN 1.0
2 d NaN 2.0
r2 = pd.concat([df1, df2], axis=1, sort=False) # axis是横向连接
print(r2)
输出结果:
key data1 key data2
0 a 0 a 0
1 b 1 b 1
2 c 2 d 2