MJM*_*rty 1 api dataframe python-2.7 yahoo-finance pandas
我正在尝试使用Yahoo Finance API将数据读入DataFrame.但是,当我从列表中读取符号的值时,它们最终会出现在DataTable中的单个列中.我正在使用API,因为我实际上想要分红,P/E等数据,我认为你不能用datareader访问这些数据.我有两个问题:
我将如何完成我想要为股票代码列表做的事情
import urllib2
from pandas import DataFrame
def get_data2(symbol):
columns = ['last','date','change','high','low','vol']
url = "http://download.finance.yahoo.com/d/quotes.csv?s=%s&f=sl1d1c1hgv" % symbol
file =urllib2.urlopen(url)
s = file.read()
file.close()
s= s.strip()
L = s.split(',')
L[0] = L[0].replace('"','')
L[2] = L[2].replace('"','')
D = DataFrame(L, columns=columns)
return D
Run Code Online (Sandbox Code Playgroud)使用此代码,我得到一个ValueError,因为形状不匹配,但实质上我想从列表中读取每个值到DataTable中的一列,并最终迭代一个符号列表.
谢谢你的帮助
试试这个:
In [23]: from pandas_datareader import data
In [24]: data.DataReader('GOOG', 'yahoo', '2016-06-01', '2016-06-13')
Out[24]:
Open High Low Close Volume Adj Close
Date
2016-06-01 734.530029 737.210022 730.659973 734.150024 1250800 734.150024
2016-06-02 732.500000 733.020020 724.169983 730.400024 1337600 730.400024
2016-06-03 729.270020 729.489990 720.559998 722.340027 1222700 722.340027
2016-06-06 724.909973 724.909973 714.609985 716.549988 1565300 716.549988
2016-06-07 719.840027 721.979980 716.549988 716.650024 1336200 716.650024
2016-06-08 723.960022 728.570007 720.580017 728.280029 1582100 728.280029
2016-06-09 722.869995 729.539978 722.335999 728.580017 985900 728.580017
2016-06-10 719.469971 725.890015 716.429993 719.409973 1206000 719.409973
Run Code Online (Sandbox Code Playgroud)
演示拉定制雅虎的报价(例如:Market Cap
,Div Yield
,EPS Est Next Quarter
等)