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