我正在尝试连接数百个CSV文件,每个文件大小为100至500mb。它们都有不同的列(每个CSV 10到300列),另存为1(ID_KEY)。我使用了以下功能:
import dask.dataframe as dd
def concat_all(my_csv_list, data_path, save_to):
datasets = []
for csv in my_csv_list:
df = dd.read_csv(os.path.join(data_path,csv),
dtype=str)
datasets.append(df)
result = dd.concat(datasets)
result.to_csv(save_to)
但是,内存使用率迅速跃升到90%,并且脚本因出现内存错误而停止。我不能只逐行连接所有CSV,因为我需要用NA填充新列。我想我仍然可以从技术上“手动”处理该问题(保持列索引并在要复制的每行中添加空逗号),但是我更希望使用一种更干净,更简单的解决方案...