这里我们使用merge进行多表连接操作
import pandas as pd
# 创建示例数据
data1 = {'key': ['A', 'B', 'C', 'D'],
'value1': [1, 2, 3, 4]}
data2 = {'key': ['B', 'D', 'E', 'F'],
'value2': [5, 6, 7, 8]}
df1 = pd.DataFrame(data1)
print("原始A表:")
print(df1)
df2 = pd.DataFrame(data2)
print("原始B表:")
print(df2)
# 使用merge函数进行连接操作
result_inner = pd.merge(df1, df2, on='key', how='inner') # 内连接,只返回左右两个表都有的记录
result_left = pd.merge(df1, df2, on='key', how='left') # 左连接,返回左表有的,同时右表有的记录,以左表为主
result_right = pd.merge(df1, df2, on='key', how='right') # 右连接,返回右表有的,同时左表有的记录,以右表为主
result_outer = pd.merge(df1, df2, on='key', how='outer') # 外连接,返回全部记录,没有的标为NaN值
# 打印结果
print("内连接:")
print(result_inner)
print("\n左连接:")
print(result_left)
print("\n右连接:")
print(result_right)
print("\n外连接:")
print(result_outer)
我们看看结果,这是原始的两个表:
当使用内连接时,只返回左右两个表都有的记录
当使用左连接时,返回左表有的,同时右表有的记录,以左表为主
当使用右连接时,返回右表有的,同时左表有的记录,以右表为主
当使用外连接时,返回全部记录,没有的标为NaN值