gpt4 book ai didi

python - 使用 pandas 迭代大型 csv(不使用 block )

转载 作者:行者123 更新时间:2023-11-30 22:28:24 25 4
gpt4 key购买 nike

我编写了一个简单的小脚本来读取和处理一个巨大的 CSV 文件(~150GB),每个循环读取 5e6 行,将其转换为 Pandas DataFrame,对其执行某些操作,然后继续读取接下来的 5e6 行。

尽管它完成了这项工作,但每次迭代都需要更长的时间才能找到下一个要读取的行 block ,因为它必须跳过更多的行。我读了很多关于使用 block (作为读取器迭代器)的答案,尽管一旦读取了 block ,我就需要连接这些 block 来创建一个数据帧(包含有关截断行和其他内容的各种问题),所以我我不想走那条路。

是否可以使用某种光标来提醒read_csv函数从停止的地方开始读取?

代码的主要部分如下所示:

while condition is True:
df = pd.read_csv(inputfile, sep=',', header = None, skiprows = sr, nrows = 5e6)
# do something with df
sr = sr + 5e6
# if something goes wrong the condition turns False

最佳答案

使用你的方法,Pandas 必须从头开始一次又一次地读取这个巨大的 CSV 文件,以便跳过行...

我认为您确实想使用chunksize参数:

reader = pd.read_csv(inputfile, sep=',', header=None, chunksize=5*10**6)

for df in reader:
# do something with df
if (something goes wrong):
break

关于python - 使用 pandas 迭代大型 csv(不使用 block ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46602613/

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