python-3.x - 如何在不使用太多内存的情况下打乱大型 csv 文件的行并将结果写入新的 csv 文件?

标签 python-3.x csv

因此,如果我有一个如下所示的 csv 文件:

User  Gender
 A    M
 B    F
 C    F

然后我想编写另一个 csv 文件,其中行像这样打乱(作为示例):

User  Gender
 C    F
 A    M
 B    F

我的问题是我不知道如何随机选择行并确保从原始 csv 文件中获取每一行。作为引用,我的 csv 文件大约 3gb。如果我将整个数据集加载到数据帧中并使用随机包对其进行洗牌,我的电脑会因 RAM 使用而崩溃。

最佳答案

可能最简单(也是最快)的是在 bash 中使用 shuf!

shuf words.txt > shuffled_words.txt

(我知道您要求使用 Python 解决方案,但我认为这仍然是一个更好的答案)

要从 Python 以编程方式执行此操作:

import sh
sh.shuf("words.txt", out="shuffled_words.txt")

关于python-3.x - 如何在不使用太多内存的情况下打乱大型 csv 文件的行并将结果写入新的 csv 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57973511/

相关文章:

python - Errno 17文件存在: 'example.bat'

ruby-on-rails - 响应 CSV 时错过模板

php - fputcsv : Empty rows in csv file after each array

Python 大型 .tsv 文件到 .csv 文件

linux - 有没有办法在 Unix 中删除文件中的重复 header ?

python - 使用 collat​​z count : specific question 打印数量计数

python - 使用 5 的倍数作为变量可以更轻松地使用模数

python - 在类中装饰 @property.setter 装饰器

python - 名称错误 : name 'random' is not defined

python - 如何用python selenium点击下载