CSV ファイルのセグメントを pandas DataFrame に読み込もうとしていますが、nrows を特定のポイント以上に設定すると問題が発生します。私の CSV ファイルは、さまざまなヘッダー/データの種類を持つさまざまなセグメントに分割されているため、ファイルを調べて、さまざまなセグメントの行番号を見つけて、行番号を保存しました。私がやろうとすると:
pd.io.parsers.read_csv('filename',skiprows=40, nrows=12646)
それは正常に動作します。それ以上の行があると、エラーがスローされます。
CParserError: Error tokenizing data. C error: Expected 56 fields in line 13897, saw 71
行 13897 には多くの行があるのは事実です。そのため、nrows と skiprows を使用しようとしています。パンダが読み取る最後の行を見つけることができ、残りの行と何ら変わりはありません。ファイルを 16 進エディタで見ても、違いはわかりません。
別の CSV ファイルでも試してみましたが、同様の結果が得られました。
pd.io.parsers.read_csv('file2',skiprows=112, nrows=18524)
<class 'pandas.core.frame.DataFrame'>
Int64Index: 18188 entries, 0 to 18187
しかし:
pd.io.parsers.read_csv('file2',skiprows=112, nrows=18525)
与えます:
CParserError: Error tokenizing data. C error: Expected 56 fields in line 19190, saw 71
足りないものはありますか?これを行う別の方法はありますか?
私が使用しているのはpandas-0.10.1.win-amd64-py3.3
、、、、numpy-MKL-1.7.1rc1.win-amd64-py3.3
およびpython-3.3.0.amd64
Windows の場合です。で同じ問題が発生しnumpy-unoptimized-1.7.1rc1.win-amd64-py3.3
ます。