chunksizeを指定して、pandasで巨大ファイルを扱う
pandas でサイズの大きなファイルを扱うにはどうすればいいか調べたところ、ファイルを読み込む際に chunksize 引数を指定して、分割して読み込む方法があることを知った。 Google clab にあるサンプルファイルを使って動きを確認する。
まずは何も指定せずファイルを読み込む。
import pandas as pd df = pd.read_csv('sample_data/mnist_test.csv') df.shape
結果的に、9999 行と 785 列を保持していることがわかった。
(9999, 785)
今読み込んだファイルを分割して読み込む。
pd.read_csv
関数のオプションへ chunksize 引数に読み込む行数を指定して実行する。
import pandas as pd for df in pd.read_csv('sample_data/mnist_test.csv', chunksize=512): print(df.shape)
ループの中でdf.shape
を実行していて、その結果が出力されている。
最後を除くループで(512, 785)
が出力されており、無事に分割しながら読み込めていることがわかる。
(512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (512, 785) (271, 785)