【发布时间】:2020-08-04 21:54:50
【问题描述】:
晚安,堆栈!
我遇到了一个与 Python 上的 pandas 库相关的问题。我试图在多个 excel 文件(带有多个工作表)上自动执行批量追加/连接。但是,我无法弄清楚如何简单地跳过不包含该指定 sheet_name 的文件。有任何想法吗?我的代码如下:
PS1:当代码读取每个 xlsx 文件中的每个工作表时,我必须插入一个中断来结束迭代。
PS2:错误是:“XLRDError: No sheet named ”。
PS3:我想出了一个办法:通过在 for 循环之后放置一个 try,并为错误设置一个异常。但是,为此,我需要让其余的代码正常工作。
import pandas as pd
import os
path = r'C:/Users/Thiago/Desktop/Backup/Python/Files test append xlsx'
files = os.listdir(path)
df = pd.DataFrame()
xlsx_files = [path + '\\' + f for f in files if f[-4:] == 'xlsx']
for i in xlsx_files:
xlsx = pd.ExcelFile(i)
for name in xlsx.sheet_names:
data = pd.read_excel(i, header = 1, sheet_name = "CSNSC 2020")
data['File'] = i
print(i)
df = df.append(data)
break
df = df[['Dt. Ref.','Convênio','Tipo de Atendimento','Venc.']]
df.head()
df = df.dropna(subset=['Convênio'])
df.head()
df.to_excel(r'C:/Users/Thiago/Desktop/Backup/Python/Files test append xlsx/out.xlsx')
谢谢!!
【问题讨论】: