Ho un 14MB Excel file with five worksheets che sto leggendo in un dataframe di Pandas e sebbene il codice sottostante funzioni, ci vogliono 9 minuti!Un modo più rapido di leggere i file Excel in dataframe panda
Qualcuno ha suggerimenti per accelerarlo?
import pandas as pd
def OTT_read(xl,site_name):
df = pd.read_excel(xl.io,site_name,skiprows=2,parse_dates=0,index_col=0,
usecols=[0,1,2],header=None,
names=['date_time','%s_depth'%site_name,'%s_temp'%site_name])
return df
def make_OTT_df(FILEDIR,OTT_FILE):
xl = pd.ExcelFile(FILEDIR + OTT_FILE)
site_names = xl.sheet_names
df_list = [OTT_read(xl,site_name) for site_name in site_names]
return site_names,df_list
FILEDIR='c:/downloads/'
OTT_FILE='OTT_Data_All_stations.xlsx'
site_names_OTT,df_list_OTT = make_OTT_df(FILEDIR,OTT_FILE)
Puoi provare a salvare come csv e caricarlo, è possibile che il lettore Excel non sia veloce come quello csv – EdChum
Ha più fogli di lavoro, anche se così non funzionerà? – jsignell
Dovresti ancora essere in grado di salvare ogni foglio, sfortunatamente il dolore qui è che devi salvare ogni foglio separatamente, 14 MB non è una grande dimensione e il lettore csv lo mangerà molto velocemente. Un altro punto potrebbe essere quello di provare ['ExcelFile.parse'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.ExcelFile.parse.html#pandas.ExcelFile.parse) – EdChum