【发布时间】:2014-07-14 05:58:48
【问题描述】:
我有一个非常大的数据集,我无法读取整个数据集。所以,我正在考虑只读取其中的一部分进行训练,但我不知道该怎么做。任何想法将不胜感激。
【问题讨论】:
我有一个非常大的数据集,我无法读取整个数据集。所以,我正在考虑只读取其中的一部分进行训练,但我不知道该怎么做。任何想法将不胜感激。
【问题讨论】:
如果您只想读取前 999,999(非标题)行:
read_csv(..., nrows=999999)
如果您只想读取第 1,000,000 ... 1,999,999 行
read_csv(..., skiprows=1000000, nrows=999999)
nrows : int, default None 要读取的文件行数。对...有用 读取大文件*
skiprows:类列表或整数 文件开头要跳过的行号(0 索引)或要跳过的行数(int)
对于大文件,您可能还想使用 chunksize:
chunksize:int,默认无 返回 TextFileReader 对象进行迭代
【讨论】:
chunksize 有点痛苦,你必须处理大小不均的块。还要用你知道你需要的固定大小预先分配你的数组/数据帧,只要你能避免它,不要动态地做 concat/append。
nstart=,nend=...。你必须对skiprows = nend - nrows进行算术运算
LIMIT nstart, skiprows :/
header=n/list,请不要忘记 n-n 错误