我如何读取大的csv(20G)[重复]

Posted

技术标签:

【中文标题】我如何读取大的csv(20G)[重复]【英文标题】:how do I read a large csv(20G) [duplicate] 【发布时间】:2017-03-30 04:43:36 【问题描述】:

我是python的新用户。我的问题是这样的:

我有三个 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

但它似乎不起作用。

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

谁能告诉我更多关于这个的细节,我将非常感谢你!

【问题讨论】:

Python 有一个csv 模块,否则使用pandas。但首先要确认你有足够的内存来读取这个文件。 有许多问题是重复的。如果没有任何关于您将如何处理数据的信息,就无法判断哪个最适合。 谢谢。我试过pd.read_csv,但它有内存错误。 还有***.com/questions/9087039/…, ***.com/questions/25962114/… . 您遇到内存错误,因为您正在处理大于内存大小的块。 【参考方案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 大于主内存的大小。试着把它分成块然后处理它。

【讨论】:

谢谢,刚刚试了,内存不足

以上是关于我如何读取大的csv(20G)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

用逗号读取大的 .csv 文件 MATLAB [重复]

从 csv 文件中读取数据需要很长时间 [重复]

Pandas Python-read_csv没有读取每一行的完整数据[重复]

如何在 Python 中将读取一个大的 csv 文件分成大小均匀的块?

NodeJS:读取一个大的 csv 文件

如何在python中读取一个大的tsv文件并将其转换为csv