引言
说到数据表拼接,就不得不提一下 SQL ,对于熟悉 SQL 的同学来讲,这并不是一个难以理解的概念,数据表之间的关系可以分为以下这三种:
一对一
两个表之间的公共列是一对一的。
这里的示例我们就不用图片了,直接使用代码来做展示,原因嘛就是小编懒的画了:
import pandas as pd
df1 = pd.read_excel("table_join_exp.xlsx", sheet_name='Sheet1')
print(df1)
# 输出内容
编号 姓名 分数
0 100 小明 96
1 200 小红 48
2 300 小王 72
3 400 小刚 72
df2 = pd.read_excel("table_join_exp.xlsx", sheet_name='Sheet2')
print(df2)
# 输出内容
编号 班级
0 100 1
1 200 2
2 300 3
3 400 4
这里可以很直观的看到,这两个表的编号是公共列,并且唯一对应。
如果我们要讲这两个表进行连接操作,需要使用 merge() 方法:
print(pd.merge(df1, df2))
# 输出内容
编号 姓名 分数 班级
0 100 小明 96 1
1 200 小红 48 2
2 300 小王 72 3
3 400 小刚 72 4
在我们使用 merge() 方法的时候, merge() 方法会自动寻找两个表中的公共列,并且自动的进行对应操作。
一对多
两个表之间的公共列不是一对一的,而是其中一个表的公共列是唯一的,另一个表的公共列则会有重复的数据。
import pandas as pd
df1 = pd.read_excel("table_join_exp.xlsx", sheet_name='Sheet1')
print(df1)
# 输出内容
编号 姓名 分数
0 100 小明 96
1 200 小红 48
2 300 小王 72
3 400