使用python对tushare中证500的数据进行股票评价。

时间:2024-03-29 12:40:40
  • 实验目的

1. 股票评价

  • 实验要求

    对中证500股票进行评价。

  • 实验过程
  1. 获取中证500的历史数据,把中证500的股票代码放在一个dataFrame()中。

import tushare as ts

import pandas as pd

data_code=pd.DataFrame()

code=ts.get_zz500s().code

data_code['code']=code

data_code.head()

使用python对tushare中证500的数据进行股票评价。

  1. 获取2018年2月的盈利数据。

使用python对tushare中证500的数据进行股票评价。

使用python对tushare中证500的数据进行股票评价。  

 

  1. 获取中证500的数据,并且按照股票代码把数据合并在同一个表格中。

profit=profit[['code','name','net_profit_ratio']]

data_profit=pd.merge(data_code,profit,on='code')

data_profit

使用python对tushare中证500的数据进行股票评价。

  1. 获取股票代码为600000的第三季度月k线数据。

test=ts.get_hist_data('600000',start='2018-07-01',end='2018-09-30',ktype='M')

test.head()

使用python对tushare中证500的数据进行股票评价。

  1. 计算股票的波动幅度。

test['p_change']=(test['high']-test['low'])/test['low']

test.head()

使用python对tushare中证500的数据进行股票评价。

 

  1. 获取中证500各个股票的第三季度的股价波动幅度数据。

使用python对tushare中证500的数据进行股票评价。

转置:

使用python对tushare中证500的数据进行股票评价。

  1. 股票市场性=流动股本/总股本,获取股票流动性的数据。

使用python对tushare中证500的数据进行股票评价。

  1. 计算股票的周转率并且与股票代码合并成一个表。

使用python对tushare中证500的数据进行股票评价。

  1. 获取2018年2月的流动资产周转率数据,用来表示营运能力。

使用python对tushare中证500的数据进行股票评价。

  1. 获取中证500的流动资产周转率的数据。

使用python对tushare中证500的数据进行股票评价。

  1. 短期偿债能力。

使用python对tushare中证500的数据进行股票评价。

  1. 财务结构

使用python对tushare中证500的数据进行股票评价。

  1. 线性计算每支股票的得分,首先将先前获取得到的多个数据集合并为一个。

使用python对tushare中证500的数据进行股票评价。

  1. 把非数值的数据替换为0.

使用python对tushare中证500的数据进行股票评价。

 

  1. 计算得分。

使用python对tushare中证500的数据进行股票评价。

  1. 描绘得分的折线图:

使用python对tushare中证500的数据进行股票评价。

由折线图看出有一个股票的分数明显异常,为找出这个异常的股票,筛选出分数小于-80000的数据。

使用python对tushare中证500的数据进行股票评价。

找到了代码为002670的股票,其net_profit_ratio的数值为-24622.57明显远远小于其他的任何一个股票。

  1. 分别筛选各个分数段的股票。

评分大于100:一共3个。

使用python对tushare中证500的数据进行股票评价。

 

使用python对tushare中证500的数据进行股票评价。

分数在[75,100]之间的:一共14个。

使用python对tushare中证500的数据进行股票评价。

使用python对tushare中证500的数据进行股票评价。

分数在[25,50]之间的:一共有273个。

使用python对tushare中证500的数据进行股票评价。

使用python对tushare中证500的数据进行股票评价。

分数小于25的:一共有13个。

使用python对tushare中证500的数据进行股票评价。

使用python对tushare中证500的数据进行股票评价。

从分数的分布来看比较满足分位数的分布。

把异常数据删除掉并且把剩余的数据放在一个新的dataframe中观察其他score的分布情况。

使用python对tushare中证500的数据进行股票评价。

使用python对tushare中证500的数据进行股票评价。

折线图:

使用python对tushare中证500的数据进行股票评价。

  1. 准确分析:获取2018年10月中证500的月k线数据。

使用python对tushare中证500的数据进行股票评价。

 

将分级后的数据与10月份result合并。

使用python对tushare中证500的数据进行股票评价。

使用python对tushare中证500的数据进行股票评价。

 

使用python对tushare中证500的数据进行股票评价。

计算各个等级的准确率:

p= data1_r[data1_r['p_change']>0].count()/data1_r['p_change'].count()

大于100:

使用python对tushare中证500的数据进行股票评价。

P=0/3=0,准确率为0

[75,100]:

使用python对tushare中证500的数据进行股票评价。

P=3/14=21.42%,准确率为21.42。

[25,50]:

使用python对tushare中证500的数据进行股票评价。

P=28/265=10.57%,准确率为10.57%。

[<25]:

使用python对tushare中证500的数据进行股票评价。

P=3/7=42.86%,准确率为42.86%。

由此可以看出,分数为[<25]的股票准确率最高,大于100的准确率最低,为0,但准 确率都不高。

  1. 将股票得分与涨跌情况进行聚类分析,获取中证500的涨跌数据。

 

 

  1. 转置数据,并且把股票得分与涨跌情况进行合并。

使用python对tushare中证500的数据进行股票评价。

  1. 对数据进行归一化处理,并且去掉重复的行。

使用python对tushare中证500的数据进行股票评价。

  1. 聚类:

使用python对tushare中证500的数据进行股票评价。

  1. 聚类后的结果:

使用python对tushare中证500的数据进行股票评价。

 

  1. 聚类后的准确率:

p= Rr[(Rr.type==0) & (Rr.p_change>0)].count()/ Rr[(Rr.type==0)].count()

Type=0,p=0/19=0,准确率为0.

使用python对tushare中证500的数据进行股票评价。

 

Type=1:p=69/287=24.04%

使用python对tushare中证500的数据进行股票评价。

使用python对tushare中证500的数据进行股票评价。

Type=2:p=0/1=0,准确率为0。

使用python对tushare中证500的数据进行股票评价。

Type=3,p=0/120=0,准确率为0;

使用python对tushare中证500的数据进行股票评价。

Type4:p=65/65=100%,准确率为100%。

 

聚类后type4准确率是最高的,达到100%,其他的准确率都很低,低达0%。

 

 

  • 总结

本次实验学会了如何处理NaN值数据,并且从可视化的散点图或折线图中发现异常的数据点,从而排查出异常的数据点。还学习了如何把两个数据聚合在一起,完成聚类的操作,以及如何通过历史的数据对最近的数据进行预测,算出准确率。