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

もくじ
csvファイルはread_csv()で読み込める
結論、csvファイルを読み込むには、pandasでread_csv()を使えばすぐにインポートすることができます。
# 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_csvとread_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の引数をつけてあげると自動的にヘッダーがついてデータは要素に収まります。
# 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をつけてタプル形式かリスト形式でカラム名を指定することができます。
# 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-jisかcp932を指定するとうまくいきます。
data = pd.read_csv('sample.txt', encoding='shift_jis')
まとめ
csvファイルのインポート方法を解説してきました。最後にこの記事のまとめを書いておきます。
- read_csv()でcsvファイル読み込み
- header=Noneでカラムラベルを挿入
- namesのリスト形式でラベル名をつける
- encodingでエラーを回避
- 引数の数が多いけど、よく使うのはまとめ表の引数