使我遍历Excel工作表的函数更高效

时间:2019-07-18 18:06:52

标签: python-3.x pandas performance for-loop

我为应该在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)

1 个答案:

答案 0 :(得分:0)

通过执行以下操作:

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

您多次从零打开Excel文件。我想这就是导致您的代码运行缓慢的原因。

您可以使用以下方法在一个excel文件中阅读所有表格:

pd.read_excel(file, sheet_name=None)

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