スポンサーリンク

pandasのread_csv()のusecolsで読み込む列(カラム)を指定する

pandasのread_csv()のusecolsで読み込む列(カラム)を指定できます。

例えば、下記のcsv.txtがあったとします。

$ cat csv.txt 
20170101,34,44,66
20170102,78,44,66
20170103,99,44,66

下記がサンプルコードになります。
usecols=[0,1] と設定して、0,1列目を読み込むようにしています。
$ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

import pandas as pd

data = pd.read_csv('csv.txt',
				usecols=[0,1],
				names=('Date', 'Value'),
				index_col='Date',
				parse_dates=True)
				
print (data)

下記が実行結果になります。
$ ./sample.py 
            Value
Date             
2017-01-01     34
2017-01-02     78
2017-01-03     99

スポンサーリンク

index_colを指定する時は、カラム数分のnamesが指定されていないとエラーとなることに注意

index_colを指定する時は、カラム数分のnamesが指定されていないとエラーとなることに注意が必要です。

下記は、3列全てにnamesが指定されていないので、エラーとなります。

data = pd.read_csv('csv.txt',
				names=('Date', 'Value'),
				index_col='Date',
				parse_dates=True)

全てにnamesで指定するのも手ですが、
下記のように、読み込むカラムを指定して、
全ての列にnamesでカラム名が指定されるように調整するのもありだと思います。

data = pd.read_csv('csv.txt',
				usecols=[0,1],
				names=('Date', 'Value'),
				index_col='Date',
				parse_dates=True)

これでエラーが出なくなります。
よくはまりがちなので注意しましょう。

スポンサーリンク