在 Python 中合并非常大的 csv 文件

在下面的代码中,我正在合并从变量中包含的某个日期开始的所有 csv 文件:file_date。该代码适用于小型和中等大小的 csv 文件,但在处理非常大的 csv 文件时会崩溃。


path = '/Users/Documents/'+file_date+'*'+'-details.csv'+'*'

    allFiles = glob.glob(path)

    frame = pd.DataFrame()

    list_ = []

    for file_ in allFiles:

        frame = pd.read_csv(file_,index_col=None, header=0)

        print frame.shape 

        list_.append(frame)

        df = pd.concat(list_)

        print df.shape


    df.to_csv('/Users/Documents/'+file_date+'-details.csv',sep=',', index = False)

我可以分块处理每个文件吗?如果是,我该怎么做?


慕容森
浏览 264回答 2
2回答

偶然的你

如果你不处理文件,你甚至不需要熊猫。只需逐行读取文件并将其写入新文件:with open('outfile.csv', 'w') as outfile:    for i, filename in enumerate(all_files):        with open(filename, 'r') as infile:            for rownum, line in enumerate(infile):                if (i != 0) and (rownum == 0):    # Only write header once                    continue                outfile.write(line + '\n')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python