本文梳理了利用Python进行多表拼接的常用方法,并通过多表拼接实现接近1000万条数据记录汇总。
1. 表的横向拼接
表的横向拼接就是在横向将两个表依据公共列批接在一起,在Python中实现横向拼接利用的是merge()方法。
1.1 连接表的类型
连接表的类型关注的就是待连接的两个表都是什么类型,主要有3种情况:一对一、多对一、多对多。
- 一对一
一对一就是待连接的两个表的公共列是一对一的。
可以使用pd.merge()方法将表1和表2进行拼接,该方法会自动寻找两个表中的公共列,并将找到的公共列作为连接列。
import pandas as pddf = pd.DataFrame()#读取两个数据表df1 = pd.DataFrame(pd.read_excel("df1.xlsx"))df2 = pd.DataFrame(pd.read_excel("df2.xlsx"))#合并两个数据表df = pd.merge(df1,df2)#将合并的数据表保存到excelwriter = pd.ExcelWriter('df.xlsx', engine='xlsxwriter')df.to_excel(writer, 'Sheet1',index=0)writer.save()
- 多对一
多对一就是待连接的两个表的公共列不是一对一的,其中一个表的公共列有重复值,另一个表的公共列是唯一的。
如上表所示,df1中的学号是唯一的,但是df2中的学号不是唯一的,因此拼接结果就是保留df2中的重复值,且在df1中也增加重复值,代码如下所示。