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 - 遍历 pandas 列以生成直方图的最佳方法是什么?

python - 如何计算列表中每三个值的平均值

python - 使用 RDFib 创建数据转储并将数据添加到图表中而无需迭代

python - Tally SOAP API 规范

python 情节9: how to change color scale

python - 使用python查找图像中的连接组件

python - 机器学习中如何处理缺失数据?

c - 如何通过套接字 : one buffer, 分散/聚集或 readdir 发送数据?

python - django - 使用 block 读取上传的文件会分解一些行