スポンサーリンク
pandasで日付を指定して行を抽出する
まずはdatetime型をindexにして、pandasのデータを作成します。
import pandas as pd data = pd.read_csv('csv.txt', usecols=[0,1], names=('Date', 'Value'), index_col='Date', parse_dates=True)
例えば、2018年のデータを抽出するには、
print (data['2018'])
下記は、スライスを使って、2017-01-01 〜 2017-01-03 のデータを抽出しています。
print (data['2017-01-01' : '2017-01-03'])
秒単位でも日付を指定できます。
下記は、2017-01-01 01:01:03 〜 2017-01-03を指定しています。
print (data['2017-01-01 01:01:03' : '2017-01-03'])
スポンサーリンク
サンプルコード
例えば、下記のcsv.txtがあったとします。
$ cat csv.txt 20170101010101,34,44,66 20170101010103,34,44,66 20170102010153,78,44,66 20180103010143,99,44,66 20180104010133,99,44,66 20180105010123,99,44,66
下記がサンプルコードになります。
$ 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['2017-01-01' : '2017-01-03']) print (data['2017-01-01 01:01:03' : '2017-01-03']) print (data['2018'])
下記が実行結果になります。
$ ./sample.py Value Date 2017-01-01 01:01:01 34 2017-01-01 01:01:03 34 2017-01-02 01:01:53 78 Value Date 2017-01-01 01:01:03 34 2017-01-02 01:01:53 78 Value Date 2018-01-03 01:01:43 99 2018-01-04 01:01:33 99 2018-01-05 01:01:23 99
スポンサーリンク