pythonのpandasで必須関数とも言えるread_csv()。
便利ですがパラメータも多く、最初は細部の設定に戸惑いました。日付をインデックスとしてcsvファイルを読み込む場合について、サンプルコードと合わせてご紹介します。

スポンサーリンク

read_csv()で日付をインデックスにして、datetime型で扱う方法

サンプルコード

下記のin.csvをpandasのread_csv()で読み込みます。

 $ cat in.csv 
20170101,34
20170102,78
20170103,99

pandasをimportして、read_csv()を実行しています。
 $ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

import numpy as np
import pandas as pd

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

下記が実行結果で、Timeの列がdatetime型に変換されているのが確認できます。
 $ ./sample.py 
            Value
Date             
2017-01-01     34
2017-01-02     78
2017-01-03     99

続いて、read_csv()の設定について少々補足します。

スポンサーリンク

namesで列に名前を付ける

後々の処理のために、列毎に名前をつけておくと便利です。
サンプルコードの例であれば、0列目をDate、1列目をValueとしています。

				names=('Date', 'Value'),

日付の列をindex_colでインデックスに設定

namesで0列目Dateとしているので、index_colでDateを指定すればOKです。

				index_col='Date',

parse_dates=Trueとすることで、インデックスの列をdatetime型に変換

そして、parse_dates=Trueとするとインデックスで指定された列がdatetime型に変換されます。

				parse_dates=True)

下記のように、0列目を直接指定して、datetime型に変換することもできます。
				parse_dates=[0])

スポンサーリンク