python - Pandas - 是否可以使用 chunk= 参数读取 "rewind"read_csv?

标签 python pandas chunks chunking

我正在处理一个大数据集,因此要在 pandas 中读取它,我使用 read_csvchunk= 选项。

data = pd.read_csv("dataset.csv", chunksize=2e5)

然后我按以下方式操作分块的 DataFrame

any_na_cols = [chunk.do_something() for chunk in data]

问题是,当我想以与上面相同的方式做其他事情时,我会得到一个空结果,因为我已经迭代了分块的 DataFrame。因此,我必须再次调用 data = pd.read_csv("dataset.csv", chunksize=2e5) 才能执行下一步操作。

这很可能没有问题,但出于某种原因,我觉得这种方法在某种程度上不太优雅。是否没有像 data.rewind() 或类似的方法可以让我再次迭代这些 block ?我在文档中找不到类似的内容。或者也许我用这种方法犯了一些设计错误?

最佳答案

我认为再次读取 CSV 不是一个好主意 - 您将使 IO 数量增加一倍。最好在同一次迭代中“做点别的事情”:

any_na_cols = pd.DataFrame()

for chunk in pd.read_csv("dataset.csv", chunksize=2e5)
    any_na_cols = pd.concat([any_na_cols, chunk.do_something()], ignore_index=True)
    # do something else

关于python - Pandas - 是否可以使用 chunk= 参数读取 "rewind"read_csv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39583153/

相关文章:

python - 带有行号的 pandas 堆栈

python - MultiIndex 数据帧的平均值

php - Laravel 的 chunkById 歧义列

Rmarkdown 内联代码内的反引号/与常用代码块的行为不一致

python - django中的脏字段

python - Fastapi/Tortoise 早期模型初始化

python - 如何在Python机器学习中使用手势创建说话系统

python - 如何从列表中删除 unicode 中的\xa0

python - 是否可以对 groupby 的结果进行 groupby ?

json - 大型 Json 文件批量发送至 HubSpot API