您现在的位置是:亿华云 > IT科技类资讯

用Python分析14425条死亡公司数据 看十年创业公司消亡史

亿华云2025-10-03 02:52:54【IT科技类资讯】4人已围观

简介一、前言IT桔子有一个新经济死亡公司数据库:https://www.itjuzi.com/deathCompany,统计了2000-2020年之间比较出名的公司 "死亡" 数据,数据来源真实可靠。

 一、析条消亡前言

IT桔子有一个新经济死亡公司数据库:https://www.itjuzi.com/deathCompany,死亡数据史统计了2000-2020年之间比较出名的公司公司公司 "死亡" 数据,数据来源真实可靠。看年

  "死亡公司数据库" 的创业公司关闭时间是依据公开媒体报道及部分估算,可能会存在些许误差,析条消亡但还是死亡数据史具有较高的可靠性; IT桔子对所收录公司运营状况的判定来源如下:1、公开媒体报道公司关闭、公司公司破产清算的看年;2、公司自身在微信、创业微博等渠道宣布关闭、析条消亡破产清算的死亡数据史;3、公司明显经营异常:公司被注销;公司产品比如APP或微信持续 6 个月及以上没更新;公司因为监管被抓、公司公司无法经营……交叉比对后确认没有持续经营。看年

二、创业数据预处理

对已获取的 14425 条死亡公司数据进行数据查看和预处理 

import pandas as pd df = pd.read_excel(倒闭公司数据.xlsx) df.head() 

  

df.info() # 查看公司描述为NAN的这一行 df[df.isnull().values == True] 

  

挑选最近十年(2010-2019)的死亡公司数据,来看一看这十年里,创业公司的消亡。 

# 提取2010-2019年的死亡公司数据 df1 = df[df[倒闭时间].str[:4].apply(int) >= 2010] df2 = df1[df1[倒闭时间].str[:4].apply(int) < 2020] df2.head() 

   

# 2010-2019 的死亡公司数据保存到新的Excel df2.to_excel(2010-2019倒闭公司数据.xlsx, index=False) 

三、服务器租用数据分析

大家常说 1998 年是中国互联网元年,2010年是移动互联网的元年。也难怪,2010年的移动互联网实在是太热闹了。微信、小米、美团、爱奇艺等都在这一年相继成立。百度在谷歌退出中国后成为最大的受益者,淘宝成为阿里新的增长点,腾讯则宣布 QQ 同时在线超 1 亿人。自此,百度、阿里和腾讯正式成为"三巨头"——BAT。除此之外,网易的网游、新浪的微博、搜狐的视频和输入法也开始发力出击,移动互联网的竞争正式拉开帷幕。

pyecharts 绘制折线图可视化: 

# -*- coding: UTF-8 -*- """ @Author  :叶庭云 @公众号  :修炼Python @CSDN    :https://yetingyun.blog.csdn.net/ """ import pandas as pd import pyecharts.options as opts import pyecharts from pyecharts.charts import Line from pyecharts.globals import CurrentConfig, ThemeType print(pyecharts.__version__)    # 查看当前 pyecharts 版本 # 引用本地js资源渲染 CurrentConfig.ONLINE_HOST = D:/python/pyecharts-assets-master/assets/ # 读取数据 df = pd.read_excel(2010-2019倒闭公司数据.xlsx) df1 = df[(df[成立之年] >= 2010) & (df[成立之年] < 2020)] born_time = df1[成立之年].value_counts() # 按索引  2010-2019排序 born_time = born_time.sort_index() death_time = df[倒闭时间].str[:4].apply(int).value_counts() death_time = death_time.sort_index() year = [f{ i}年 for i in range(2010, 2020)] num_1 = [int(x) for x in born_time.values] num_2 = [int(y) for y in death_time.values] c = (     Line(init_opts=opts.InitOpts(theme=ThemeType.DARK))     .add_xaxis(xaxis_data=year)     .set_colors([#7FFF00, red])     # 设置两条折线图的颜色     .add_yaxis(出生公司数量, y_axis=num_1)     .add_yaxis(死亡公司数量, y_axis=num_2)     .set_global_opts(     # 设置x轴 y轴标签         xaxis_opts=opts.AxisOpts(name=年份),         yaxis_opts=opts.AxisOpts(name=数量)     )     .render(test.html) ) 

2010 年来,历年出生及死亡的亿华云计算公司数量趋势如下图:

  2014、2015年是公司诞生潮,两年后,正好对应了2016、2017的一波死亡潮。在 2017 年和 2018 年,均超过 2000 家公司倒闭,2019年超过 5000 家公司倒闭。2015年以后,新生创业公司越来越少,也侧面反应了创业越来越艰难。 在这十年间,诸多 "风口" 起起伏伏。网约车、团购、直播、基因检测、共享单车、短视频、比特币、VR|AR、无人货架、人工智能、直播带货……

每一个风口上,都站着数百头 "猪",尝试飞起来。下面看看各行业这十年来倒闭公司数量分布情况。 

# -*- coding: UTF-8 -*- """ @Author  :叶庭云 @公众号  :修炼Python @CSDN    :https://yetingyun.blog.csdn.net/ """ import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl import seaborn as sns # 读取数据 df = pd.read_excel(2010-2019倒闭公司数据.xlsx) df[倒闭之年] = df[倒闭时间].str[:4].apply(int) # unique()  获取所属行业这一列的唯一值   去重 datas = list(df[所属行业].unique()) print(datas) # print(len(datas)) for item in datas:     # 判断每行  有这个类型  对应类型的列下添个1     df[item] = df[所属行业].str.contains(item).apply(lambda x: 1 if x else 0) industry_data = df.loc[:, datas] # 将成立之年作为索引标签 industry_data.index = df[倒闭之年] # 将数据集按年份分组并求和,得出每个年份,云南idc服务商公司所属各行业的数量 industry_df = industry_data.groupby(倒闭之年).sum() # print(industry_df) # print(type(industry_df)) # industry_df.to_excel(2010-2019年各行业倒闭公司数量.xlsx, encoding=gbk) mpl.rcParams[font.family] = Kaiti fig, ax = plt.subplots(figsize=(15, 9)) # 绘制热力图    cmap:从数字到色彩空间的映射 # PRGn_r  OrRd  rainbow sns.heatmap(data=industry_df.T, linewidths=0.25,             linecolor=white, ax=ax, annot=True,             fmt=d, cmap=rainbow, robust=True,             ) # 添加描述信息   x y轴  title ax.set_xlabel(年份, fontdict={ size: 18, weight: bold}) ax.set_ylabel(公司所属行业, fontdict={ size: 18, weight: bold}) ax.set_title(2010-2019年各行业倒闭公司数量热力图, fontsize=25, x=0.5, y=1.02) # 隐藏边框 ax.spines[top].set_visible(False) ax.spines[right].set_visible(False) ax.spines[left].set_visible(False) ax.spines[bottom].set_visible(False) # 保存 展示图片 plt.savefig(heat_map.png) plt.show() 

 

# -*- coding: UTF-8 -*- """ @Author  :叶庭云 @公众号  :修炼Python @CSDN    :https://yetingyun.blog.csdn.net/ """ import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl import mplcyberpunk # 读取数据 df = pd.read_excel(2010-2019倒闭公司数据.xlsx) df[倒闭之年] = df[倒闭时间].str[:4].apply(int) # unique()  获取所属行业这一列的唯一值   去重 datas = list(df[所属行业].unique()) print(datas) # print(len(datas)) for item in datas:     # 判断每行  有这个类型  对应类型的列下添个1     df[item] = df[所属行业].str.contains(item).apply(lambda x: 1 if x else 0) industry_data = df.loc[:, datas] # 将成立之年作为索引标签 industry_data.index = df[倒闭之年] # 将数据集按年份分组并求和,得出每个年份,公司所属各行业的数量 industry_df = industry_data.groupby(倒闭之年).sum() # print(industry_df) # print(type(industry_df)) industry_df.T.to_excel(2010-2019年各行业倒闭公司数量.xlsx, encoding=gbk) # 使用风格样式  赛博朋克风格 plt.style.use("cyberpunk") # 设置中文显示 mpl.rcParams[font.family] = SimHei # 设置大小  像素 plt.figure(figsize=(10, 6), dpi=100) # DataFrame 绘制折线图 plt.plot(industry_df, label=industry_df.columns) # 添加描述信息 plt.xticks(range(2010, 2020, 1)) plt.xlabel(年份, fontsize=12) plt.ylabel(倒闭公司数量, fontsize=12) plt.title(2010-2019年各行业倒闭公司数量变化趋势, fontsize=18, x=0.5, y=1.02) # 设置线条发光+面积图 mplcyberpunk.add_glow_effects() # 显示图例 plt.legend(industry_df) # 保存图片 plt.savefig(test_004.png) # 展示图片 plt.show() 

  

这十年来,各行业倒闭公司数量变化趋势大致相似。在2019年,从公司所处行业来看,倒闭最多的是电子商务,有 675 家;其次是企业服务,有 665 家;第三是金融,有 624 家;本地生活排第四,有 446 家。 百团大战、垂直电商大战、外卖大战、打车大战、单车大战,在这些著名的战场里,各种桥段令吃瓜群众们目不暇接。有老大老二打架,老三打没了;有老二老三合并,继续和老大抗衡的;也有老大老二合并,将其他家远远甩在后面的…… 还有像冲顶大会之类直播答题一样,办起来的时候,各家分庭抗礼来势汹汹,却从2018年的公历新年开始,没有挺到农历新年。

风口消亡的背后,是无数创业公司烧掉的钱,每个公司在一开始,都坚信可以烧倒对手,但烧着烧着把自己烧光了,却再也拿不到融资。

 

安邦保险、广信房产这两家属于金融行业的公司,在烧钱榜上融资总额分别排第一、第二。共享单车们也曾大战一场,战火烧过国内的各大城市,甚至烧到了海外。摩拜单车在烧钱榜单名列第三,融资总额 327.1596 亿元;ofo小黄车紧随其后,排名第五,融资总额 167.96 亿元,摩拜单车存活 5 年 11 个月,ofo小黄车存活 5 年 7 个月。

接着来看看这些倒闭公司的获投状态 

import pandas as pd from collections import Counter # 读取数据 df = pd.read_excel(2010-2019倒闭公司数据.xlsx) data = list(df[获投状态]) count = Counter(data).most_common() for item in count:     print(item) 

结果如下: 

# (获投状态,倒闭公司数量) (尚未获投, 5184) (不明确, 4859) (天使轮, 1898) (A轮, 622) (种子轮, 198) (已被收购, 149) (A+轮, 137) (B轮, 117) (Pre-A轮, 111) (战略投资, 44) (C轮, 25) (D轮, 10) (B+轮, 9) (新三板, 5) (E轮, 2) (已退市, 2) (C+轮, 1) (已上市, 1) (Pre-B轮, 1) 

超过 10000 家倒闭公司获投状态为尚未获投、不明确。

创业公司的消亡,究其原因必然是多方面的,除行业竞争激烈这一核心因素外,最主要的还是资金问题。创业者内在对于如何维稳、如何盈利等方面欠缺的了解、思考与准备,不足以在行业稳定后,支撑他在风口来临之初的一腔热血豪情。

 

参考 IT 桔子给的市场定位,分析创业公司死亡原因。

# -*- coding: UTF-8 -*- """ @Author  :叶庭云 @公众号  :修炼Python @CSDN    :https://yetingyun.blog.csdn.net/ """ import pandas as pd from collections import Counter from pyecharts import options as opts from pyecharts.charts import Pie from pyecharts.globals import CurrentConfig CurrentConfig.ONLINE_HOST = D:/python/pyecharts-assets-master/assets/ # 读取数据 df = pd.read_excel(2010-2019倒闭公司数据.xlsx) datas = df[倒闭原因] # 参考IT桔子给的市场定位  创业公司死亡原因主要的问题 reason_loaction = { 团队问题: [创始人问题, 与投资人冲突, 团队能力不足, 团队缺乏激情],                    产品问题: [产品缺陷严重, 产品入场时机],                    资金问题: [烧钱, 现金流断裂, 融资能力不足],                    运营问题: [定价/成本问题, 营销不足, 不重视客户, 转型问题],                    外部原因: [法律法规风险, 行业竞争, 政策监管],                    其他问题: [市场伪需求, 商业模式匮乏, 业务过于分散, 业务调整]                    } reasons_list = [] for item in datas:     data = item.split(|)     for i in data:         reasons_list.append(i) reasons_count = Counter(reasons_list).most_common() for item in reasons_count:     print(item) print(len(reasons_count))     # 主要有20种原因 result = [] for key in reason_loaction.keys():     num = 0     for i, j in reasons_count:         if i in reason_loaction[key]:             num += j     result.append([key, num]) print(result) c = (     # 宽  高  背景颜色     Pie(init_opts=opts.InitOpts(width="800px", height="500px", bg_color="#2c343c"))     .add(         series_name="倒闭原因",   # 系列名称         data_pair=result,         # 系列数据项,格式为 [(key1, value1), (key2, value2)...]         rosetype="radius",        # radius:扇区圆心角展现数据的百分比,半径展现数据的大小         radius="55%",             # 饼图的半径         center=["50%", "50%"],    # 饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标         label_opts=opts.LabelOpts(is_show=False, position="center"),   # 标签配置项     )     .set_colors(["#00BFFF", "#00FF7F", "#FF1493", "#8B008B", "#FFFF00", "#556B2F"])     .set_global_opts(         title_opts=opts.TitleOpts(             title="Customized Pie",             pos_left="center",             pos_top="20",             title_textstyle_opts=opts.TextStyleOpts(color="#fff"),         ),         legend_opts=opts.LegendOpts(is_show=False),     )     .set_series_opts(         tooltip_opts=opts.TooltipOpts(             trigger="item", formatter="{ a} <br/>{ b}: { c} ({ d}%)"  # item: 数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用          ),         label_opts=opts.LabelOpts(color="#fff"),     )     .render("customized_pie.html") ) 

结果如下: 

(行业竞争, 6818) (烧钱, 4963) (融资能力不足, 4655) (营销不足, 2297) (现金流断裂, 1802) (商业模式匮乏, 1490) (政策监管, 992) (业务过于分散, 990) (产品入场时机, 917) (法律法规风险, 850) (市场伪需求, 775) (定价/成本问题, 549) (业务调整, 150) (不重视客户, 101) (产品缺陷严重, 46) (转型问题, 42) (团队能力不足, 42) (创始人问题, 19) (与投资人冲突, 6) (团队缺乏激情, 5) 20 [[团队问题, 72], [产品问题, 963], [资金问题, 11420], [运营问题, 2989], [外部原因, 8660], [其他问题, 3405]] 

  

行业竞争激烈是核心原因。而从市场定位来看,对于创业公司,资金问题是主要原因,包括烧钱、现金流断裂、融资能力不足,其次是外部原因,包括行业竞争激烈、政策监管、法律法规风险。 另外,"伪风口" 与 "伪需求" 也曾迷住众多创业公司的眼。有的瞄准的市场过于分散,还未形成市场效应;有的则没有解决市场痛点,不痛不痒的创造用户不需要的需求。"共享经济" 衍生出的共享单车、共享充电宝红红火火,但共享电话、共享厕纸、共享篮球什么的,倒也不必。

比较有意思的是,这个死亡公司数据库还加了一个上香排行榜,排行第一的果然是大名鼎鼎的“快播”。

还真是有的公司死了,但在人们心里它还活着。 

再来看一下创业公司的地区分布 

# -*- coding: UTF-8 -*- """ @Author  :叶庭云 @公众号  :修炼Python @CSDN    :https://yetingyun.blog.csdn.net/ """ import pandas as pd from collections import Counter from pyecharts.globals import ThemeType, CurrentConfig, GeoType from pyecharts import options as opts from pyecharts.charts import Geo CurrentConfig.ONLINE_HOST = D:/python/pyecharts-assets-master/assets/ # 读取数据 df = pd.read_excel(2010-2019倒闭公司数据.xlsx) # 有些数据可能多了空格 area = list(df[所在地区].str.strip()) area_count = Counter(area).most_common() # 滤除 filter_area = [(北美洲, 23), (亚洲, 11), (欧洲, 3)] area_counts = [item for item in area_count if item not in filter_area] for item in area_counts:     print(item) geo = Geo(init_opts=opts.InitOpts(width=1000px, height=600px, theme=ThemeType.DARK)) geo.add_schema(maptype=china, label_opts=opts.LabelOpts(is_show=True))   # 显示label  省名 geo.add(倒闭公司数量, data_pair=area_counts, type_=GeoType.EFFECT_SCATTER, symbol_size=8) geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) geo.set_global_opts(title_opts=opts.TitleOpts(title=倒闭公司数量在全国的分布),                     visualmap_opts=opts.VisualMapOpts(max_=5000, is_piecewise=True,                     pieces=[{ "max": 50, "min": 0, "label": "0-50", "color": "#708090"},        # 分段  添加图例注释  和颜色                               { "max": 100, "min": 51, "label": "51-100", "color": "#00FFFF"},                               { "max": 200, "min": 101, "label": "101-200", "color": "#00008B"},                               { "max": 300, "min": 201, "label": "201-300", "color": "#483D8B"},                               { "max": 1000, "min": 500, "label": "500-1000", "color": "#1E90FF"},                               { "max": 2000, "min": 1001, "label": "1001-2000", "color": "#8B008B"},                               { "max": 4000, "min": 2001, "label": "2001-4000", "color": "#FF1493"},                               { "max": 5000, "min": 4001, "label": "4001-5000", "color": "#FF0000"}                                  ])                     ) geo.render("geo_map.html") 

 

有个别数据地区是北美洲、亚洲、欧洲这样的,不便于分析,将其滤掉。 

结果如下: 

# (地区,倒闭公司数量) (北京, 4527) (广东, 2355) (上海, 2000) (浙江, 1007) (四川, 707) (江苏, 507) (湖北, 302) (福建, 264) (山东, 211) (陕西, 197) (湖南, 155) (重庆, 154) (河南, 125) (安徽, 119) (天津, 110) (辽宁, 98) (河北, 76) (江西, 62) (黑龙江, 53) (广西, 42) (山西, 36) (台湾, 36) (云南, 34) (贵州, 32) (海南, 26) (香港, 23) (吉林, 20) (内蒙古, 19) (新疆, 16) (甘肃, 11) (宁夏, 7) (西藏, 5) (青海, 2) 

 

北上广不相信眼泪,但创业公司还是青睐于北京、广东、上海等地区。 

最后看一下倒闭公司经营年限分布情况 

# -*- coding: UTF-8 -*- """ @Author  :叶庭云 @公众号  :修炼Python @CSDN    :https://yetingyun.blog.csdn.net/ """ import pandas as pd from collections import Counter from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.globals import ThemeType, CurrentConfig CurrentConfig.ONLINE_HOST = D:/python/pyecharts-assets-master/assets/ # 读取数据 df = pd.read_excel(2010-2019倒闭公司数据.xlsx) year = list(df[经营年限]) year_count = Counter(year).most_common() year_count = sorted(year_count, key=lambda x:x[0]) x_data = [x[0] for x in year_count] y_data = [y[1] for y in year_count] bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK)) bar.add_xaxis(xaxis_data=x_data) bar.add_yaxis("倒闭公司数量", y_axis=y_data) bar.set_global_opts(         title_opts=opts.TitleOpts(title=倒闭公司经营年限分布),         xaxis_opts=opts.AxisOpts(name=经营年限),   # 设置x名称和Label         yaxis_opts=opts.AxisOpts(name=倒闭公司数量),     ) bar.render(bar.html) 

结果如下: 

经营年限不足 1 年的公司有 277 家,倒闭公司经营年限大部分在 2-4 年,经营年限为1年、5年的也比较多,经营年限 6 年以上的越来越少。 

经营年限最长的倒闭公司Top10: 

import pandas as pd # 读取数据 df = pd.read_excel(2010-2019倒闭公司数据.xlsx) # 按经营年限   降序排列 df1 = df.sort_values(by=经营年限, ascending=False) df1.iloc[:10, ].to_excel(经营年限最长的倒闭公司Top10.xlsx, index=False) 

结语:这是一个最好的时代,也是一个最坏的时代,一批创业者正踏上天堂之路,一批创业者正走向地狱之门,创业的道路上致使失败的原因太多,如同蝴蝶效应一样,一个小小的问题,也可能导致最终的失败。创业不易,且行且珍惜!

很赞哦!(429)