gpt4 book ai didi

python - 根据条件从超大 (48GB) CSV 文件中提取行

转载 作者:行者123 更新时间:2023-11-28 20:17:55 25 4
gpt4 key购买 nike

我有一个非常大的 CSV 文件,其中包含超过 5 亿行。

但是我只需要根据特定条件从中获取几千行。我目前正在使用:

with open('/home/Documents/1681.csv', 'rb') as f:
reader = csv.DictReader(f)
rows = [row for row in reader if row['flag_central'] == 1]

这里的条件是,如果 flag_central == 1,我需要该行。

但是,由于文件非常大,我无法执行上面的代码。我相信这是因为我正在使用的 for 循环导致了这个问题。

我是否可以根据上述条件从 CSV 文件中提取这些特定行?

最佳答案

如果这是一次性任务,我建议先使用 unix 命令,然后再处理提取物:

cat file | awk -F , '{ if ($5 == "1") print $0 }' > extract.csv

其中 -F 指定列分隔符,5 是列号。首先通过

解决这个问题
cat file | head -n 1 | tr ',' '\n' | nl | grep flag_central
=>
5 flag_central
^ this is the field number ($5)

这样您就不会产生先将 csv 文件转换为 python 对象的成本。取决于您的用例 YMMV。

关于python - 根据条件从超大 (48GB) CSV 文件中提取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38699520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com