trabajar - python obtener datos de excel
¿Cómo obtener nombres de hojas de archivos XLS sin cargar todo el archivo? (2)
Como pandas
usa xlrd
para leer hojas de Excel y pasa todos los argumentos de palabras clave de pandas.ExcelFile
a xlrd.open_workbook
, pd.ExcelFile
acepta el indicador on_demand
. Por lo tanto, no es necesario cargar xlrd
separado:
xls = pandas.ExcelFile(path, on_demand = True)
sheets = xls.sheet_names
Actualmente estoy usando pandas para leer un archivo de Excel y presentar sus nombres de hoja al usuario, para que pueda seleccionar qué hoja le gustaría usar. El problema es que los archivos son realmente grandes (70 columnas x 65k filas), demorando hasta 14 segundos en cargarse en una notebook (los mismos datos en un archivo CSV toman 3s).
Mi código en panda es así:
xls = pandas.ExcelFile(path)
sheets = xls.sheet_names
Intenté xlrd antes, pero obtuve resultados similares. Este fue mi código con xlrd:
xls = xlrd.open_workbook(path)
sheets = xls.sheet_names
Entonces, ¿alguien puede sugerir una forma más rápida de recuperar los nombres de las hojas de un archivo de Excel que leer todo el archivo?
puede usar la biblioteca xlrd y abrir el libro de trabajo con el indicador "on_demand = True", para que las hojas no se carguen automáticamente.
De lo que puede recuperar los nombres de las hojas de forma similar a los pandas:
import xlrd
xls = xlrd.open_workbook(r''<path_to_your_excel_file>'', on_demand=True)
print xls.sheet_names() # <- remeber: xlrd sheet_names is a function, not a property