Python 熊猫滑雪超过90万失败

Python 熊猫滑雪超过90万失败,python,pandas,Python,Pandas,我的csv文件包含600万条记录,我正在尝试使用skiprows将其拆分为多个较小的文件。。我的Pandas版本是“0.12.0”,代码是 pd.read_csv(TRAIN_FILE, chunksize=50000, header=None, skiprows=999999, nrows=100000) 只要skiprows小于900000,它就可以工作。你知道这是意料之中的事吗?如果我不使用skiprows,我的nrows可以达到500万条记录。我还没试过。我也会试试这个 已尝试使用cs

我的csv文件包含600万条记录,我正在尝试使用skiprows将其拆分为多个较小的文件。。我的Pandas版本是“0.12.0”,代码是

pd.read_csv(TRAIN_FILE, chunksize=50000, header=None, skiprows=999999, nrows=100000)
只要skiprows小于900000,它就可以工作。你知道这是意料之中的事吗?如果我不使用skiprows,我的nrows可以达到500万条记录。我还没试过。我也会试试这个

已尝试使用csv拆分器,但它在第一个条目中无法正常工作,可能是因为每个单元格由多行代码等组成


编辑:我可以使用pandas read_csv读取整个7GB文件并将部分内容写入多个csv文件,从而将其拆分为csv。

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

pandas.read_csv(filename, nrows=some_number, chunksize=another_number)
返回一个
数据帧
(读取整个数据),而

返回延迟加载文件的TextFileReader

拆分csv的工作方式如下:

for chunk in pandas.read_csv(filename, chunksize=your_chunk_size):
    chunk.to_csv(some_filename)

为什么不使用
csv
模块?您可以拆分文件,而无需将其读入内存。它可能会慢一些,但除非你有某种超级硬盘,否则无论如何你都会被IO绑定。你能试用最新版本的熊猫吗?在0.13和当前的master中,这个区域发生了变化。熊猫将所有东西都存储在内存中。你确定你的内存没有超过900000吗?a)“失败”是什么意思?回忆者?张贴整个stacktrace。b) 是的,有时最好的解决方法是手动跳过前n行。这是一个简单的while-loop.c)与任何正在积极开发的软件一样,更新到当前版本(0.14.11914年7月),然后重试;他们可能已经修复了你的bug。现在0.12.0已经相当古老了。
for chunk in pandas.read_csv(filename, chunksize=your_chunk_size):
    chunk.to_csv(some_filename)