熊猫跳过超过900000失败

use*_*745 6 python pandas

我的csv文件包含6Million记录,我试图通过使用skiprows将其拆分为多个较小的文件..我的Pandas版本是'0.12.0',代码是

pd.read_csv(TRAIN_FILE, chunksize=50000, header=None, skiprows=999999, nrows=100000)
Run Code Online (Sandbox Code Playgroud)

它只要小于900000就可以工作.任何想法是否是预期的?如果我不使用短语,我的小数可以达到5万条记录.还没有尝试过.也会尝试这个.

尝试过csv splitter,但它对第一个条目不起作用,可能是因为每个单元格由多行代码组成等.

编辑:我可以通过使用pandas read_csv读取整个7GB文件并将部分写入多个csv文件将其拆分为csv.

Mat*_*nik 1

问题似乎是您同时指定了nrowschunksize。至少在 pandas 0.14.0 中使用

pandas.read_csv(filename, nrows=some_number, chunksize=another_number)
Run Code Online (Sandbox Code Playgroud)

返回 a Dataframe(读取整个数据),而

pandas.read_csv(filename, chunksize=another_number)
Run Code Online (Sandbox Code Playgroud)

返回一个延迟加载文件的 TextFileReader。

分割 csv 的工作原理如下:

for chunk in pandas.read_csv(filename, chunksize=your_chunk_size):
    chunk.to_csv(some_filename)
Run Code Online (Sandbox Code Playgroud)