在日常工作中经常碰到表头相同的数据,并且需要将多张表合并起来进行数据分析,当表格较多时,效率比较低,今天演示下如何用 Python 合并多张 Excel 表来解放双手。
1. 合并多张 Excel 表至同一个表
如下图有两张相同的表头的 Excel 表,如何将其合并至一个表
import osimport pandas as pdpwd = "/Users/aaaa/Desktop/3333/21" # 获取文件目录# 新建列表,存放文件名file_list = []# 新建列表存放每个文件数据dfs = []for root, dirs, files in os.walk(pwd): # root代表正在遍历的文件夹的名字,dirs代表记录正在遍历的文件夹下的子文件夹集合,files代表记录正在遍历的文件集合。 for file in files: file_path = os.path.join(root, file)# 使用os.path.join得到全路径 file_list.append(file_path) #将遍历的文件夹名称添加到列表 df = pd.read_excel(file_path) # 将excel转换成DataFrame dfs.append(df) df = pd.concat(dfs) # 将多个DataFrame合并为一个print(df)df.to_excel('/Users/aaaa/Desktop/3333/result2.xls', index=False) #输出excel文件
2. 将 Excel 中多个 sheet 合并至一张表
一张表中有两张sheet,如何将两张 sheet 的内容合并到一张表
import osimport pandas as pdexcel_path =r"/Users/aaaa/Desktop/3333" #获取文件夹目录excel_name = r"test_excel_sheet.xlsx" #获取数据源所在excel名称excel_file_name = os.path.join(excel_path,excel_name ) # 使用os.path.join得到全路径excel_file = pd.ExcelFile(excel_file_name) data = pd.concat([pd.read_excel(excel_file,sheet_name= name) #使用for循环和pd.concat将excel的多个sheet合并在一起 for name in excel_file.sheet_names] ,ignore_index= True )print(data)data.to_excel("/Users/aaaa/Desktop/3333/2.xlsx",index=False) #输出excel文件
![e2f0d96f5977fd228b4f42c8ea6c95da.png](https://i-blog.csdnimg.cn/blog_migrate/20825f2f0e06e1f8181299fed136d4c4.png)