十年沉浮,用Python看创业公司消亡史


前言

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

数据预处理
1import?pandas?as?pd
2
3df?=?pd.read_excel('倒闭公司数据.xlsx')
4df.head()

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

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

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

数据分析
1#?-*-?coding:?UTF-8?-*-
2"""
3@Author??:叶庭云
4@公众号??:修炼Python
5@CSDN????:https://yetingyun.blog.csdn.net/
6"""
7import?pandas?as?pd
8import?pyecharts.options?as?opts
9import?pyecharts
10from?pyecharts.charts?import?Line
11from?pyecharts.globals?import?CurrentConfig,?ThemeType
12
13print(pyecharts.__version__)????#?查看当前?pyecharts?版本
14#?引用本地js资源渲染
15CurrentConfig.ONLINE_HOST?=?'D:/python/pyecharts-assets-master/assets/'
16
17#?读取数据
18df?=?pd.read_excel('2010-2019倒闭公司数据.xlsx')
19df1?=?df[(df['成立之年']?>=?2010)?&?(df['成立之年']?<?2020)]
20born_time?=?df1['成立之年'].value_counts()
21#?按索引??2010-2019排序
22born_time?=?born_time.sort_index()
23death_time?=?df['倒闭时间'].str[:4].apply(int).value_counts()
24death_time?=?death_time.sort_index()
25
26year?=?[f'{i}年'?for?i?in?range(2010,?2020)]
27num_1?=?[int(x)?for?x?in?born_time.values]
28num_2?=?[int(y)?for?y?in?death_time.values]
29
30c?=?(
31????Line(init_opts=opts.InitOpts(theme=ThemeType.DARK))
32????.add_xaxis(xaxis_data=year)
33????.set_colors(['#7FFF00',?'red'])?????#?设置两条折线图的颜色
34????.add_yaxis('出生公司数量',?y_axis=num_1)
35????.add_yaxis('死亡公司数量',?y_axis=num_2)
36????.set_global_opts(?????#?设置x轴?y轴标签
37????????xaxis_opts=opts.AxisOpts(name='年份'),
38????????yaxis_opts=opts.AxisOpts(name='数量')
39????)
40????.render('test.html')
41)

2014、2015年是公司诞生潮,两年后,正好对应了2016、2017的一波死亡潮。在 2017 年和 2018 年,均超过 2000 家公司倒闭,2019年超过 5000 家公司倒闭。2015年以后,新生创业公司越来越少,也侧面反应了创业越来越艰难。 在这十年间,诸多 "风口" 起起伏伏。网约车、团购、直播、基因检测、共享单车、短视频、比特币、VR|AR、无人货架、人工智能、直播带货……
1#?-*-?coding:?UTF-8?-*-
2"""
3@Author??:叶庭云
4@公众号??:修炼Python
5@CSDN????:https://yetingyun.blog.csdn.net/
6"""
7import?pandas?as?pd
8import?matplotlib.pyplot?as?plt
9import?matplotlib?as?mpl
10import?seaborn?as?sns
11
12#?读取数据
13df?=?pd.read_excel('2010-2019倒闭公司数据.xlsx')
14df['倒闭之年']?=?df['倒闭时间'].str[:4].apply(int)
15#?unique()??获取所属行业这一列的唯一值???去重
16datas?=?list(df['所属行业'].unique())
17print(datas)
18#?print(len(datas))
19for?item?in?datas:
20????#?判断每行??有这个类型??对应类型的列下添个1
21????df[item]?=?df['所属行业'].str.contains(item).apply(lambda?x:?1?if?x?else?0)
22
23industry_data?=?df.loc[:,?datas]
24#?将成立之年作为索引标签
25industry_data.index?=?df['倒闭之年']
26#?将数据集按年份分组并求和,得出每个年份,公司所属各行业的数量
27industry_df?=?industry_data.groupby('倒闭之年').sum()
28#?print(industry_df)
29#?print(type(industry_df))
30#?industry_df.to_excel('2010-2019年各行业倒闭公司数量.xlsx',?encoding='gbk')
31mpl.rcParams['font.family']?=?'Kaiti'
32fig,?ax?=?plt.subplots(figsize=(15,?9))
33#?绘制热力图????cmap:从数字到色彩空间的映射
34#?PRGn_r??OrRd??rainbow
35sns.heatmap(data=industry_df.T,?linewidths=0.25,
36????????????linecolor='white',?ax=ax,?annot=True,
37????????????fmt='d',?cmap='rainbow',?robust=True,
38????????????)
39
40#?添加描述信息???x?y轴??title
41ax.set_xlabel('年份',?fontdict={'size':?18,?'weight':?'bold'})
42ax.set_ylabel('公司所属行业',?fontdict={'size':?18,?'weight':?'bold'})
43ax.set_title('2010-2019年各行业倒闭公司数量热力图',?fontsize=25,?x=0.5,?y=1.02)
44
45#?隐藏边框
46ax.spines['top'].set_visible(False)
47ax.spines['right'].set_visible(False)
48ax.spines['left'].set_visible(False)
49ax.spines['bottom'].set_visible(False)
50
51#?保存?展示图片
52plt.savefig('heat_map.png')
53plt.show()

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

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

1import?pandas?as?pd
2from?collections?import?Counter
3
4#?读取数据
5df?=?pd.read_excel('2010-2019倒闭公司数据.xlsx')
6data?=?list(df['获投状态'])
7count?=?Counter(data).most_common()
8for?item?in?count:
9????print(item)
1#?(获投状态,倒闭公司数量)
2('尚未获投',?5184)
3('不明确',?4859)
4('天使轮',?1898)
5('A轮',?622)
6('种子轮',?198)
7('已被收购',?149)
8('A+轮',?137)
9('B轮',?117)
10('Pre-A轮',?111)
11('战略投资',?44)
12('C轮',?25)
13('D轮',?10)
14('B+轮',?9)
15('新三板',?5)
16('E轮',?2)
17('已退市',?2)
18('C+轮',?1)
19('已上市',?1)
20('Pre-B轮',?1)

1#?-*-?coding:?UTF-8?-*-
2"""
3@Author??:叶庭云
4@公众号??:修炼Python
5@CSDN????:https://yetingyun.blog.csdn.net/
6"""
7import?pandas?as?pd
8from?collections?import?Counter
9from?pyecharts?import?options?as?opts
10from?pyecharts.charts?import?Pie
11from?pyecharts.globals?import?CurrentConfig
12
13CurrentConfig.ONLINE_HOST?=?'D:/python/pyecharts-assets-master/assets/'
14
15#?读取数据
16df?=?pd.read_excel('2010-2019倒闭公司数据.xlsx')
17datas?=?df['倒闭原因']
18#?参考IT桔子给的市场定位??创业公司死亡原因主要的问题
19reason_loaction?=?{'团队问题':?['创始人问题',?'与投资人冲突',?'团队能力不足',?'团队缺乏激情'],
20???????????????????'产品问题':?['产品缺陷严重',?'产品入场时机'],
21???????????????????'资金问题':?['烧钱',?'现金流断裂',?'融资能力不足'],
22???????????????????'运营问题':?['定价/成本问题',?'营销不足',?'不重视客户',?'转型问题'],
23???????????????????'外部原因':?['法律法规风险',?'行业竞争',?'政策监管'],
24???????????????????'其他问题':?['市场伪需求',?'商业模式匮乏',?'业务过于分散',?'业务调整']
25???????????????????}
26reasons_list?=?[]
27for?item?in?datas:
28????data?=?item.split('|')
29????for?i?in?data:
30????????reasons_list.append(i)
31
32reasons_count?=?Counter(reasons_list).most_common()
33for?item?in?reasons_count:
34????print(item)
35print(len(reasons_count))?????#?主要有20种原因
36result?=?[]
37for?key?in?reason_loaction.keys():
38????num?=?0
39????for?i,?j?in?reasons_count:
40????????if?i?in?reason_loaction[key]:
41????????????num?+=?j
42????result.append([key,?num])
43
44print(result)
45
46c?=?(
47????#?宽??高??背景颜色
48????Pie(init_opts=opts.InitOpts(width="800px",?height="500px",?bg_color="#2c343c"))
49????.add(
50????????series_name="倒闭原因",???#?系列名称
51????????data_pair=result,?????????#?系列数据项,格式为?[(key1,?value1),?(key2,?value2)...]
52????????rosetype="radius",????????#?radius:扇区圆心角展现数据的百分比,半径展现数据的大小
53????????radius="55%",?????????????#?饼图的半径
54????????center=["50%",?"50%"],????#?饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标
55????????label_opts=opts.LabelOpts(is_show=False,?position="center"),???#?标签配置项
56????)
57????.set_colors(["#00BFFF",?"#00FF7F",?"#FF1493",?"#8B008B",?"#FFFF00",?"#556B2F"])
58????.set_global_opts(
59????????title_opts=opts.TitleOpts(
60????????????title="Customized?Pie",
61????????????pos_left="center",
62????????????pos_top="20",
63????????????title_textstyle_opts=opts.TextStyleOpts(color="#fff"),
64????????),
65????????legend_opts=opts.LegendOpts(is_show=False),
66????)
67????.set_series_opts(
68????????tooltip_opts=opts.TooltipOpts(
69????????????trigger="item",?formatter="{a}?<br/>{b}:?{c}?({d}%)"??#?'item':?数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用
70?????????),
71????????label_opts=opts.LabelOpts(color="#fff"),
72????)
73????.render("customized_pie.html")
74)
1('行业竞争',?6818)
2('烧钱',?4963)
3('融资能力不足',?4655)
4('营销不足',?2297)
5('现金流断裂',?1802)
6('商业模式匮乏',?1490)
7('政策监管',?992)
8('业务过于分散',?990)
9('产品入场时机',?917)
10('法律法规风险',?850)
11('市场伪需求',?775)
12('定价/成本问题',?549)
13('业务调整',?150)
14('不重视客户',?101)
15('产品缺陷严重',?46)
16('转型问题',?42)
17('团队能力不足',?42)
18('创始人问题',?19)
19('与投资人冲突',?6)
20('团队缺乏激情',?5)
2120
22[['团队问题',?72],
23['产品问题',?963],
24['资金问题',?11420],
25['运营问题',?2989],?
26['外部原因',?8660],?
27['其他问题',?3405]]

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

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

1#?(地区,倒闭公司数量)
2('北京',?4527)
3('广东',?2355)
4('上海',?2000)
5('浙江',?1007)
6('四川',?707)
7('江苏',?507)
8('湖北',?302)
9('福建',?264)
10('山东',?211)
11('陕西',?197)
12('湖南',?155)
13('重庆',?154)
14('河南',?125)
15('安徽',?119)
16('天津',?110)
17('辽宁',?98)
18('河北',?76)
19('江西',?62)
20('黑龙江',?53)
21('广西',?42)
22('山西',?36)
23('台湾',?36)
24('云南',?34)
25('贵州',?32)
26('海南',?26)
27('香港',?23)
28('吉林',?20)
29('内蒙古',?19)
30('新疆',?16)
31('甘肃',?11)
32('宁夏',?7)
33('西藏',?5)
34('青海',?2)

1#?-*-?coding:?UTF-8?-*-
2"""
3@Author??:叶庭云
4@公众号??:修炼Python
5@CSDN????:https://yetingyun.blog.csdn.net/
6"""
7import?pandas?as?pd
8from?collections?import?Counter
9from?pyecharts?import?options?as?opts
10from?pyecharts.charts?import?Bar
11from?pyecharts.globals?import?ThemeType,?CurrentConfig
12
13
14CurrentConfig.ONLINE_HOST?=?'D:/python/pyecharts-assets-master/assets/'
15
16#?读取数据
17df?=?pd.read_excel('2010-2019倒闭公司数据.xlsx')
18
19year?=?list(df['经营年限'])
20year_count?=?Counter(year).most_common()
21year_count?=?sorted(year_count,?key=lambda?x:x[0])
22x_data?=?[x[0]?for?x?in?year_count]
23y_data?=?[y[1]?for?y?in?year_count]
24bar?=?Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
25bar.add_xaxis(xaxis_data=x_data)
26bar.add_yaxis("倒闭公司数量",?y_axis=y_data)
27bar.set_global_opts(
28????????title_opts=opts.TitleOpts(title='倒闭公司经营年限分布'),
29????????xaxis_opts=opts.AxisOpts(name='经营年限'),???#?设置x名称和Label
30????????yaxis_opts=opts.AxisOpts(name='倒闭公司数量'),
31
32????)
33bar.render('bar.html')

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


福 利
CSDN给大家发压岁钱啦!
2月4日到2月11日每天上午11点
价值198元的芒果TV年卡,价值99元的CSDN月卡!现金红包,CSDN电子书月卡等奖品大放送!百分百中奖!
更多精彩推荐
?Python 分析热卖年货,今年春节大家都在送啥?
?爬了20W+条猫咪交易数据,它不愧是人类团宠
?英超引入 AI 球探,寻找下一个足球巨星
?三年投 1000 亿,达摩院何以仗剑走天涯?
点分享 点收藏 点点赞 点在看t
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 绘就共同富裕新画卷 7904658
- 2 央视曝光套路贷:借13万要还1300万 7808629
- 3 今起海南自贸港全岛封关 7711846
- 4 这一年 一个个暖心瞬间令人难忘 7618467
- 5 香港宣布取消维港跨年烟花汇演 7522047
- 6 中国发现亚洲最大海底金矿 7428049
- 7 男子工厂吹玻璃30年成“青蛙王子” 7333099
- 8 30岁健美冠军去世 出事前感染流感 7235678
- 9 马年春晚吉祥物发布 7143620
- 10 委内瑞拉向中方通报 7046992












AI100
