我有一个非常大的数据集,我无法读取其中的整个数据集。因此,我正在考虑只读取其中的一个数据块进行训练,但是我不知道该怎么做。任何想法将不胜感激。
Answers:
如果您只想读取前999,999行(非标题):
read_csv(..., nrows=999999)
如果您只想读取1,000,000 ... 1,999,999行
read_csv(..., skiprows=1000000, nrows=999999)
nrows:int,默认值无要读取的文件行数。对读取大文件有用*
skiprows:类似于列表或整数的行号,在文件开头要跳过(索引为0)或要跳过的行数(整数)
对于大文件,您可能还需要使用chunksize:
chunksize:int,默认为None返回TextFileReader对象进行迭代
nstart=,nend=...
。您必须在skiprows = nend - nrows
LIMIT nstart, skiprows
::/
header=n/list
chunksize
有点痛苦,您必须处理大小不均的块。还要以您知道所需的固定大小预先分配数组/数据帧,只要避免就不要动态进行concat / append。