我试图只在这个网址上使用第二个数据框,但我无法弄清楚如何指定只获取一个数据帧。它打印出图表和表格的数据框,但我想要打印出来的只是表格。
`import pandas as pd
import urllib.request
page = pd.read_html('https://www.google.com/finance/historical?q=a&startdate=Jan%201%2C%202000&enddate=Feb%2028%2C%202017&num=200&ei=_nm3WKGHCIf7jAG74ar4Cw&start=200', header=0)
for df in page:
print(df)`
答案 0 :(得分:4)
您要查找的表具有类属性gf-table
,将其传递给pd.read_html
,然后它只会读取第二个表:
page = pd.read_html('https://www.google.com/finance/historical?q=a&startdate=Jan%201%2C%202000&enddate=Feb%2028%2C%202017&num=200&ei=_nm3WKGHCIf7jAG74ar4Cw&start=200',
attrs = {'class': 'gf-table'},
header=0)
page
# Date Open High Low Close Volume
#0 May 12, 2016 42.59 42.94 42.42 42.73 2224506
#1 May 11, 2016 42.19 43.20 42.12 42.46 3325515
#2 May 10, 2016 41.50 42.00 41.35 42.00 2094305
#3 May 9, 2016 41.51 41.78 41.29 41.33 1741539
#4 May 6, 2016 40.86 41.62 40.72 41.43 1403476
#5 May 5, 2016 40.64 41.03 40.51 40.96 1083956
#...
答案 1 :(得分:0)
使用数据阅读器将是更好的方式来使用谷歌的雅虎财务数据。那说@Psidom提供了正确的答案。
以下是如何使用数据读取器直接将Agilent库存数据作为DataFrame而非数据框列表的示例。
import pandas as pd
import pandas_datareader.data as web
import datetime
start = datetime.datetime(2000, 1, 1)
end = datetime.datetime(2017, 2, 27)
data = web.DataReader('A', 'google', start, end)
data.head()
这将直接返回Pandas数据帧,允许您直接执行类似的操作。
data.ix['2010-01-04']
从spefic数据中获取数据,例如