【发布时间】:2015-07-21 22:59:29
【问题描述】:
我想使用 pandas 并行读取一个大的 .xls 文件。 目前我正在使用这个:
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 密集型问题而不是 CPU 密集型问题,我不认为并行可以过多地加快您的任务。
-
是否有更好的方法可以更快地读取大文件?
标签: python pandas parallel-processing