【发布时间】:2017-11-01 20:20:16
【问题描述】:
我有一个 1GB、70M 的行文件,任何时候我加载它都会耗尽内存。我已经阅读了 1000 行,并且能够制作出我想要做的原型。
我的问题是不知道如何获取接下来的 1000 行并应用我的逻辑,然后继续运行我的文件,直到它完成最后一行。我已经阅读了有关 chunksizing 的内容,尽管我不知道如何继续进行 chunksizing 的迭代。
理想情况下,它会像这样流动:
1) 读取前 1000 行 2)根据标准过滤数据 3)写入csv 4)重复直到没有更多的行
这是我目前所拥有的:
import pandas as pd
data=pd.read_table('datafile.txt',sep='\t',chunksize=1000, iterator=True)
data=data[data['visits']>10]
with open('data.csv', 'a') as f:
data.to_csv(f,sep = ',', index=False, header=False)
【问题讨论】:
-
您的计算机有多少内存?文本文件有多少列?如果您真的只想根据某些条件进行过滤,您也可以在不使用 pandas 的情况下遍历整个文件
-
4GB 或 RAM。我知道,是时候更新了。