保存tushare所有股票数据,并对涨停进行分析
import tushare as ts
import pandas as pd
import time
import os
import datetime
# 指定自己要存放文件的绝对路径
os.chdir('E:/')
pd.set_option('expand_frame_repr', False)
now_time = datetime.date.today()
# 从tushare获取指定日期
def get_today_all_ts(date):date_now = date# 先获得所有股票的收盘数据df_close = ts.get_today_all()# 获得所有股票的基本信息df_basics = ts.get_stock_basics()df_all = pd.merge(left=df_close, right=df_basics, on='name', how='outer')df_all['code'] = df_all['code'].astype(str) + ' '# 保存数据df_all.to_csv(str(date_now) + '_ts.csv', index=False, encoding='gbk')print('%s is downloaded.' % (str(date_now)))print(df_all)return df_allif __name__ == '__main__':get_today_all_ts(date=now_time)
import pandas as pd
import requests
import tushare as ts
import os
import time
import warnings
warnings.filterwarnings('ignore')
pd.set_option('expand_frame_repr', False)
os.chdir('E:/')
date_now = datetime.date.today()
print(str(date_now))
# ====龙虎榜数据# 读取TDX的每日股票数据
df = pd.read_csv('{}_ts.csv'.format(str(date_now)), encoding='gbk')
df.fillna(0, inplace=True)
df.replace('nan ', 0, inplace=True)
df['timeToMarket'] = pd.to_datetime(df['timeToMarket'])df[['changepercent', 'pe', 'mktcap', 'nmc']] = df[['changepercent', 'pe', 'mktcap', 'nmc']].astype(float)
df['timeToMarket'] = pd.to_datetime(df['timeToMarket'])df['code'] = df['code'].astype(str) # 转化成str后,NAN也变成nan str格式
# 添加 交易所 列
df.loc[df['code'].str.startswith('3'), 'exchange'] = 'CY'
df.loc[df['code'].str.startswith('6'), 'exchange'] = 'SH'
df.loc[df['code'].str.startswith('0'), 'exchange'] = 'SZ'# 找出上涨的股票
df_up = df[df['changepercent'] > 0.00]
# 走平股数
df_even = df[df['changepercent'] == 0.00]
# 找出下跌的股票
df_down = df[df['changepercent'] < 0.00]# 找出涨停的股票
limit_up = df[df['changepercent'] >= 9.70]
limit_down = df[df['changepercent'] <= -9.70]# 涨停股数中的未封板股,上市日期小于15天
limit_up_new = limit_up[pd.to_datetime(date_now) - limit_up['timeToMarket'] <= pd.Timedelta(15)]
# 涨停股数中次新股,上市日期小于1年
limit_up_fresh = limit_up[pd.to_datetime(date_now) - limit_up['timeToMarket'] <= pd.Timedelta(365)]# 涨停股数中的未封板股,上市日期小于15天
limit_down_new = limit_down[pd.to_datetime(date_now) - limit_down['timeToMarket'] <= pd.Timedelta(15)]
# 涨停股数中次新股,上市日期小于1年
limit_down_fresh = limit_down[pd.to_datetime(date_now) - limit_down['timeToMarket'] <= pd.Timedelta(365)]print('A股上涨个数: %d, A股下跌个数: %d, A股走平个数: %d。' % (df_up.shape[0], df_down.shape[0], df_even.shape[0]))
print('A股总成交额:%d, 总成交量:%d' % (df['amount'].sum(), df['volume'].sum()))
print('A股平均市盈率:%.2f, 平均流通市值 %.2f 亿, 平均总市值 %.2f 亿' % (df['pe'].mean(), df['nmc'].mean(), df['mktcap'].mean()))
print('涨停数量:%d 个, 涨停中上市日期小于15天的:%d, 涨停中上市日期小于1年的:%d' % (limit_up.shape[0], limit_up_new.shape[0], limit_up_fresh.shape[0]))
print('跌停数量:%d 个, 涨停中上市日期小于15天的:%d, 涨停中上市日期小于1年的:%d' % (limit_down.shape[0], limit_down_new.shape[0], limit_down_fresh.shape[0]))# 获取指定列的分析统计结果
def get_output(df, columns='industry', name='_limit_up'):df = df.copy()output = pd.DataFrame()output = pd.DataFrame(df.groupby(columns)['code'].count())output['pe_mean'] = df.groupby(columns)['pe'].mean()output['pe_median'] = df.groupby(columns)['pe'].median()output['nmc_mean'] = df.groupby(columns)['nmc'].mean()output['nmc_median'] = df.groupby(columns)['nmc'].median()output['mktcap_mean'] = df.groupby(columns)['mktcap'].mean()output['mktcap_median'] = df.groupby(columns)['mktcap'].median()output['volume_mean'] = df.groupby(columns)['volume'].mean()output['volume_median'] = df.groupby(columns)['volume'].median()output['amount_mean'] = df.groupby(columns)['amount'].mean()output['amount_median'] = df.groupby(columns)['amount'].median()output.sort_values('code', ascending=False, inplace=True)output.rename(columns={'code': name + '_count'}, inplace=True)return outputfor i in ['industry', 'exchange', 'area']:
# 对涨停的股票分析output_limit_up = get_output(limit_up, columns=i, name='limit_up')print(output_limit_up)
# 对跌停的股票分析output_limit_down = get_output(limit_down, columns=i, name='limit_down')print(output_limit_down)
# 对全量的股票分析output_total = get_output(df, columns=i, name='total')print(output_total)
保存tushare所有股票数据,并对涨停进行分析相关推荐
- python tushare获取股票数据_Python 金融: TuShare API 获取股票数据 (1)
多多教Python 金融 是我为金融同行,自由职业投资人 做的一个专栏.这里包含了我自己作为量化交易员,在做研究时所用到的Python技巧和实用案例.这个栏目专业性会比较强:本人29岁,量化工作5年的 ...
- 利用python进行股票分析(五)通过tushare读取股票数据
文章目录 5. 通过tushare读取股票数据 5.1. 切换pip3的源 5.2. 获取股票数据 5.2.1. 前复权和后复权 5.2.2. 读取tushare数据,保存到csv文件 5.2.3. ...
- 基于tushare的股票数据构建1
基于tushare的股票数据构建<一> tushare中提供了很多非常优秀的数据结构,但是并不是所有的数据都对自己有用,这里需要进行构建自己的数据库以方便后续进行数据建模 tushare数 ...
- R获取股票数据并进行进行可视化分析
R获取股票数据并进行进行可视化分析 # 加载依赖的包 library(quantmod) library(ggplot2) library(magrittr) library(broom) # 设置计 ...
- tushare 读取股票数据
import os import pandas as pd import tushare as ts import numpy as np from pathlib import Path impor ...
- python tushare获取股票数据并可视化_荐Python获取股票数据及其可视化--基于tushare库...
01 Tushare简介 Tushare是一个金融大数据开放社区,它免费提供各类金融数据和区块链数据 , 助力智能投资与创新型投资.在Tushare 旧版 运行了3年后,Tushare Pro终于要跟 ...
- tushare获得股票数据后进行数据合并
tushareID:511783 1.各种模块的导入 %matplotlib inline import matplotlib.pyplot as plt import seaborn plt.sty ...
- python tushare获取股票数据并可视化_Python股票数据获取及其可视化——基于tushare库...
01 Tushare简介 Tushare是一个金融大数据开放社区,它免费提供各类金融数据和区块链数据 , 助力智能投资与创新型投资.在Tushare 旧版 运行了3年后,Tushare Pro终于要跟 ...
- python tushare获取股票数据并可视化_使用Python获取股票数据Tushare
最近不是在炒股吗,挣点儿零花钱,权当学习金融知识了,前几天了解到转债,T+0,这个东西有点儿刺激啊,哈哈,就是老去看手机,实在有点儿耽误事儿,就想着,用python把股票价格拉下来,如果有上下的变动, ...
最新文章
- C++ 结构体struct 的使用
- 视觉稿与H5页面之间的终端适配
- Oracle服务扫描工具Oscanner
- 解决错误:No module named ‘Cryptodome‘ 和错误rosbag.bag.ROSBagException: unsupported compression type: lz4
- python isinstance和issubclass区别
- HTML的onclick的this指向
- 之全能忙内_闪闪发光刘耀文,全能忙内初长成,西南狼崽变狼王
- MemoryCache 使用不当导致的一个 BUG
- Js 获取 本周、本月起始时间
- 接口测试 Jmeter面试题
- Smart3D飞控地方坐标系
- java手机 最新版本_JAVA手机模拟器安卓版
- ubuntu18.10安装redshift护眼软件
- Linux配置本地yum源(光盘镜像挂载)
- 面试造火箭,秋招建大楼!阿里新出《Java权威面试指南》堪称精品!
- C语言练习,计算圆的面积和周长。
- Python网络爬虫学习实战:爬虫快速入门
- 克隆技术与DOS批处理命令
- 点击按钮自动拨打电话
- Sony大法的Music Center for PC歌曲一直显示未分析的解决办法