前言
今天给大家分享如何用python获取美股数据
获取数据是数据分析的第一步是找到可靠的真实的数据。金融市场如此庞大,数据获取的渠道有很多,各大财经网站都可以爬取。但是毕竟爬取数据是很费精力的,从头爬取十分麻烦。因此今天给大家介绍一个python的第三方库,可以免去爬取的麻烦,比如yfinance,几乎可以当做api来调用。下面就给大家介绍下yfinance的功能的初步探索。
1
获取个股数据
在anaconda prompt里输入pip install yfinance
获取个股数据,以阿里巴巴(美股代码:BABA)为例
import yfinance as yfalbb = yf.Ticker('BABA')albb_info= albb.infoprint(albb_info)
获取历史数据,并将其可视化
import yfinance as yfalbb = yf.Ticker('BABA')albb_info= albb.infoprint(albb_info)import yfinance as yfimport matplotlib.pyplot as pltalbb = yf.Ticker('BABA')hist = albb.history(period='max')hist_close = hist['Close']plt.figure(figsize=(26,14))plt.title('albb')hist_close.plot()plt.show()
1
获取多股数据
同时下载阿里巴巴和苹果(美股代码“AAPL”)的历史数据,并且设置时间段为2019年1月2日至2019年11月20日
也可以使用pandas_datareader去更快地下载数据,并确保返回的数据与pandas_datareader的格式相同,则可以使用pandas_datareader.data.get_data_yahoo()方法
from pandas_datareader import data as pdrimport yfinance as yfyf.pdr_override()data= pdr.get_data_yahoo("BABA", start="2019-01-02", end= "2019-11-20")print(data)
2
获取股指数据
解析雅虎财经官网股指代码规则
上雅虎财经官网查看不同指数的代码,下一步要用
接下来我们获取“中国上证指数、香港恒生指数、日经指数、南韩综合指数、新加坡海峡时报指数、英国富时100指数、道琼斯工业平均指数、巴西Bovespa指数”并将各个指数的收盘做出时序图
接下来我们获取“中国上证指数、香港恒生指数、日经指数、南韩综合指数、新加坡海峡时报指数、英国富时100指数、道琼斯工业平均指数、巴西Bovespa指数”并将各个指数的收盘做出时序图
import yfinance as yffrom pandas_datareader import data as pdrimport matplotlib.pyplot as pltimport numpy as npfrom matplotlib.font_manager import FontPropertiesyf.pdr_override()font = FontProperties(fname = "C:/Users/lemon/Documents/Tencent Files/1321771918/FileRecv/Hiragino Sans GB W3.otf",size = 18)WorldStockIndexList = {'000001.SS':'中国上证指数','^HSI':'香港恒生指数','^N225':'日本日经225指数','^KS11':'南韩综合指数','STI':'新加坡海峡时报指数','^FTSE':'英国富时100指数','^DJI':'道琼斯工业平均指数','^BVSP':'巴西Bovespa指数'}world_data={}for ticker in WorldStockIndexList.key():world_data[ticker]=pdr.get_data_yahoo(ticker)subjects= list(WorldStockIndexList.values())tickers= list(WorldStockIndexList.values)plot_pos=[421,422,423,424,425,426,427,428]new_colors = ['red','green','blue','cyan','brown','gold','fuchsia','black']fig = plt.figure(figsize=(32,36))fig.suptitle('环球指股',fontsize=36,fontproperties = font)for pos in np.arange(len(plot_pos)):ax = fig.add_subplot(plot_pos[pos])y_data =world_data[tickers[pos]]['Close']b = ax.plot(y_data,color=new_colors[pos])ax.set_title(subjects[pos],fontproperties = font)plt.show()
通过结果显示,某些指数之间的形态还是很相似的。
本期作者:钱佳靖
本期编辑校对:秦范
长按,关注数据皮皮侠

