中国股市的股票好像是不缺的,林林总总的股票数目已经接近4000只了。4000只股票对一个人来说无疑太多了,我们认识这些股票总要采用分类的方式,选择我们熟悉的行业。哪如何统计获取股市中每个行业的的具体数量呢?今天我们就看一下如何获取股市的行业分类以及每个行业的股票数量,最后将行业和行业对应的股票数量用玫瑰图的形式展现出来。
1.获取行业分类
import pandas as pd
import tushare as ts
import numpy as np
import pyecharts
TOKEN = 'c09****8c'
pro = ts.pro_api(token=TOKEN)
#获取申万一级行业列表
df1 = pro.index_classify(level='L1', src='SW')
print(df1)
使用如图就可以获取申万一级行业的股票代码了。我们看一下输出:
很神奇吧,我们这样就可以获取股市中所有行业的分类代码了。接下来我们将针对每个分类获取,每个分类对应的股票数量。
二、获取行业股票数量
tushare提供了一个接口函数index_member能够获取行业对应所有的股票。不太方便的是,该函数必须要传入行业的代码,并且只能传入一个,这个就要求我们只能把所有的行业都传入一遍,进行获取。这里用for语句进行实现。代码如下:
for x in df1.index.values:
dfx = pro.index_member(index_code = x )
df1.loc[x,'total_number'] = [dfx.shape[0]]
print(df1)
利用一个for循环,将所有的股票代码进行了一遍循环。循环体中,每循环一次获取一下股票对应行业的股票数目,并且放到新增的'total_number'列中。最后使用print打印出来。
三、使用pyecharts做玫瑰图
现在我们所有的数据都已经放到df1中了,下一步进行作图呈现了。这里使用pyecharts做玫瑰图。代码如下:
pie = Pie("股市玫瑰图", title_pos='center', width=900)
pie.add("行业", df1['industry_name'], df1['total_number'], center=[75, 50], is_random=True, radius=[30, 75], rosetype='area',
is_legend_show=False, is_label_show=True)
pie.show_config()
pie.render()
这里注意的一点是,这个默认生成的图片是html格式,并没有直接在jupter中进行显示,需要打开图片进行查看。图片生成如下:
是不是感觉很漂亮?哈哈
四、如何获取tushare数据。
今天的文章就到这里了,最后一点,如何获取文中的股票数据呢?步骤如下:
1)在tushare免费注册,免费取得token。点击,免费注册获取token或者https://tushare.pro/register?reg=287337免费注册,获取token。
2)在python中导入tushare模块。使用语句import tushare as tushare
3)读取数据。按照本文第一个步骤中的示例代码,就可以获取股票数据了。
希望各位早日破解股市迷津,实现财务自由!