nan*_*cyh 0 python random-sample
我需要打开一个csv文件,选择1000个随机行并将这些行保存到一个新文件中.我被困住了,看不出怎么做.有人可以帮忙吗?
Sla*_*off 21
所以这个问题有两部分.首先获取csv的每一行,然后随机抽样.我建议用列表理解构建你的行列表.有点像:
with open("your_file.csv", "rb") as source:
lines = [line for line in source]
Run Code Online (Sandbox Code Playgroud)
一旦你有了这个,你想随机抽取这些线.幸运的是,python有一个功能就是这样.
import random
random_choice = random.sample(lines, 1000)
Run Code Online (Sandbox Code Playgroud)
一旦你有这些行,你想把它们写回一个新文件(虽然我假设你已经知道如何快速谷歌揭示这一点),所以我将包括一个例子只是为了完整性:
with open("new_file.csv", "wb") as sink:
sink.write("\n".join(random_choice))
Run Code Online (Sandbox Code Playgroud)
它只是将您的选择作为换行符分隔的字符串输出到您选择的文件中.值得注意的是,在这种情况下,你正在处理一个csv,只是另一个带有一些行的文件并不重要.
如果你正在使用一个非常大的文件或担心占用太多内存,你应该用生成器替换上面的列表理解,然后从中取样,但这个过程并不是那么简单.如果你想获得更高效的建议,你应该看看这个问题:Python随机样本和生成器可迭代迭代器