我正在使用 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
为什么它显示“1970-01-15”而不是“2010-01-04”等?如何解决?
如果我有一个
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_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 函数都可以过滤结果?