串联多个CSV时出现内存错误

时间:2018-10-23 07:54:41

标签: python pandas csv dask

我正在尝试连接数百个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填充新列。我想我仍然可以从技术上“手动”处理该问题(保持列索引并在要复制的每行中添加空逗号),但是我更希望使用一种更干净,更简单的解决方案...

0 个答案:

没有答案