pandasでcsvを読み込む際に便利なパラメータを整理しました。
今回、サンプルとして以下のようなcsvを用意しました。
パラメーターを指定しない場合のアウトプットは、以下の通りです。
1行目(A~E)は、columnとして認識され、A列目(0~7)はindexとして認識されていません。
header :column(列名)となる行を指定
デフォルト、header=0
デフォルト(何も指定しない)だと、csvの1行目がヘッダーとして読み込まれます。
header=0 もデフォルトと同様です。
df = pd.read_csv('sample.csv', header=0)
指定の行をcolumnに指定
headerに指定したい行を入れます。
csvの2行目(DataFrameでは0行目から始まるので1行目)を指定したい場合は、以下の通りです。
df = pd.read_csv('sample.csv', header=1)
複数の行をcolumnに指定
header=[1,3]のように整数リストを与えると、1、3行目を列名として複数指定できます。
df = pd.read_csv('sample.csv', header=[1,3])
index_col :index(行名)の列を指定
indexとなる列を指定します。
df = pd.read_csv('sample.csv', index_col=0)
names :column(列名)を任意に指定
列名を任意に指定できます。
df = pd.read_csv('sample.csv', index_col=0, names=['い','ろ','は','に','ほ'])
skiprows:行をスキップ
読み込ませたくない行をスキップできます。
以下の例は、csv上の2行目と4行目をスキップしています。
df = pd.read_csv('sample.csv', index_col=0,skiprows=[1,3])
skipfooter:下から指定した行数スキップ
下から指定した行数を読み飛ばします。
以下は、下2行を読まないようにしています。
df = pd.read_csv('sample.csv', index_col=0, skipfooter=2)
nrows:読み込む行数の指定
読み込む行数を指定します。
以下は上から3行だけを読み込んでいます。
df = pd.read_csv('sample.csv', index_col=0,nrows=3)
usecols:読み込む列を指定
読み込む列をcolumn名で指定します。
df = pd.read_csv('sample.csv',usecols=['A','C','E'])
dtype:読み込み形式の指定
読み込む形式を指定します。デフォルトは、文字列型(str)です。
floatやint、objectなどに指定します
df = pd.read_csv('sample.csv',dtype = {'A':'object', 'B':'str', 'C':'object','D':'float','E':'str'})
encoding:文字コードの指定
pandas.read_csv(filepath_or_buffer,encoding='shift-jis')
読み取る文字コードを指定します。encodingを指定します。
日本語で一般的に使われるのは、 “shift-jis” 、“utf-8” を指定します。
数字の表などで、ヘッダーだけ日本語で何やっても文字化けするときは、先述した ”skiprow” と header でヘッダーを読み込まないで、後から指定する方がスムーズかもしれません。
まとめ
ここでは、よく使うパラメータのみを取り上げています。
より詳しく知りたい方は、ドキュメントを直接確認するのが良いと思います。
Pandas document pandas.read_csv