在Python中将大CSV随机分割为三个文件
我有一个很大的CSV文件,我想把它分成3个随机的文件,大小要差不多。
*差不多:因为文件的大小不能被3整除。
我在想,先创建3个空的列表,然后用一个循环,随机选择一个数字在range(0,len(mycsv))
之间,把这个数字加到每个列表里。接着,我会用第一个列表里的内容创建一个新的CSV文件,然后继续处理。但我觉得这样做可能会比较慢。有没有什么更简单或者内置的方法可以用呢?
1 个回答
6
对于你每一行的csv文件,随机把这一行插入到三个空的csv文件中的一个里。对于10万行数据,这个过程应该不会花太长时间。
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:
f = random.choice([f1, f2, f3])
f.write(line)