python-3.x - 使我的遍历 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)
解决方案
通过执行以下操作:
for sheet in sheets_dict:
df = pd.read_excel(masterfile_path, sheet_name = sheet)
您从零多次打开 excel 文件。我猜这是导致您的代码变慢的原因。
您可以使用以下方法读取一个 Excel 文件中的所有工作表:
pd.read_excel(file, sheet_name=None)
这将返回一个字典,其中键是工作表名称,值是数据框。
推荐阅读
- c# - c# 如何撤消 Encoding.UTF8.GetBytes 或转换为 File.ReadAllBytes
- webpack - 使用 html-webpack-plugin 创建 HTML 部分
- angular - Angular-Gridster2 - 网格项目在拖动时重叠
- r - 以 CSV 格式下载数据表
- scala - 为子项目运行 sbt 命令/设置插件中的每个命令?
- php - Laravel 5.6 - 在 updateOrCreate 之后获取更改的值
- javascript - 按钮 EXPAND ALL 的限制
- javascript - es6数组方法如何将多维数组转化为图表数据
- java - Intellij 包 org.testng 不存在
- javascript - 我应该在 javascript 中定义多少个嵌套对象?