我有一个脚本,可以将目录中的所有csv文件进行外连接合并。问题是当我尝试使用它来合并需要加入的文件时(大约二十几个文件,每个文件6-12Gb),我的电脑会出现内存错误(MemoryError)。我知道itertools可以用于使循环更加高效,但我不清楚它是否适用于此情况,或者如何应用它。我能想到的另一种选择是安装mySQL,学习基础知识,并在那里完成此操作。显然,如果可能的话,我更愿意在Python中完成此操作,因为我已经在学习它了。如果有R语言解决方案也可以接受。
任何关于如何处理文件太大而超出电脑内存的建议将不胜感激。
这是我的代码:
import os
import glob
import pandas as pd
os.chdir("\\path\\containing\\files")
files = glob.glob("*.csv")
sdf = pd.read_csv(files[0], sep=',')
for filename in files[1:]:
df = pd.read_csv(filename, sep=',')
sdf = pd.merge(sdf, df, how='outer', on=['Factor1', 'Factor2'])
任何关于如何处理文件太大而超出电脑内存的建议将不胜感激。
在第2885行,运行代码时执行(code_obj, self.user_global_ns, self.user_ns)
- Stonecraft