logo

Pythonで大きなCSVファイルを一度に読む方法 📂プログラミング

Pythonで大きなCSVファイルを一度に読む方法

コード

20191030_164739.png

y_test=[]
y_csv = open('y_test.csv', 'r', encoding='utf-8')
rdr = csv.reader(y_csv)
for line in rdr:
  y_test.append(line[0])
y_csv.close()

普通、csvファイルを読み込む時は、上のようにPythonの組み込み関数openを使って一行ずつ処理するが、ループを使う時点で、ビッグデータの処理には不向きであると推測できる。たとえば、700MBを超えるファイルはそれほど大きくはないかもしれないが、一行ずつ読んでいては終わりがない。

pandasパッケージ

このようなデータを扱う時は、pandasパッケージを使うと便利だ。

関数

  • pandas.read_csv(filepath_or_buffer): filepath_or_bufferに指定された.csvファイルを読み込み、データフレームとして返す。[ 注釈 : header=Noneと設定することで、ヘッダーがないファイルを読み込むことができる。特に指定しない場合、最初の行をヘッダーとして扱い、データが1つ失われる可能性がある。サイズがちょうど1つだけ合わない場合、この状況を疑うことができる。]
  • pandas.read_excel: この関数を通じて、*.xlsxファイルも読める。基本的な使用法はpandas.read_csv(filepath_or_buffer)と似ているが、Excelファイルにはシートがあるため、どのシートを読むかを指定するsheetnameオプションもある。

メソッド

  • X.to_csv(path_or_buf): データフレームXをpath_or_bufに.csvファイルとして出力する。
  • X.to_excel(path_or_buf): データフレームXをpath_or_bufに.xlsxファイルとして出力する。
  • .head(): 最初の数データを返す。データが正しく読み込まれたかを確認するのに必須だ。
  • .tail(): 最後の数データを返す。

プロパティ

  • .shape: データの形を示す。行が$n$、列が$p$の場合、(n, p)を返す。