我有一个非常大的csv文件(8GB +)。我想使用该csv文件中的数据进行培训,测试和交叉验证集。如何将csv文件随机读入多个数据帧?我使用的是Python 3。
答案 0 :(得分:1)
关键点是随机。 CSV通过换行符分隔记录。如果你在readed之前无法知道记录的长度,则应该通过技巧而不是完全随机来完成随机。
var scrolledCallBlock: ((int) -> Void)?
答案 1 :(得分:1)
首先计算csv文件中的行数。(有很多方法可以执行此操作,stackoverflow已经有很多相关问题。)然后,创建一个包含indices = range(num_lines)
随机选择一组线索引。例如,您可以使用your_selected_lineindices = random.sample(indices, 10000)
。
使用以下代码示例:
with open("file") as fp:
for i, line in enumerate(fp):
if i in your_selected_lineindices:
do_something_with(line)
此代码不会溢出您的记忆。 原始代码来自此处:https://stackoverflow.com/a/2081880/3279996