用几行python代码获取Yahoo,tushare股票数据,超级爽!!(比爬网好太多)

在网上获取股票信息有非常多的方法,在此分享用几行Python代码就搞定想要的股票历史数据,一个是国外Yahoo的接口(缺点是比较慢),另一个是国内的tushare接口(速度快,但限制比较多);少废话先来看一下效果:

import datetime
from pandas_datareader import data as pdr
import yfinance as yf

nio = pdr.get_data_yahoo('NIO', 
                          start=datetime.datetime(2018, 1, 1), 
                          end=datetime.datetime(2023, 1, 1))
nio.head()

这是蔚来股票的数据,默认显示5行
用几行python代码获取Yahoo,tushare股票数据,超级爽!!(比爬网好太多)_第1张图片
蔚来股票加入时间区间限制,显示8行

df1 = nio
df1 = df1['2020-01-01':'2020-12-30']
df1.head(8)

用几行python代码获取Yahoo,tushare股票数据,超级爽!!(比爬网好太多)_第2张图片
蔚来股票显示最新的10行

df1.tail(10)

用几行python代码获取Yahoo,tushare股票数据,超级爽!!(比爬网好太多)_第3张图片
上面是每天的交易数据,下面的例子是微软股票的分红数据

msft = yf.Ticker("MSFT")
msft.dividends

用几行python代码获取Yahoo,tushare股票数据,超级爽!!(比爬网好太多)_第4张图片
Yahoo是非常大方的数据提供服务商,几乎是应有尽有,但因为服务器在境外,所以速度很慢,因此在这里再分享一个国内的免费数据提供商tushare,先看代码,然后再讨论其他问题。
小白们:令牌就是你进接口的钥匙,后面会讲到。

import tushare as ts
pro = ts.pro_api('你的令牌Token')

下面是读数据的代码,这是A股清单。

data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
data.head(12)

用几行python代码获取Yahoo,tushare股票数据,超级爽!!(比爬网好太多)_第5张图片
一共4行代码就可以显示上面的数据,再用下面两行代码就可以显示完全不同的数据!!

读入美丽生态(000010.SZ)从20年11月1日到11月10日间的交易数据

df = pro.daily(ts_code='000010.SZ', start_date='20201101', end_date='20201110')
df

用几行python代码获取Yahoo,tushare股票数据,超级爽!!(比爬网好太多)_第6张图片
效率非常高,数据进来以后可以根据需求进行各种处理,比如画图、计算各种指标、比较、删选等等。

上面的代码是非常简单,但前提是你得有以下的环境:

  1. Python环境;
  2. 添加pandas, pandas_datareader, yfinance, tushare等相应模块;
  3. 了解数据端口的一些特性;

对上面1点: 不想在这里展开,网上有很多这方面的帖子,这链接是一个很正统的出处,有需要的朋友可以看一下;另外Python有很多工作环境,如PyCharm, jupyter 等等,挑一个你喜欢的就好。

对上面2点: 可以用下面的命令安装需要的模块

pip install pandas -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

安装模块:pip install 模块名。
-i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 这句是换国内的源,以便加快安装速度,不是必须的,根据你的网络条件。

对上面3点: 这里要啰嗦一些,要讲的内容比较多
上面已经提到,Yahoo雅虎是非常大方的数据提供服务商,数据内容非常丰富,也不需要任何的附加条件马上可以用。接口的说明可以在这个链接里能看到,因为内容太多,所以在这里不展开了;
Tushare数据平台是国内免费供应商,所以速度很快,但是有点小坑,首先你得注册,点击这个注册链接就可以进行注册,注册完成以后可以得到你的“令牌”, 但马上使用还会出错, 你得在tushare.pro上你的主页上完成个人资料的填写才能导出数据,这是要注意的地方;但这个积分始终是一个坑,真正用了你回体会到不爽的地方,积分是有时间限制的,花钱买当然是最省力的方式,但对偶尔想用一下的人的确是不够方便,当然相对爬网还是要好很多。下面是介绍:
Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。接口详细说明请看官网链接。

相比之下用Python爬网获取金融数据是吃力不讨好的方法,效率太低了,对主流数据来说的确如此,但有些特殊的数据Python爬网还是最有效的方法。

你可能感兴趣的:(python,工作环境,python,金融数据,股票数据,yahoo,tushare)