首页 > 解决方案 > 使我的遍历 excel 工作表的函数更高效

问题描述

我为一个应该搜索 excel 文件并操作数据帧的程序编写了以下函数,但是该函数非常慢,我不知道如何使它更有效。是否有另一种方法可以遍历比这更好的 Excel 工作表?

def read_masterfile(masterfile_path):
sheets_dict = pd.ExcelFile(masterfile_path).sheet_names
for sheet in sheets_dict:
    df = pd.read_excel(masterfile_path, sheet_name = sheet)
    print(sheet)
    print(df.columns)

user_input= input() 
masterfile_dir = (r"C:\Users\path\Desktop\July15\masterfile.xlsx")
if user_input == 'y': 
   calculated = read_masterfile(masterfile_dir)

标签: python-3.xpandasperformancefor-loop

解决方案


通过执行以下操作:

for sheet in sheets_dict:
    df = pd.read_excel(masterfile_path, sheet_name = sheet)

您从零多次打开 excel 文件。我猜这是导致您的代码变慢的原因。

您可以使用以下方法读取一个 Excel 文件中的所有工作表:

pd.read_excel(file, sheet_name=None)

这将返回一个字典,其中键是工作表名称,值是数据框。


推荐阅读