该文章仅供学习参考
数据平台为baostock,网址为:www.baostock.com
目前baostock平台只有申万一级行业分类,如果想要了解更多的行业分类可以
参考以下网站:
1.巨潮资讯网-数据中心-数据浏览器-高级搜索
http://webapi.cninfo.com.cn/#/dataBrowse
证监会行业分类
http://www.csrc.gov.cn/pub/newsite/scb/ssgshyfljg/
下面是如何用baostock获取A股上市公司行业分类数据的代码:
1.更改当前工作路径
import os
# os.getcwd() 获取当前工作路径
os.chdir(r'E:\行业分析')
os.getcwd()
2.调用接口获取全行业信息
import baostock as bs
import pandas as pd
# 登陆系统
lg = bs.login()
# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond error_msg:'+lg.error_msg)
# 获取行业分类数据
rs = bs.query_stock_industry()#获取全行业信息
# rs = bs.query_stock_basic(code_name="浦发银行")
print('query_stock_industry error_code:'+rs.error_code)
print('query_stock_industry respond error_msg:'+rs.error_msg)
# 打印结果集
industry_list = []
while (rs.error_code == '0') & rs.next():
# 获取一条记录,将记录合并在一起
industry_list.append(rs.get_row_data())
result = pd.DataFrame(industry_list, columns=rs.fields)
# 结果集输出到csv文件
result.to_csv("stock_industry.csv", encoding="gbk", index=False)
#保存到当前工作路径
# 或结果集输出到excel文件
result.to_excel("stock_industry.xlsx", encoding="gbk", index=False)
# 登出系统
bs.logout()
可能需要等待一定的时间
若使用jupyternotebook可以预览数据框的信息
可以看到这里有一些空值,这些公司可能因为有一些问题(可能是面临退市之类的)
等一下我们用“分类缺失”填充这些公司的分类。
3.整理各行业股票代码,导出到csv
需要提前建好各行业股票代码的文件夹!!!!
#读入上面保存的文件
df=pd.read_csv('stock_industry.csv',encoding="gbk")
#填充分类缺失
df['industry'].fillna('分类缺失',inplace=True)
#取行业名称
industry=df['industry'].value_counts()
a=industry.index[:]
industry_list=list(a)
#保存各行业股票代码到文件夹
for i in industry_list:
df_industry=df[df['industry']==i]
df_industry.to_csv('E:\\行业分析\\各行业股票代码\\'+i+'.csv')
最后就可以得到各行业的股票代码等数据了