18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 上市公司国企数量分析

上市公司国企数量分析

时间:2023-05-04 12:00:02 | 来源:网站运营

时间:2023-05-04 12:00:02 来源:网站运营

上市公司国企数量分析:前段时间看到有人在问中国上市公司中,国企数量有多少。当时感觉这个问题并不复杂,应该有现成的结论,结果百度、谷歌之后,发现并没有一个明确的答案。本篇文章就是带领大家了解下获取上市公司中国企数量的方法。

首先市场上都有哪些国企呢,不同的网站划分方法不同,有粗有细。比如分为国有企业、国有控股企业、国有相对控股企业,或者央企、省属国企、地方国企等等。不用纠结,我们选择其中一个口径进行分析。

先说结论:

  1. 目前两个交易所共有上市公司3833个(包括部分已经暂停交易的公司)
  2. 其中国有企业共计1167个,占比30.45%
  3. 上交所中国企680个,深交所487个
  4. 两市国企中,央企国资控股407家,地方国资控股324家,省属国资控股419家,其他国有17家

好,对数据收集过程有兴趣的同学可以继续往下看

一、拿到全体上市公司列表

有一说一,上交所和深交所的官方网站这几年从表现形式、数据披露类别方面都有长足进步,不过我更喜欢深交所的网站,感觉真正是站在客户的角度做的网站。

深交所的上市公司列表非常明了,直接下载为excel,里面包含了公司代码、公司简称、公司全称、英文名称、注册地址、总股本、所属行业、公司网址等在内的信息。可以说是相当人性化了。相反,在上交所网站,我把网站翻个底朝天也没看到上市公司列表,看来只能另辟蹊径了。

深交所的公司列表下载页
没办法,最终使用python baostock库下载了两市全套股票代码,剔除其中的各类指数就是我们需要的上市公司列表。

二、判断是否为国企

(一)交易所官方网站

很无奈,两个交易所网站都没有公司类型、组织形式等相关信息。

(二)国家企业信用信息公示系统

网址:http://www.gsxt.gov.cn/

企业信用信息公示系统提供国内所有公司的工商信息,数据是最全的,而且免费,从中的公司类型可以看出公司是否为国企。但是该网站不提供API,每次查询均须通过真人验证,无法批量查询。其他比如企查查、企查猫这些网站,有些提供API,不过都需要付费,查询一次几毛钱,扛不住公司多啊。

再次无奈

(三)其他财经网站

穷逼没钱,现在只能曲线救国,继续百度,终于在我东方财富网上面看到了蛛丝马迹

网址:https://quotes.money.163.com/f10/gszl_601117.html#01f01

东方财富F10公司资料页面
在这正是我们想要的,但是组织形式不全,部分与企业信息系统不符。

部分公司缺失组织形式
继续寻找,最终还是我常用的雪球给力,公司材料页非常齐全,测试了几个公司后发现不但有国企、民企、外资之分,竟然里面还有央企、省属和地方的子分类,虽然没有体现是绝对控股、相对控股还是参股,但是对于我们已经足够了。

网址:https://xueqiu.com/snowman/S/SH600371/detail#/GSJJ

雪球的公司简介页面
雪球的数据非常直观,下面进入喜闻乐见的数据展示环节。

三、数据展示

两市国企总体情况
截止到2020年4月30日,上交所国企占比42%左右,深交所国企占比仅为22%,两市总占比30.4%。关于国有上市公司历年占比和增长趋势的数据等将来有空了在做。

明显可以看出,省属国企和央企普遍规模较大,在上交所挂牌的较多。

雪球数据的公司分类,从逻辑上来讲是根据其披露的实际控制人来区分的,其中27家公司没有体现公司类型,猜测是无法判断一致行动人的性质。还有被标注为”其他国有“类别的公司如下,不知道这些公司有什么特殊之处,还请专业人士点评。

其他国有公司
本篇文章虽然展示了上市公司国企数据,但更多的是给一个值观的感受,具体意义需要再挖掘。最近随着国企混合所有制改革等政策的推进,上市公司结构可能会更加复杂,国企、民企的更加难以区分。如何激活国企活力,如何避免国有资产流失不重蹈覆辙,如何让更多的人感受到国企发展的红利,如何解决公私经商环境的平衡公平问题都是需要仔细研究探讨的。


四、数据获取方法

首先,使用Python Baostock库下载所有上市公司代码,具体参考其官网。

然后一个Python文件即可搞定,是不是很简单!

# -*- coding: utf-8 -*-import requestsimport xlwtimport pandas as pdimport timeimport jsonheaders = { 'Accept': 'application/json, text/plain, */*', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Connection': 'keep-alive', 'Cookie': 'xq_a_token=48575b79f8efa6d34166cc7bdc5abb09fd83ce63; xqat=48575b79f8efa6d34166cc7bdc5abb09fd83ce63; xq_r_token=7dcc6339975b01fbc2c14240ce55a3a20bdb7873; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOi0xLCJpc3MiOiJ1YyIsImV4cCI6MTU4OTY4MjczMCwiY3RtIjoxNTg4NjI3ODM4MjM4LCJjaWQiOiJkOWQwbjRBWnVwIn0.T8Kn6v1mJhaShx0AnQ-J68Vsq2rKbk10SnvLoIineGTbEacSsFhRmF8H49wekqFHxzW_JOnjHG-l7cocC65CdLTn_ji3WLfIqdyiibGvs1Pvox0y_uMvduLod8aSwc-KVmoXq6B4k-nCc_1TcqtOIBCw7M9PQrbHXS2P_VROcbNWCHxgcAOF00n4eEPQrWDahmU9lQBlijnV4_hIJE8bf31YKDEhedyXwvSg4P5wjnIDmg0AL-xov0MvtQOFpOKD0dXSTy3xkBQaP1HWzRjznqNnZU8hXUltXUlpjc8Owi3XHjzGBJPiQMR9JfVcIkcLl4OlO3L-fO6zXSKuC6yFHQ; u=331588627844878; device_id=24700f9f1986800ab4fcc880530dd0ed; s=cv110w8aqt', 'Host': 'stock.xueqiu.com', 'Origin': '雪球 - 聪明的投资者都在这里', 'Referer': '雪球-聪明的投资者都在这里', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'same-site', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36' }#从baostock获取的all_stock.csv上市公司列表,通过pandas解析,获得公司总数量#我这里把csv文件另存成了exceldf = pd.read_excel('all_stock.xlsx')height,width = df.shape#初始化创建一个上市公司类别的excel文件,用于存储结果workbook = xlwt.Workbook(encoding = 'utf-8')worksheet = workbook.add_sheet('company_SHA')# 遍历深交所A股所有公司列表,使用公司股票代码爬取公司基本信息# 如果遇到连接问题,记录并重复get4次,如果仍然无法连接,则跳过抓取下一个公司#y = heightfor x in range(0,height): if("sh" in df.loc[x,"code"]): company_id = "SH"+df.loc[x,"code"][3:] url = "https://stock.xueqiu.com/v5/stock/f10/cn/company.json?symbol="+company_id elif("sz" in df.loc[x,"code"]): company_id = "SZ"+df.loc[x,"code"][3:] url = "https://stock.xueqiu.com/v5/stock/f10/cn/company.json?symbol="+company_id i = 1 while i<=4: try: res = requests.get(url, headers = headers) try: res_dict = json.loads(res.text) break except: print("Json 解析异常") except requests.exceptions.ConnectionError: print('ConnectionError -- please wait 3 seconds') time.sleep(3) except requests.exceptions.ChunkedEncodingError: print('ChunkedEncodingError -- please wait 3 seconds') time.sleep(3) except: print('未知错误 重新连接') time.sleep(3) i+=1 if(i == 4): print(company_id+":该公司无法获取") company_type = "无此公司" controler = "无实际控制人" else: if(res_dict['data']['company'] is None or res_dict['data']['company']['classi_name'] is None or res_dict['data']['company']['actual_controller'] is None): company_type = "公司无类型" controler = "无实际控制人" else: company_type = res_dict['data']['company']['classi_name'] controler = res_dict['data']['company']['actual_controller'] print("剩余:"+str(y)+"个: "+df.loc[x,"code"]+":"+df.loc[x,"code_name"]+":"+company_type+" "+controler) #将结果写入excel worksheet.write(x,0,df.loc[x,"code"]) worksheet.write(x,1,df.loc[x,"code_name"]) worksheet.write(x,2,company_type) worksheet.write(x,3,controler) workbook.save('xueqiu2.xls') time.sleep(1) y-=1

关键词:分析

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭