有人可以解释一下如何为 pandas datareader 输入正确的日期格式吗?看来我过去已经尝试过这两种日期格式并且它们都有效。然而,在过去的几天里,这些线路只输出去年的数据......
import pandas_datareader.data as wb
import datetime
start = datetime.datetime(2012,1,1)
end = datetime.datetime(2012,12,31)
df = wb.DataReader ('GE', 'google', '2012, 1, 1', '2012, 12, 31') # doesn't work
print (df)
df2 = wb.DataReader ('GE', 'google', start, end) # doesn't work
print (df2)
两者的缩写输出:
Open High Low Close Volume
Date
2016-09-15 29.55 29.85 29.42 29.75 35262527
...
2017-09-13 23.93 24.18 23.92 24.11 38629676
谢谢, 大卫
在修复此问题的过程中,我升级到了最新版本的 pandas (0.20.3) 和 pandas-datareader (0.5.0)。这并没有修复问题中的代码。问题似乎是试图使用谷歌作为来源。下面的代码运行正确,但使用 yahoo 作为源。然而,当尝试使用谷歌作为来源时,它失败了。
from pandas_datareader import data, wb
from datetime import date
start = date (2012, 1, 1)
end = date (2012, 12, 31)
df = data.DataReader ('GE', 'yahoo', start, end)
print (df)
import yfinance as yfin
import datetime
start = datetime.datetime(2012,1,1)
end = datetime.datetime(2012,12,31)
tickerGE2 = yfin.Ticker('GE')
dfGE2 = tickerGE2.history( period="max", start=start, end=end)
print (dfGE2)
样本输出
Open High Low Close \
日期
2012-01-03 00:00:00-05:00 85.363812 86.628115 85.363812 85.972549
2012-01-04 00:00:00-05:00 85.738404 87.096361 85.597928 86.909058
2012-01-05 00:00:00-05:00 86.440802 87.096367 85.644761 86.862236