【发布时间】:2018-11-22 00:13:07
【问题描述】:
我在多个(子)文件夹中有大约 5400 个 Excel 文件,并希望将它们加载到单个数据框中。这些文件只有一张纸,每个文件最多可以有 2000 多行。总行数预计为 200 万或更多。
我的电脑有 SSD HD 和 8GB 内存,速度非常快。仍然需要几个小时才能完成。我的代码有什么问题吗?如有任何提示,我将不胜感激。
%%time
files = glob.glob('asyncDatas/**/*.xlsx',recursive=True)
df = pd.DataFrame()
for num, fname in enumerate(files, start=1):
print("File #{} | {}".format(num, fname))
if len(fname) > 0:
data = pd.read_excel(fname, 'Sheet0', index_col='Time', skiprows=3)
df = df.append(data)
df.head()
我的预感是 .append 方法需要太多时间,因为它可能是动态重新分配内存? .concat() 可能是更好的方法吗?
【问题讨论】: