我有一个 14MB 的 Excel 文件,其中包含五个工作表,我正在将其读入 Pandas 数据框,尽管下面的代码有效,但需要 9 分钟!
有没有人有加快速度的建议?
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)
原文由 jsignell 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如其他人所建议的那样,csv 阅读速度更快。所以如果你在 Windows 上并且有 Excel,你可以调用 vbscript 将 Excel 转换为 csv,然后读取 csv。我尝试了下面的脚本,它花了大约 30 秒。
这是创建 ExcelToCsv.vbs 脚本的一小段 python:
这个答案得益于 Convert XLS to CSV on command line and csv & xlsx files import to pandas data frame: speed issue