![Python+Office:轻松实现Python办公自动化](https://wfqqreader-1252317822.image.myqcloud.com/cover/834/40107834/b_40107834.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.9 工作表合并与拆分
在实际工作中,我们需要的数据一般分布在多个不同的工作表中,那么如何快速合并这些工作表是一个比较棘手的问题。利用Python程序不仅可以快速合并大量的工作表,还可以降低手工合并带来的误差。
3.9.1 单个工作簿多个工作表合并
单个工作簿多个工作表,即数据集仅由一个工作簿构成,但是其中有多个工作表。例如,我们这里需要合并的数据集是2020年10月技术部员工的考核数据,它只有一个工作簿,但是有两个工作表,分别有4条记录和5条记录,如图3-1所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_130.jpg?sign=1739162519-xTVGjJ9f7GbUXXis89jxWTjTI16Rb8DC-0-ce6c570350d954182115907c7073bf87)
图3-1 合并前数据集
下面将单个工作簿中的两个工作表数据合并到“技术部10月员工考核汇总.xlsx”工作表中,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_131.jpg?sign=1739162519-kH3ybwtu89Ole2GsRsINNrc5poRCPQgr-0-d21698659949474951ba7a1a16a6c5ea)
运行上述代码,输出结果如图3-2所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_132.jpg?sign=1739162519-sNlt0RpdmSt8RcWaJsHEaF4otEJsva6y-0-e9414898dc0b54500d92d3d3348cad39)
图3-2 合并后数据集
3.9.2 多个工作簿单个工作表合并
多个工作簿单个工作表,即数据集由两个及两个以上的工作簿构成,每个工作簿只有一个工作表。例如,我们这里需要合并的数据集是2020年9月的员工考核数据,它包含3个工作簿,每个工作簿有一个工作表,每个工作表有3条记录,如图3-3所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_133.jpg?sign=1739162519-soR6OM0MAXSxOifcMfBQZfMIa2wpdP6O-0-22bdde3ba112adef9893938268434695)
图3-3 合并前数据集
下面将3个工作簿中的数据合并到“9月员工考核汇总.xlsx”工作表中,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_134.jpg?sign=1739162519-E6wG2t5wuLYvMLvixxQBQTpYE6n3MBWz-0-f6fc23b7103b7003669a04fe1b68c092)
运行上述代码,输出结果如图3-4所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_135.jpg?sign=1739162519-EwHyVtKhpHTNdTGDl3bkteBHq49b4A8h-0-1087f7488c4e205d4fcfccbb9722fa65)
图3-4 合并后数据集
3.9.3 工作表按某一列拆分数据
在工作中,有时需要根据某个分类变量,对工作表中的数据按某一列进行拆分,如性别、年龄、籍贯等。例如,我们需要拆分的数据集是2020年9月技术部员工的考核数据,有9条记录,如图3-5所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_136.jpg?sign=1739162519-MgPnaVXddGtgEeMWSp2Qy5B2r9DAKmHU-0-998f8eb0692f93be186113b72be31673)
图3-5 拆分前数据集
下面对“9月技术部员工考核.xls”中的数据,根据员工的籍贯进行拆分,代码如下:
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_137.jpg?sign=1739162519-9Yw61Y4sxUjLwHdJaRl8C1fDFkGUlva4-0-2a96c0405ecdafa8e44b8b5a5bca28f0)
运行上述代码,输出结果如图3-6所示。
![img](https://epubservercos.yuewen.com/450204/20862583108963306/epubprivate/OEBPS/Images/txt004_138.jpg?sign=1739162519-Igui101DzcSmlkty3kn9nOAoqBPmDRl3-0-e2b361a480e8605777ba9e4bd43b4531)
图3-6 拆分后数据集