我有一个巨大的CSV,我想把它分成3个几乎相同大小的随机文件。
*差不多:大小不能除以3
我想创建3个空白列表,然后在for循环中,我会在range(0,len(mycsv))
之间随机选择一个数字并将其附加到每个列表中。然后,我将使用第一个列表中的文件创建一个csv并继续。但我认为这将足够缓慢。是否有任何内置方式或比我自己更容易?
答案 0 :(得分:3)
对于csv的每一行,将此行随机插入三个空白csv文件之一。对于100.000行,不应该花很长时间。
import random
with open("mycsv.csv") as fr:
with open("1.csv", "w") as f1, open("2.csv", "w") as f2, open("3.csv", "w") as f3:
for line in fr.readlines():
rd = random.randint(1, 3)
f = f1 if rd == 1 else (f2 if rd == 2 else f3)
f.write(line)