該文章僅供學(xué)習(xí)參考
數(shù)據(jù)平臺(tái)為baostock,網(wǎng)址為:www.baostock.com
目前baostock平臺(tái)只有申萬(wàn)一級(jí)行業(yè)分類,如果想要了解更多的行業(yè)分類可以
參考以下網(wǎng)站:
1.巨潮資訊網(wǎng)-數(shù)據(jù)中心-數(shù)據(jù)瀏覽器-高級(jí)搜索
http://webapi.cninfo.com.cn/#/dataBrowse
證監(jiān)會(huì)行業(yè)分類
http://www.csrc.gov.cn/pub/newsite/scb/ssgshyfljg/
下面是如何用baostock獲取A股上市公司行業(yè)分類數(shù)據(jù)的代碼:
1.更改當(dāng)前工作路徑
import os
# os.getcwd() 獲取當(dāng)前工作路徑
os.chdir(r'E:\行業(yè)分析')
os.getcwd()
2.調(diào)用接口獲取全行業(yè)信息
import baostock as bs
import pandas as pd
# 登陸系統(tǒng)
lg = bs.login()
# 顯示登陸返回信息
print('login respond error_code:'+lg.error_code)
print('login respond error_msg:'+lg.error_msg)
# 獲取行業(yè)分類數(shù)據(jù)
rs = bs.query_stock_industry()#獲取全行業(yè)信息
# rs = bs.query_stock_basic(code_name="浦發(fā)銀行")
print('query_stock_industry error_code:'+rs.error_code)
print('query_stock_industry respond error_msg:'+rs.error_msg)
# 打印結(jié)果集
industry_list = []
while (rs.error_code == '0') & rs.next():
# 獲取一條記錄,將記錄合并在一起
industry_list.append(rs.get_row_data())
result = pd.DataFrame(industry_list, columns=rs.fields)
# 結(jié)果集輸出到csv文件
result.to_csv("stock_industry.csv", encoding="gbk", index=False)
#保存到當(dāng)前工作路徑
# 或結(jié)果集輸出到excel文件
result.to_excel("stock_industry.xlsx", encoding="gbk", index=False)
# 登出系統(tǒng)
bs.logout()

image.png
可能需要等待一定的時(shí)間
若使用jupyternotebook可以預(yù)覽數(shù)據(jù)框的信息

image.png
可以看到這里有一些空值,這些公司可能因?yàn)橛幸恍﹩?wèn)題(可能是面臨退市之類的)
等一下我們用“分類缺失”填充這些公司的分類。
3.整理各行業(yè)股票代碼,導(dǎo)出到csv
需要提前建好各行業(yè)股票代碼的文件夾?。。?!

image.png
#讀入上面保存的文件
df=pd.read_csv('stock_industry.csv',encoding="gbk")
#填充分類缺失
df['industry'].fillna('分類缺失',inplace=True)
#取行業(yè)名稱
industry=df['industry'].value_counts()
a=industry.index[:]
industry_list=list(a)
#保存各行業(yè)股票代碼到文件夾
for i in industry_list:
df_industry=df[df['industry']==i]
df_industry.to_csv('E:\\行業(yè)分析\\各行業(yè)股票代碼\\'+i+'.csv')
最后就可以得到各行業(yè)的股票代碼等數(shù)據(jù)了

image.png