【问题标题】:Making my function that iterates through excel sheets more efficient使我的遍历 excel 工作表的函数更高效
【发布时间】:2019-11-27 17:37:29
【问题描述】:

我为一个应该搜索 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.x pandas performance for-loop


    【解决方案1】:

    通过执行以下操作:

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

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

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

    pd.read_excel(file, sheet_name=None)
    

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

    【讨论】:

      猜你喜欢
      • 2020-03-12
      • 1970-01-01
      • 2012-08-21
      • 2016-08-02
      • 1970-01-01
      • 2013-08-17
      • 2020-04-05
      • 2014-11-15
      • 1970-01-01
      相关资源
      最近更新 更多