拆分大文件,但为每个后续文件添加标头

时间:2016-04-23 22:14:17

标签: python csv

我正在使用以下代码来分解大型CSV文件,并且我希望将原始CSV标头写入每个较小的CSV文件。但是,我遇到的问题是,当前代码似乎跳过了每个较小文件的一行数据。因此,在下面的示例中,第51行不会写入较小的文件(从http://code.activestate.com/recipes/578045-split-up-text-file-by-line-count/修改的代码)。它似乎跳过那一行,或者它被标题覆盖:

std::async

1 个答案:

答案 0 :(得分:0)

考虑使用pandas拆分大型csv文件:

  

让我们使用pandas创建一个包含500行和四列的csv文件:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(500,4), columns=['a','b','c','d'])
df.to_csv('large_data.csv', index=False)
  

让我们将large_data.csv拆分为多个包含50行的csv文件:

import pandas as pd
df = pd.read_csv('large_data.csv', chunksize=50)
i = 1
for chunk in df:
    chunk.to_csv('split_data_'+str(i)+'.csv', index=False)
    i = i+1
  

这会产生以下结果文件:

enter image description here