【Python】使用pandas_datareader获取股票信息并进行可视化分析
·
pandas_datareader
Pandas 库提供了从财经网站获取金融数据的API接口,可作为商业交易股票数据获取的另一种方法,该在urllib3客户端库基础上实现了身份访问网站的股票。需要注意的是当前模块已经进入pandas-datareader包中。
pip install pandas_datareader
import pandas_datareader.data as web
import datetime as dt
start = dt.datetime(2021,1,1)#获取数据的时间段-起始时间
#end = dt.datetime(2021,6,10)#获取数据的时间段-结束时间
end = dt.date.today()#结束时间为当前时间
stockData = web.DataReader("603927.SS", "yahoo", start, end)#股票为中科软,数据源为雅虎
stockData.to_csv('StockData/603927.csv')
DataReader方法
import pandas_datareader.data as web
df=web.DataReader("600797.SS", "yahoo", "2021-06-01", "2021-06-10")
print(df)
第一个参数为股票代码或其它数据代码,国内股市采用的输入方式“股票代码”+“对应股市”,上证股票在股票代码后面加上“.SS”,深圳股票在股票代码后面加上“.SZ”。
第二个参数是数据源,yahoo
雅虎,iex
IEX,av-daily
Alpha Vantage,naver
Naver韩国股市。
第三、四个参数为数据的起止时间。
数据说明
Data:时间
High:最高价格
Low:最低价格
Open:开盘价
Close:收盘价
Volume:成交量
Adj Close:复权收盘价
数据获取和分析
可以在连板网获取股票代码
import bs4 as bs
import requests#python的http客户端
import pickle#用于序列化反序列化
import datetime as dt
import pandas as pd
import pandas_datareader.data as web
from matplotlib import style
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
import os
def DownloadStock():
style.use('ggplot')
start = dt.datetime(2018,6,10)
end = dt.datetime(2021,6,10)
#根据股票代码从雅虎财经读取该股票在制定时间段的股票数据
df = web.DataReader("600797.SS", 'yahoo',start,end)
#保存为对应的文件
df.to_csv('StockData/{}.csv'.format("600797"))
def PlotStock(data):
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
x = data['Date']
plt.plot(x, data['Close'], label='Close')
plt.plot(x, data['Open'], label='Open')
plt.title('2018-2021年股票')
plt.xlabel('Date:2018-2021')
plt.legend(loc='best')
plt.savefig(r'StockData/01.jpg')
plt.show()
def udoPlotStock(data):
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
x = data['Date']
plt.plot(x, (data['Close']-data['Open']))
plt.title('2018-2021年股票')
plt.xlabel('Date:2018-2021')
plt.ylabel('涨跌',)
plt.savefig(r'StockData/02.jpg')
plt.show()
if __name__ == '__main__':
#获取三年股票数据
albbData=DownloadStock()
data=pd.read_csv(r'StockData/600797.csv')
#股票交易时间序列图
PlotStock(data)
#股票涨跌
udoPlotStock(data)
更多推荐
已为社区贡献1条内容
所有评论(0)