Pythonで大きなCSVファイルを一度に読む方法
コード
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)を返す。