关于python 合并带个多个sheet 的excel 表格
本帖最后由 weiyideid823 于 2021-9-15 23:03 编辑请教下大神,我在已实现case 1 的情况下,如何改变才能实现case2?
case1 : 实现合并200个excel 表,但是每个excel 表仅含有一个sheet
case2:实现合并200个excel 表,但是每个excel 表含有5个sheet,且各个excel 表的1-5个sheet 需相应合并,即合并之后的总表依然含5 个sheet
我case1 的代码如下:
import pandas as pd
import os
import time
# 获取当前路径及路径下的所有文件
path = os.getcwd()
files = os.listdir(path)
Output = pd.DataFrame()
# 获取路径下文件格式
for filename in files:
filetype = filename.split(".")
# 遍历表格格式
if filetype in ["xlsx","xls","xlsm"]:
sheetnames = pd.ExcelFile(filename).sheet_names
for sheetname in sheetnames:
content = pd.read_excel(filename, sheetname)
len_Content = content.shape
Output=Output.append(content)
elif filetype == "csv":
content = pd.read_csv(filename)
len_Content = content.shape
Output = Output.append(content)
Output.to_excel(path + "\Output.xlsx")
两百个表的 五个对应位置的 sheet 名称都相同吗?
相同的话直接 for 循环遍历 sheet_names 表,内部在来个 for 循环 分别读取 200 个表
第一次循环将表全部读取后,用 pd.concat 函数全部拼接起来即可,
相当于执行五次大循环,大循环内每次小循环读取 200 次表 ,全部读取完后用 pd.concat 拼接
试试看吧~
Twilight6 发表于 2021-9-16 10:15
两百个表的 五个对应位置的 sheet 名称都相同吗?
相同的话直接 for 循环遍历 sheet_names 表,内部在 ...
都相同的
200 个excel 表都包含5个相同sheet 名,然后需要做的是将200个表中相同sheet 名的sheet 合并成一个输出一个总表,总表依然含有5个sheet
页:
[1]