如何用Python中Tushare包轻松完成股票筛选(详细流程操作)
如何用Python中Tushare包轻松完成股票筛选(详细流程操作)
本文包括安装以及调用Tushare包的详细流程操作
一、Tushare简介
Tushare是Python中一个十分好用的免费调用股票数据的接口包。运用tushare可以很轻松的调取各种股票数据。
网址:https://tushare.pro/register?reg=427001
可以调取的数据包括但不仅限于:
二、安装tushare
Windows系统直接在terminal输入以下代码
pip install tushare
Mac在terminal输入
pip3 install tushare
需要注意的是,从tushare上获取的数据类型为Dataframe,所以为了调用和存储数据同样需要安装pandas包,安装方法同上。
三、调用tushare
为了使用tushare包抓取数据,我们同时需要调用tushare和pandas包。
import tushare as ts
from pandas import Dataframe
接着我们便需要在tushare官网上进行注册,然后在个人主页获取相当于自己的钥匙的token
网址:https://tushare.pro/register?reg=427001
拿到token之后,我们便可以在python中调用tushare包,格式如下:
ts.set_token('你的token')
pro = ts.pro_api()
stock_info = pro.stock_basic()#股票基本信息
之后在根据官网上给出的数据接口调用不同种类的数据。
需要注意的是,由于tushare采取的是积分制,所以有一些数据接口需要积累一定的积分才能调用,详细信息见官网上的说明。
四、代码分享
此处分享一下我编写的抓取所有股票一段时间内股东人数变化并将变化量并进行排序的代码:
from pandas import DataFrame
import tushare as ts
import time
ts.set_token('be3dddcd0ebf47cb8586afe0428666a1547ae0fc999682d245e8ee1c')
pro = ts.pro_api()
stock_info = pro.stock_basic()#获取所有股票的基本信息
#print(len(stock_info))
startdate: str = input('请输入起始时间,格式为20210304\n')
enddate: str = input('请输入结束时间\n')
code: str = input('请输入查询股票的代码,输入0则查询所有股票\n')
variation = {}
if code != '0':stockholder_num = pro.stk_holdernumber(ts_code=code,start_date=startdate,end_date=enddate)#print(stockholder_num)df=DataFrame(stockholder_num)df.to_excel('stockholder_num.xlsx')
else:for i in range(0,len(stock_info)):#遍历所有股票if i>0 and i % 100 == 0:time.sleep(60)#由于每分钟调用限制,每调用100次等60scode = stock_info.at[i,'ts_code']#print(code)stockholder_num = pro.stk_holdernumber(ts_code=code,start_date=startdate,end_date=enddate)#print(stockholder_num)try:#由于一段时间内不一定每只股票都公告了股东人数,所以有可能会报错later = stockholder_num.at[0,'holder_num']former = stockholder_num.at[len(stockholder_num)-1,'holder_num']change = later - formerexcept:#如果没有公告股东人数则跳过这一支股票进入下一支continue#print(change)variation[stock_info.at[i,'ts_code']] = change#将股东人数变化量存入字典#print(i)rank = sorted(variation.items(), key = lambda kv:(kv[1], kv[0]), reverse=True)#给字典排序print(rank)df=DataFrame(rank)df.to_excel('stockholder_num.xlsx')#将数据存入Excel表中
如何用Python中Tushare包轻松完成股票筛选(详细流程操作)相关推荐
- 对于python来说、一个模块就是一个文件-PYTHON中的包和模块
为了更加友好的对python代码进行组织管理,python中出现了包和模块的概念 类似生活中整理我们的物品一样,将代码按照不同的功能进行整理整合,可以很大程度的提升代码可读性和代码质量,方便在项目中进 ...
- python 测试字符串类型_【教程】如何用Python中的chardet去检测字符编码类型
[背景] 之前已经使用过chardet了,也算用了不少次了. 之前也写过和chardet相关的: 但是没写教程,举例说明如何使用. 现在去举例解释解释. [python示例代码演示如何用chardet ...
- python的out模式_如何用python中的DataFrame列的模式替换NA值?
我对Python(和本网站)完全陌生,目前正试图用它们的模式替换特定数据帧列中的NA值.我试过了各种不起作用的方法.请帮我看看我做错了什么:如何用python中的DataFrame列的模式替换NA值? ...
- python xlrd安装_详解python中xlrd包的安装与处理Excel表格
一.安装xlrd 地址 下载后,使用 pip install .whl安装即好. 查看帮助: >>> import xlrd >>> help(xlrd) Help ...
- python中引入包的时候报错AttributeError: module ‘sys‘ has no attribute ‘setdefaultencoding‘解决方法?
python中引入包的时候报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法? 参考文章: (1)pyth ...
- Python入门-Python中的包,impot,from,import
#Python中的包 #包(python package)是一个分层次的目录(directory)结构,它将一组功能相近的模块组织在一个目录下 #作用:1.代码规范,2.避免模块名称冲突 #包与目录的 ...
- 基于python中jieba包的中文分词中详细使用(一)
文章目录 基于python中jieba包的中文分词中详细使用(一) 01.前言 02.jieba的介绍 02.1 What 02.2特点 02.3安装与使用 02.4涉及到的算法 03.主要功能 03 ...
- 浅析Python中signal包的使用
原文链接:https://www.jb51.net/article/74844.htm 这篇文章主要介绍了Python中signal包的使用,主要在Linux系统下对进程信号进行相关操作,需要的朋友可 ...
- 使用python中py2neo包连接neo4j(安装,连接,成功解决)
使用python中py2neo包连接neo4j neo4j下载 JDK下载 neo4j官网下载 检查安装是否成功 py2neo安装 命令行安装 测试安装是否成功 最近在研究有关知识图谱的任务,选择用图 ...
最新文章
- WIN7、XP局域网共享问题和重置IP协议
- jquery给元素添加样式表的方法
- html掷骰子小游戏,网页实现掷骰子小游戏
- 第四讲 deque
- php下拉列表 二级 联动,PHP+Ajax实现二级联动下拉菜单!
- bzoj 2631: tree
- 高度平衡二叉树的构建_数据结构与算法系列(十六)平衡二叉树的构建实现过程演示...
- stream 多个字段分组_Python Pandas对Excel数据的分组聚合和数据透视
- java数据类型double保留两位小数
- pythonfor循环是迭代器吗_Python学习——for循环,生成器,迭代器详解
- Apache Shiro(六)-基于URL配置权限
- java编程过程——流程图
- 这个游戏引擎开源了!
- linux文件管理ppt,Linux操作系统_文件管理2.ppt
- 计算机在桌面被删了如何恢复,桌面文件被删除怎么恢复?电脑文件误删恢复教程...
- java testsuite_JUnit —— TestSuite 的使用
- bzoj 3894: 文理分科 最小割
- 强化学习蘑菇书Easy RL第二、三章学习(马尔可夫决策过程、表格型方法)
- JavaScript(第五天)—爱创课堂专业前端培训
- video 视频播放动画