私は大.CSV(3.4メートルの列、206kユーザーが)InstaCart https://www.instacart.com/datasets/grocery-shopping-2017パンダのPythonに大規模なデータセットをロード
からソースデータセットを開くロードしたいと思います。基本的に、私はトラブルのロードorders.csvパンダDATAFRAMEにしています。大きなファイルをPandas/Pythonにロードするためのベストプラクティスを学びたいと思います。
私は大.CSV(3.4メートルの列、206kユーザーが)InstaCart https://www.instacart.com/datasets/grocery-shopping-2017パンダのPythonに大規模なデータセットをロード
からソースデータセットを開くロードしたいと思います。基本的に、私はトラブルのロードorders.csvパンダDATAFRAMEにしています。大きなファイルをPandas/Pythonにロードするためのベストプラクティスを学びたいと思います。
ファイル全体をメモリにロードするのではなく、をチャンク内のデータを読み込むことをお勧めします。
幸いにも、read_csv
メソッドはchunksize
引数を受け入れます。
for chunk in pd.read_csv(file.csv, chunksize=somesize):
process(chunk)
注:read_csv
またはread_table
にchunksize
を指定することで、戻り値はタイプTextFileReader
のiterable
対象となる:
また参照:
大きなデータフレームがメモリに収まらない場合、daskは非常に便利です。私がリンクしているメインページには、pandasと同じAPIを持つが配布可能なdaskデータフレームを作成する方法の例があります。
マシンによっては、csvファイルを読み取っているときにデータタイプを指定することによって、メモリ内のすべてを読み取ることができます。 csvがpandasによって読み取られるとき、使用されるデフォルトのデータ型は、最良のものではないかもしれません。 dtype
を使用すると、データ型を指定できます。メモリに読み込まれるデータフレームのサイズが小さくなります。