Python Pandas:CSVファイルの最初のn行のみを読み取る方法は?


96

私は非常に大きなデータセットを持っていて、データセット全体を読み取る余裕がありません。したがって、トレーニングのためにデータセットの1つのチャンクだけを読み取ることを考えていますが、その方法がわかりません。どんな考えでもありがたいです。

回答:


169

最初の999,999(非ヘッダー)行のみを読み取りたい場合:

read_csv(..., nrows=999999)

行1,000,000 ... 1,999,999のみを読み取りたい場合

read_csv(..., skiprows=1000000, nrows=999999)

nrows:int、デフォルトなし読み取るファイルの行数。大きなファイルの断片を読むのに便利です*

skiprows:リストのような整数またはスキップする行番号(0-インデックス付き)またはファイルの先頭でスキップする行数(int)

大きなファイルの場合は、おそらくチャンクサイズも使用することをお勧めします。

チャンクサイズ:int、デフォルトなし反復のためにTextFileReaderオブジェクトを返します

pandas.io.parsers.read_csvドキュメント


それは大丈夫です、彼らはわずかに隠されています。ドキュメントはこれらの例で行うことができます。chunksize少し面倒ですが、不均一なサイズのチャンクを処理する必要があります。また、必要がわかっている固定サイズで配列/データフレームを事前に割り当てます。回避できる場合は常に、動的に連結/追加を行わないでください。
smci 2014年

...そしてまた、それはインターフェースがそうであるようではありませんnstart=,nend=...。あなたは算術をしなければなりませんskiprows = nend - nrows
smci 2014年

1
これはSQLから引き継がれたものだと思いますLIMIT nstart, skiprows:: /
FooBar 2014年

...また、使用する場合は、off-by-nエラーを忘れないでくださいheader=n/list
smci 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.