我怎么读大型csv(20G)

时间:2016-11-16 05:05:10

标签: python dataframe large-data

我是python.my的新用户问题是:

我有三个csv文件(每个大约15G,并且有三列),我想将它们读入python并删除dur = 0的行 我的csv是这样的。

sn_fx   sn_tx   dur
5129789 3310325 2
5129789 5144184 1
5129789 5144184 1
5129789 5144184 1
5129789 5144184 1
5129789 6302346 4
5129789 6302346 0

我知道我应该逐行阅读,我尝试这样:

file='cmct_0430x.csv'
for line in file.xreadlines():
    pass

但似乎不起作用。

此外,我不知道如何将这些行转换为数据帧。

有人可以告诉我更多关于此的细节,我将非常感谢你!

1 个答案:

答案 0 :(得分:1)

你应该使用熊猫。并阅读chunks(处理的行数)中合适大小的csv。然后使用concat获取所有块。

from pandas import *

tp = read_csv('cmct_0430x.csv', iterator=True, chunksize=1000)
df = concat(tp, ignore_index=True) 

熊猫:Read_csv

您正在收到内存错误,因为您正在处理整个csv,其时间大于主内存的大小。尝试以块的形式打破它然后处理它。