Python-Pandas进行批量Excel文件、多Sheet表合并

1、按内容合并一个Excel表中的多个Sheet表至一个Sheet

此方法适用于对一个Excel文件中的多个Sheet表内容合并至一个Sheet中(新建),也可选择固定的列进行合并。

import xlrd
import pandas as pd
from openpyxl import load_workbook

excel_name = r'***************'
# 写入文件位置,*处填入文件位置

Wb = xlrd.open_workbook(excel_name) 
# 获取工作表中所有的表格

Sheets = Wb.sheet_names()
# 获取工作表中所有表格名

Merge_data = pd.DataFrame()
# 建立空DataFrame,存储数据

for i in range(len(Sheets)):  
# 循环遍历所有Sheets
    
    df = pd.read_excel(excel_name, sheet_name=i, index=False, encoding='utf8')
    df1= df[["#######","#######"]]
# 选择所需要的列,如果是一列,则只需传入一个列名;如果同时选择多列,则传入多个列名即可,多个列名用列表形式封存
# 如果多个excel文件中的列名一致,则不需此项
# #处填入列名
    Merge_data = Merge_data.append(df1)

#保存为新的Excel文件,且所有数据在一个Sheet中
Merge_data.to_excel(r'****************')

2、按内容合并文件夹中的所有Excel文件至一个Excel中

此方法适用于对一个文件夹中的所有Excel文件的数据合并至一个Excel(新建)的过程,也可选择固定的列进行合并。

import os
import pandas as pd

os.chdir(r'=============')
# 写入文件夹位置,=处填入文件夹位置

Result = pd.DataFrame()
# 建立空DataFrame,存储数据

List_df = []
# 建立空List,用于存储每个Excel中的数据
Check_list = []
# 检验列表,用于检验数据是否完整
for Excel_name in os.listdir():
    df = pd.read_excel(Excel_name)
# 若Excel表中存在多个Sheet表,需指定需要合并的Sheet表名
# df = pd.read_excel(Excel_name,sheet_name = +++)

    Check_list.append(df.shape[0])
    df = df[["#######","#######"]]
# 选择所需要的列,如果是一列,则只需传入一个列名;如果同时选择多列,则传入多个列名即可,多个列名用列表形式封存
# 如果多个excel文件中的列名一致,则不需此项
# #处填入列名

    List_df.append(df)
    
print(sum(check_list))
Merge_data = Result.append(List_df)
print(Merge_data.shape[0])

#保存为新的Excel文件,且所有数据在一个Sheet中
Merge_data.to_excel(r'***************') 

3、按内容合并文件夹中的所有Excel至一个Excel中的不同Sheet

此方法适用于对一个文件夹中的所有Excel文件的数据合并至一个Excel(新建)中不同Sheet表的过程,其中每一个Sheet对应文件夹中的一个Excel文件,也可选择固定的列进行合并。

import os
import pandas as pd

os.chdir(r'=============')
# 写入文件夹位置,=处填入文件夹位置

Result = pd.ExcelWriter(r'***********')
# 使用ExcelWriter()函数将多个文件分别导出到不同Sheet中,*处填入写入文件位置

for name in os.listdir():
    df = pd.read_excel(name)
    df = df[["#######","#######"]]
# 选择所需要的列,如果是一列,则只需传入一个列名;如果同时选择多列,则传入多个列名即可,多个列名用列表形式封存
# 如果多个excel文件中的列名一致,则不需此项
# #处填入列名

    df.to_excel(Result,sheet_name=name)
# 按文件夹中各Excel的文件名作为合并后相应的Sheet名字

Result.save()  

Pandas库中ExcelWriter()函数的用法如下:

Python-Pandas进行批量Excel文件、多Sheet表合并_第1张图片

你可能感兴趣的:(办公自动化,python,数据分析,pandas,excel)