Pandasのread_csvでcsvファイルを読み込む方法

今回はPandasでcsvファイルを読み込む方法をマスターしましょう。データ分析の長い行程の中で一番最初によく行うのがこのインポート作業になります。引数も数多く種類があるので、手に馴染ませて使い込みましょう。

注意
本記事でread_table()の解説はしません。txtファイルの読み込み方を知りたい方はこちらの記事をご覧ください。
Pandasのread_tableでtxtファイルを読み込む方法

csvファイルはread_csv()で読み込める

結論、csvファイルを読み込むには、pandasでread_csv()を使えばすぐにインポートすることができます。

Python
# sample.csvという名前のファイルを読み込む
import pandas as pd
data = pd.read_table('sample.csv')
data
	10	100	1000	10000
0	20	200	2000	20000
1	30	300	3000	30000

csvファイルの読み込み時に、例えばヘッダーが付いているファイルや付いていないファイルなど、さまざまなケースがあると思います。その場合は、引数を指定することで解決できますので、read_csv()の引数を見ていきましょう!


忙しいあなたのための引数まとめ表

主に使う引数をまとめておきました。read_table()でもすべて使用可能です。

詳しく知りたい方は表の下をご覧ください。

header ヘッダー行数を整数で指定(なしの場合はNoneとする)
names ヘッダーのカラム名をリスト形式で指定
encoding 文字コードの指定(utf-8, shift-jis, euc_jp, cp932)
filepath_or_buffer 読み込み元のファイルのパスやURLを指定
sep 区切り文字の指定(カンマかタブでファイル形式選択)
delimiter sepの代わりにdelimiterでも指定可能
dtype 各行のデータ型を指定
index_col 行のインデックスに用いる列番号
skiprows 先頭行から読み込みをスキップする行数
skipfooter 末尾行から読み込みをスキップする行数

csvファイルの読み込みをマスターする

read_csvとread_tableって何が違うの?

csvファイルを読み込む際はread_csv()を使い、txtファイルはread_table()で対応できます。

read_csvread_tableはデフォルトの区切り文字が異なります。read_csvでは文字通り、コンマ区切りのcsvファイルを取り扱います。一方、区切り文字がタブのtxtファイルはread_tableを用います。


read_csvでheaderのないcsvファイルを読み込む

以下のようなheaderがないcsvファイルをサンプルとして使用します。

10, 100, 1000, 10000
20, 200, 2000, 20000
30, 300, 3000, 30000

ヘッダーを引数で指定しないと、1行目が強制的にヘッダーになってしまいますので、header=Noneの引数をつけてあげると自動的にヘッダーがついてデータは要素に収まります。

Python
# headerを引数で設定
data = pd.read_csv('sample.txt', header=None)
data
	0	1	2	3
0	10	100	1000	10000
1	20	200	2000	20000
2	30	300	3000	30000

names=()でカラム名をつける

引数にnamesをつけてタプル形式かリスト形式でカラム名を指定することができます。

Python
# A,B,C,Dという名前のカラム名をつける
data = pd.read_csv('sample.txt', names=('A', 'B', 'C', 'D'))
data
	A	B	C	D
0	10	100	1000	10000
1	20	200	2000	20000
2	30	300	3000	30000

エンコーディングの指定をする

エンコーディングは引数encodingで指定する。省略した場合はutf-8になります。もしutf-8でうまくいかない場合は、shift-jiscp932を指定するとうまくいきます。

Python
data = pd.read_csv('sample.txt', encoding='shift_jis')
MEMO
エンコーディングの指定を省略した際に、utf-8ではないファイルを読み込むとエラーが起きます(UnicodeDecodeError)。文字化けすることはありません。

まとめ

csvファイルのインポート方法を解説してきました。最後にこの記事のまとめを書いておきます。

覚えておきたいポイント
  • read_csv()でcsvファイル読み込み
  • header=Noneでカラムラベルを挿入
  • namesのリスト形式でラベル名をつける
  • encodingでエラーを回避
  • 引数の数が多いけど、よく使うのはまとめ表の引数