Я хотел бы прочитать большой .xls-файл параллельно с помощью pandas. в настоящее время я использую это:Как читать .xls параллельно с помощью pandas?
LARGE_FILE = "LARGEFILE.xlsx"
CHUNKSIZE = 100000 # processing 100,000 rows at a time
def process_frame(df):
# process data frame
return len(df)
if __name__ == '__main__':
reader = pd.read_excel(LARGE_FILE, chunksize=CHUNKSIZE)
pool = mp.Pool(4) # use 4 processes
funclist = []
for df in reader:
# process each data frame
f = pool.apply_async(process_frame,[df])
funclist.append(f)
result = 0
for f in funclist:
result += f.get(timeout=10) # timeout in 10 seconds
В то время как это работает, я не думаю, что это на самом деле ускоряет процесс чтения файла. Существует ли более эффективный способ достижения этого?
Задача чтения Excel - это проблема с привязкой к I/O, чем проблема с привязкой к процессору, и я не думаю, что параллель может слишком сильно ускорить вашу задачу. –
Возможно, есть лучший способ быстрее прочитать большой файл? – Gman