Прочитать все листы, не угадывая
Используйте аргумент sheetname = None
для pd.read_excel
.Это прочитает все рабочих листов в словарь данных.Например:
dfs = pd.read_excel('file.xlsx', sheetname=None)
# access 'Sheet1' worksheet
res = dfs['Sheet1']
Ограничить количество строк или столбцов
Вы можете использовать parse_cols
и skip_footer
аргументы, чтобы ограничить количество столбцов и / или строк.Это сократит время чтения, а также будет работать с sheetname = None
.
Например, следующее будет читать первые 3 столбца и, если ваш рабочий лист содержит 100 строк, он будет читать только первые 20.
df = pd.read_excel('file.xlsx', sheetname=None, parse_cols='A:C', skip_footer=80)
Если вы хотите применить логику, специфичную для рабочего листа, вы можете сделать это, извлекая имена листов:
sheet_names = pd.ExcelFile('file.xlsx', on_demand=True).sheet_names
dfs = {}
for sheet in sheet_names:
dfs[sheet] = pd.read_excel('file.xlsx', sheet)
Повышение производительности
Чтение файлов Excel в Pandas естественно медленнеечем другие варианты (CSV, Pickle, HDF5).Если вы хотите повысить производительность, я настоятельно рекомендую вам рассмотреть эти другие форматы.
Один из вариантов, например, состоит в том, чтобы использовать сценарий VBA для преобразования ваших рабочих таблиц Excel в файлы CSV;затем используйте pd.read_csv
.