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])
スポンサーリンク