Pandas 0.8.1 を使用して Yahoo の株価を取得しています
from datetime import datetime
from pandas.io.data import DataReader
stk_price = DataReader('600809.ss', 'yahoo', datetime(2006,1,1), datetime(2012,12,31)).reset_index()
>>> stk_price.Date
0 2010-01-04 00:00:00
1 2010-01-05 00:00:00
2 2010-01-06 00:00:00
3 2010-01-07 00:00:00
4 2010-01-08 00:00:00
そして、次の方法で日付を文字列に変換したい:
>>>stk_price.Date.astype('|S10')
0 1970-01-15
1 1970-01-15
2 1970-01-15
3 1970-01-15
4 1970-01-15
5 1970-01-15
「2010-01-04」などではなく「1970-01-15」と表示されるのはなぜですか? 修正方法は?
そして、私が持っている場合
DATE_LIST = [
u'20090331', u'20090630', u'20090930', u'20091231', \
u'20100331', u'20100630', u'20100930', u'20101231', \
u'20110331', u'20110630', u'20110930', u'20111231', \
u'20120331', u'20120630', u'20120930', u'20121231'
]
stk_price
Date 列の行を以下でフィルタリングしようとしDATE_LIST
ています。
from datetime import datetime
from pandas.io.data import DataReader
import numpy as np
DATE_LIST = [
u'20090331', u'20090630', u'20090930', u'20091231', \
u'20100331', u'20100630', u'20100930', u'20101231', \
u'20110331', u'20110630', u'20110930', u'20111231', \
u'20120331', u'20120630', u'20120930', u'20121231'
]
DATE_ARRAY = np.array(DATE_LIST,dtype='datetime64[us]')
stk_price = DataReader('600809.ss', 'yahoo', datetime(2006,1,1), datetime(2012,12,31)).reset_index()
rst = stk_price[stk_price.Date.isin(DATE_ARRAY)].Close
しかし、最初は空です。
それを修正する方法または Pandas 関数は結果をフィルタリングできますか?