我有一个1GB,70M的行文件,每当我加载它时,它就会耗尽内存。我已经阅读了1000行,并能够原型我想它做什么。在
我的问题是不知道如何获取接下来的1000行并应用我的逻辑,然后继续运行我的文件,直到它完成最后一行。虽然我不知道如何继续块大小调整的迭代,但我已经读过关于块大小调整的文章。在
理想情况下,它会这样流动:
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)
你的逻辑有些问题,我们想循环数据中的每个块,而不是数据本身。在
“chunksize”参数为我们提供了一个“textreader对象”,我们可以对其进行迭代。在
你需要考虑如何处理你的头!在
当您传递
chunksize
或iterator=True
时,pd.read_table
将返回一个TextFileReader,您可以对其进行迭代或调用get_chunk
。所以您需要在data
上迭代或调用get_chunk
。在所以对整个文件的正确处理可能看起来像
相关问题 更多 >
编程相关推荐