要计算指数的加权值,指数的市盈率、市净率,或者指数的净资产收益率,都需要用到指数所包含的个股信息,前面分享的《指数的净资产收益率计算》和《指数的市盈率和市净率计算》等文中都有提到。
这些个股的数据怎么来获得呢?下面就来介绍下,总共就2个步骤:1)指数数据的获取;2)数据的解析。
(第一步)指数数据的获取
首先从中证指数官网(https://www.csindex.com.cn)或者国证指数官网(http://www.cnindex.com.cn)中获取相应的指数数据。
例如下图中,在中证指数官网搜索沪深300指数:
然后在搜索出来的列表中选择沪深300:
接着在进入的页面点击【样本权重】来下载沪深300的指数信息:
最后就会获得沪深300的数据信息,它是一个excel表,表里面包含了如下的信息:
最后还需要把这个文件另存为.csv文件,因为程序里面是直接处理.csv的,下载的源文件是.xsl格式的文件。
(第二步)数据的解析
小将是按照自己的路劲进行存放的,所有的指数都放在./importfile/indexSeries/indexTpye/目录下,大家可以按照自己的开发喜好来进行调整。
然后只要去解析每个指数数据的第4列即可,这一列包含了指数所有的成分股证券代码
个股的数据就不再这里累述,在《股票数据源baostock》有进行过介绍,大家可以参考。
源码
import pandas as pd
indexType = ['./importfile/indexSeries/indexTpye/hs300.csv', # 沪深300 - 0
'./importfile/indexSeries/indexTpye/zz500.csv', # 中证500 - 1
'./importfile/indexSeries/indexTpye/zz100.csv', # 中证100 - 2
'./importfile/indexSeries/indexTpye/shz50.csv', # 上证50 - 3
'./importfile/indexSeries/indexTpye/hsyy300.csv', # 沪深医药300 - 4
'./importfile/indexSeries/indexTpye/zzyh.csv', # 中证银行 -5
'./importfile/indexSeries/indexTpye/zzxf.csv', # 中证消费 -6
'./importfile/indexSeries/indexTpye/zzbj.csv', # 中证白酒 -7
'./importfile/indexSeries/indexTpye/db500.csv',