利用python进行股票分析(五)通过tushare读取股票数据
文章目录
- 5. 通过tushare读取股票数据
- 5.1. 切换pip3的源
- 5.2. 获取股票数据
- 5.2.1. 前复权和后复权
- 5.2.2. 读取tushare数据,保存到csv文件
- 5.2.3. 读取cvs文件,分析某价格所在区间
- 5.2.4. 读取csv文件,汇总区间分布
- 5.2.5. 读取db数据,加载到DataFrame
5. 通过tushare读取股票数据
5.1. 切换pip3的源
mkdir ~/.pip
vim ~/.pip/pip.conf输入下面的内容:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com然后使用pip3 install xxx,就可以了
5.2. 获取股票数据
5.2.1. 前复权和后复权
- 前复权是保持现有价位不变,将以前的价格缩减,将除权前的K线向下平移,使图形吻合,保持股价走势的连续性。
- 后复权是在K线图上以除权前的价格为基准来测算除权后股票的市场成本价。就是把除权后的价格按以前的价格换算过来。简单的说,就是保持先前的价格不变,而将以后的价格增加。
5.2.2. 读取tushare数据,保存到csv文件
import tushare as ts
ts.set_token('你的tushare token')
pro = ts.pro_api()
# 日线行情,https://waditu.com/document/2?doc_id=27
# df = pro.daily(ts_code='601939.SH', adj='hfq', start_date='20180801', end_date='20210801')
# A股复权行情, https://waditu.com/document/2?doc_id=146
df = ts.pro_bar(ts_code='601939.SH', adj='qfq', start_date='20050101', end_date='20210805')
df.to_csv("601939-7.csv")
5.2.3. 读取cvs文件,分析某价格所在区间
# 区间
import pandas as pd
import numpy as npdf = pd.read_csv("601939-7.csv")
df = df[df["trade_date"] > 20170101]
print(df)
df1 = df["close"] <= 5.712
print(df1.value_counts())
print(np.percentile(df["close"], 20)) # 自20170101起,此结果是5.712,代表 <5.712 的有20%, >5.712的有80%
5.2.4. 读取csv文件,汇总区间分布
import pandas as pd
import numpy as npdef interval_statistics(data, intervals):range_list = []count_list = []percent_list = []if len(data) == 0:returnfor num in data:for interval in intervals:lr = tuple(interval.split('~'))left, right = float(lr[0]), float(lr[1])if left <= num <= right:intervals[interval] += 1for key, value in intervals.items():# print("%10s" % key, end='') # 借助 end=''可以不换行range_list.append(key)# print("%10s" % value, end='') # "%10s" 右对齐count_list.append(value)# print('%16s' % '{:.3%}'.format(value * 1.0 / len(data)))percent_list.append('%s' % '{:.3%}'.format(value * 1.0 / len(data)))# 构造返回的DataFrameresult_dict = {"range": range_list, "count": count_list, "percent": percent_list}df = pd.DataFrame(result_dict)return dfif __name__ == '__main__':start = 1 # 区间左端点number_of_interval = 20 # 区间个数length = 0.5 # 区间长度# 从1开始,每0.5一个区间,共20个区间intervals = {'{}~{}'.format(length * x + start, length * x + start + length): 0 for x inrange(number_of_interval)} # 生成区间# {'1.0~1.5': 0, '1.5~2.0': 0, '2.0~2.5': 0, '2.5~3.0': 0, '3.0~3.5': 0, '3.5~4.0': 0, '4.0~4.5': 0, '4.5~5.0': 0, '5.0~5.5': 0, '5.5~6.0': 0, '6.0~6.5': 0, '6.5~7.0': 0, '7.0~7.5': 0, '7.5~8.0': 0, '8.0~8.5': 0, '8.5~9.0': 0, '9.0~9.5': 0, '9.5~10.0': 0, '10.0~10.5': 0, '10.5~11.0': 0}print(intervals)# 读取数据df = pd.read_csv("601939-7.csv")df = df[df["trade_date"] > 20170101]print(df)# data = np.random.randint(start, start + length * number_of_interval + 1, size=1000) # 待统计数据(1000随机数)data = df["close"]# print(data)result_dataframe = interval_statistics(data, intervals)print(result_dataframe)# 结果如下
# 1.0~1.5 0 0.000%
# 1.5~2.0 0 0.000%
# 2.0~2.5 0 0.000%
# 2.5~3.0 0 0.000%
# 3.0~3.5 0 0.000%
# 3.5~4.0 0 0.000%
# 4.0~4.5 19 1.701%
# 4.5~5.0 90 8.057%
# 5.0~5.5 47 4.208%
# 5.5~6.0 386 34.557%
# 6.0~6.5 382 34.199%
# 6.5~7.0 165 14.772%
# 7.0~7.5 15 1.343%
# 7.5~8.0 10 0.895%
# 8.0~8.5 3 0.269%
# 8.5~9.0 0 0.000%
# 9.0~9.5 0 0.000%
# 9.5~10.0 0 0.000%
# 10.0~10.5 0 0.000%
# 10.5~11.0 0 0.000%
5.2.5. 读取db数据,加载到DataFrame
# DataFrame连接数据库db(需要pymysql模块)
import pandas as pd
import numpy as np
import pymysql
import datetime# 链接数据库,分别是IP,端口,用户名,密码,数据库,编码形式,注意这里的密码和IP我隐藏了,请自己输入你的
con = pymysql.connect(host='127.0.0.1', port=3306, user='kelvin', passwd='#Hello123', db='kelvin', charset='utf8')
cursor = con.cursor()
sql = 'SELECT * FROM stock_601939'
cursor.execute(sql)
# 获得列名
column = [col[0] for col in cursor.description]
# 获得数据
data = cursor.fetchall()
# 获得DataFrame格式的数据
df = pd.DataFrame(list(data), columns=column)
print(df)
df1 = df[df["transaction_date"] > datetime.date(2018, 8, 1)]
price = np.percentile(df1["last_price"], 10) # np.percentile(arr, 70)
print(price)
利用python进行股票分析(五)通过tushare读取股票数据相关推荐
- NLP实战:利用Python理解、分析和生成文本 | 赠书
导读:本文内容参考自<自然语言处理实战:利用Python理解.分析和生成文本>一书,由Hobson Lane等人所著. 本书是介绍自然语言处理(NLP)和深度学习的实战书.NLP已成为深度 ...
- python处理excel表格数据-利用Python处理和分析Excel表中数据实战.doc
利用Python处理和分析Excel表中数据实战 [利用python进行数据分析--基础篇]利用Python处理和分析Excel表中数据实战 原创 2017年06月28日 15:09:32 标签: p ...
- 利用python进行显著性分析
利用python进行显著性分析 实验数据 做的是朋友的 呃呃植物什么什么实验 ,相关数据已经打码,最右侧的一列是 spss 的显著性分析的结果 代码 最终设想是能实现和 SPSS 一样或者近似的结果 ...
- 利用Python爬取《囧妈》豆瓣短评数据,并进行snownlp情感分析
利用Python爬取<囧妈>豆瓣短评数据,并进行snownlp情感分析 一.电影评论爬取 今年的贺岁片<囧妈>上映前后,在豆瓣评论上就有不少网友发表了自己的观点,到底是好评的声 ...
- 如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件?
如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件? 1.问题描述 2.解决过程 2.1 问题分析: 2.2 解决思路 3.运行结果 1.问题描述 最近在处理一堆工 ...
- Python爬虫笔记——分析AJAX传递的JSON获取数据-初步分析动态网页
转载文章链接: Python爬虫:分析AJAX传递的JSON获取数据-初步分析动态网页(1) [4]实战:爬取动态网页的两种思路爬取新浪趣图(1) [5]实战:爬取动态网页的两种思路爬取新浪趣图(2) ...
- python股票数据分析_利用PYTHON全自动生成分析报告
日常工作当中,特别是金融行业当中,有不少人的工作是提取数据,分析数据,得到可视化图表,并加入自已的研究分析结论,最终生成分析报告,并且有不少报告是定期生成,存在不少重复手工劳动.本文通过一个简单实例, ...
- python自动生成分析报告_利用PYTHON全自动生成分析报告
日常工作当中,特别是金融行业当中,有不少人的工作是提取数据,分析数据,得到可视化图表,并加入自已的研究分析结论,最终生成分析报告,并且有不少报告是定期生成,存在不少重复手工劳动.本文通过一个简单实例, ...
- 利用python从网页查找数据_利用Python模拟淘宝的搜索过程并对数据进行可视化分析...
数据挖掘入门与实战 公众号: datadw 本文讲述如何利用Python模拟淘宝的搜索过程并对搜索结果进行初步的数据可视化分析. 搜索过程的模拟:淘宝的搜索页面有两种形式, 一种形式是, 2019/2 ...
最新文章
- 10 张图打开 CPU 缓存一致性的大门
- 分布式数字签名令牌TokenProvider
- java中随机数彩票练习_基于javascript实现彩票随机数生成(简单版)
- HTML滚动条自定义
- 使用RabbitMQ实现延迟任务
- html中如何实现选择存储路径的功能_Tomcat 路由请求的实现 Mapper
- linux服务器配置python环境_服务器python环境配置福利,CentOS ,Linux 一键下载python3和环境配置...
- 鼠标双击检测_雷蛇巴塞利斯蛇无线游戏鼠标评测:青出于蓝胜于蓝
- vue设置isactive_Vue 编码风格指南!
- POJ2002 Squares
- 在html中使用rect函数,HTML canvas rect()用法及代码示例
- centos安装office及PDF阅读器
- 金融行业相关知识点整理
- VS2015安装配置assimp和glm
- 百度地图大头针图片的自定义
- python正态分布函数_数学之美_正态分布(Python代码)
- 考华为HCIP证书多钱?
- SolidWorks怎么开启RealView图形渲染功能
- android 4.0 原生短信,Android 4.0 短信发不出去解决办法
- dubbo学习视频资料
热门文章
- 统信桌面操作系统V20专业版(1022)发布
- 基于asp.net+vbscript+wsc编写网站
- Android自定义View实现方位刻度尺(类似于吃鸡手游)
- 移远 EC200S 模组(4G Cat.1 通信模组)AT指令测试 TCP/UDP 通信过程
- CSharp中集合与字典Contains效率差别
- 特定领域知识图谱知识融合方案(实体对齐)论文合集
- 如何低成本搭建dnslog服务器
- 网页前端监控系统(错误日志,接口监控)的使用
- whitelabel error page SpEL RCE漏洞复现
- 台式计算机开机没反应,台式机开机没反应怎么回事