在实际工作中,我们经常会遇到各种表格的拆分与合并的情况。如果只是少量表,手动操作还算可行,但是如果是几十上百张表,最好使用Python编程进行自动化处理。下面介绍两种拆分案例场景,如何用Pandas实现Excel文件的合并。
下面介绍两个合并案例,
批量将不同的的工作簿合并到同一个Excel文件。
假设现在有3张表格,内部存储了各个班级的成绩数据。现在需要将其汇总到同一个工作簿中。
import pandas as pd
import glob
# 工作簿列表,将要合并的不同的工作簿找到
workbooks = glob.glob('三年*班.xlsx', recursive=True)
df = pd.DataFrame()
# 定义一个空列表,用于添加每个工作簿的df数据
df_lst = []
for i in workbooks:
df = pd.read_excel(i)
df_lst.append(df)
# 合并df_lst列表
df_all = pd.concat(df_lst)
# 合并导出
df_all.to_excel('三年级总成绩单.xlsx', index=False)
最终效果如下图:
批量将不同的工作表合并到同一个Excel文件
假设现在有一个工作簿,内部的不同工作表存储了各个班级的成绩数据。现在需要将其汇总到同一个工作簿中。如下图所示:
代码如下:
import pandas as pd
sheet_names = pd.ExcelFile('三年级分班成绩单.xlsx').sheet_names
# 定义一个空列表
df_lst = []
for sheet in sheet_names:
df = pd.read_excel('三年级分班成绩单.xlsx', sheet_name=sheet)
df_lst.append(df)
# 合并数据
df_all = pd.concat(df_lst)
df_all.to_excel('三年级总成绩单_合并.xlsx', index=False, sheet_name='总成绩')
调用ExcelFile()方法,会得到一个ExcelFile对象。该对象有一个很好用的sheet_names属性,它能够获取当前表格中所有工作表的名称,并以一个列表返回。利用for循环遍历每个工作表,并读取其中的数据。然后调用append()方法,将它们都合并到df_all,最后调用to_excel()方法,将合并后的数据导出为Excel文件,最后效果如下图: