前一阵有个字节跳动的程序员火了,年仅28岁实现了财务自由,宣布提前退休。最直接的原因是选择了一家发展前景很好的创业公司。当然平时我们经常能听到,某某人加入创业公司,xx年后公司上市,身价暴涨,财务自由。但这都是小概率事件,大部分人往往要么等不到公司上市就离职,要么公司还没上市就破产。这两天找到一份近几年破产的IT公司名单,共6000家,下面就对这份数据做个简单分析。

分析思路大致如下:

了解整体概况

单维度分析破产的公司

维度交叉分析破产公司

首先导入分析所需的模块

import pandas as pd

import seaborn as sns

import matplotlib.pylab as plt

import numpy as np

# 绘图显示中文

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

用pandas读取破产公司文件,并预览数据

com_all = pd.read_csv('./data/com.csv')

com_all.head(3)

字段比较多,我们用info来看一下

com_all.info()

共有6272行,也就是6272家公司。共有16列,前10列基本都是非空的,所以下面我们主要对前10列进行分析。

接来下,我们先对数据做个大致了解,先来看看数据涉及哪些年份,以及每年的破产公司数量

# 从日期字符串提取年份子串

com_all['death_year'] = com_all['death_data'].apply(lambda x: x[:4])

# 按年份分组计数,画每年破产公司数量的折线图

com_all[['com_name', 'death_year']].groupby('death_year').count().plot(xticks=range(20), rot=30, figsize=(10, 6))

明显能看到从14年破产公司开始增多,15年陡增,17年达到峰值,所以说17年开始不少自媒体经常说大环境不好也是有原因的。记得我15年刚毕业找工作的时候就听说大环境已经不太好了,然而我17年跳槽的时候环境变得更差了。这真是好事没赶上,坏事没落下。

对整体数据有了大致了解以后,我们按照单维度拆解,分别来对破产公司进行分析。上面提到14年破产公司开始增加,那么我们可以认为14年之前破产的公司属于自然破产,而非所谓的“大环境”导致。所以下面我们只对14年之后的破产公司进行分析。

com_part = com_all[com_all['death_year'] >= '2014']

下面以公司所在地为例,查看不同省份破产公司分布

# 城市

com_city_gb = com_part[['com_name', 'com_addr']].groupby('com_addr').count().sort_values(by='com_name', ascending=False)

com_city_gb[com_city_gb['com_name'] > 10].plot(kind='bar', rot=20, title='省份', figsize=(10, 6))

可以看到北京、广东、上海等经济发达的地区,破产产的公司更多。这里需要注意一个概念叫幸存者偏差,举个例子,你如果从这个数据得出北京、上海等地创业更容易破产的结论,那就是有偏差的。因为你只是从幸存下来的破产数据去下结论,而没有考虑总体数据,因此得到的结论是有偏差的或者说是不对的。举个例子,图上可以看到北京破产的公司有2000家,浙江破产的公司大概400家,而实际上北京同期成立的创业公司可能有3000家,创业死亡率为 67%,而浙江同期成立的创业公司可能有800家,创业死亡率为 50%,明显在北京创业有更高的存活率。

然后我们在分行业维度来看看破产公司分布

# 行业

com_cat_gb = com_part[['com_name', 'cat']].groupby('cat').count().sort_values(by='com_name', ascending=False)

com_cat_gb.plot(kind='bar', rot=20, title='行业', figsize=(10, 6))

可以看到电子商务、企业服务、本地生活、金融等行业破产公司数量较多,这里同样存在幸存者偏差的问题,行业死亡率是否高,还需要结合行业整体数据来判断。

同样的方式,我们在分别看看融资阶段和破产原因两个维度的情况

从破产融资阶段看,破产的公司大部分都没有融资记录或者没有获得融资。如果能拿到所有公司注册和破产的数据,再结合融资阶段画一个不同融资阶段的漏斗图会非常直观看到各个融资阶段的存活率。

从破产原因看,破产的原因主要在于商业模式匮乏、行业竞争以及市场伪需求。

到这里,单维度的数据就分析完了。但单维度分析有个缺点是粒度太粗了,它只能反映整体的情况。如果需要更进一步的细化分析,还需要进行维度交叉。

上面对破产原因单维度进行分析,我们知道了大部分公司是因为什么原因导致的破产,但这反映不出不同行业的破产原因。下面我就选行业和破产原因这俩个维度进行更细化的分析。首先的想法是将行业作为x轴,破产原因作为y轴做个散点图,图上的点越大,说明对应的行业的破产原因就越突出

# 选top行业和破产原因

death_reasons = com_death_reason_gb[:15].index.values

cats = com_cat_gb[:10].index.values

com_part2 = com_part[com_part['death_reason'].isin(death_reasons) & com_part['cat'].isin(cats)]

com_part2.plot(kind='scatter', x='cat', y='death_reason', figsize=(10, 6))

行业和破产原因太多了,我们只选top的进行分析。从图上点的大小大概能看出来不同行业的破产原因是不同的,但也不是太直观,并且不能定量地看。

如何更直观地看不同行业下不同破产原因的区别呢,我想到一种方法,计算不同行业、不同破产原因的TGI指标,然后画一个热力图。

TGI反应的是目标群体在总体里的强势或弱势指数。举例:在所有破产公司中,行业竞争原因导致破产的比例是14%,而电商行业里,行业竞争原因导致破产的比例为20%,那么电商行业在行业竞争这个破产原因的TGI=20% / 15% = 1.42。大于1代表在总体里处于强势,数值越高就越强势。

沿着这个思路,准备所需要的数据

# 行业+破产原因维度的破产公司数量

reason_cat_df = com_part2.groupby(['cat', 'death_reason']).count()[['com_name']]

# 行业维度的破产公司数量

cat_df = com_part2.groupby(['cat']).count()[['com_name']]

# 不同破产原因的占比

reason_df = (com_part2.groupby(['death_reason']).count()[['com_name']] / cat_df.sum())

将DataFarme索引变为列,方便关联

reason_cat_df.reset_index(inplace=True)

cat_df.reset_index(inplace=True)

reason_df.reset_index(inplace=True)

reason_df.rename(columns={'com_name': 'all_reason_r'}, inplace=True)

按照不同维度,将数据关联在一起,并计算TGI

# 关联数据

tmp_df = pd.merge(reason_cat_df, cat_df, on='cat',how='left')

df = pd.merge(tmp_df, reason_df, on = 'death_reason', how='left')

# 计算每个行业破产原因占比

df['cat_reason_r'] = df['com_name_x'] / df['com_name_y']

# 计算每个行业破产原因的TGI

df['cat_reason_tgi'] = df['cat_reason_r'] / df['all_reason_r']

df

这样,TGI就计算完成了。为了画热力图,我们还需要对数据进行重塑,通过透视图把行业变成索引,破产原因变成列

df_tgi = df.pivot_table(index='death_reason', columns='cat', values='cat_reason_tgi')

df_tgi = df_tgi.fillna(0)

df_tgi

画热力图

plt.figure(figsize=(15, 8))

sns.heatmap(df_tgi, annot=True, fmt='.2g')

可以放大来看,颜色越浅代表越强势。比如:金融行业在政策监管和法律法规风险的TGI为7.5,说明这两个原因是导致金融公司破产很强势的原因。

通过TGI+热力图的方式我们可以很直观并且定量的看到不同行业下破产原因的区别。我的分析就到这里了,有兴趣的朋友再对其他维度进行交叉分析。数据地址和源码已经打包,公众号回复关键字破产公司即可。

欢迎公众号 「渡码」 输出别地儿看不到的干货。

python公司分析_Python分析6000家破产IT公司相关推荐

  1. python加油视频_python分析6625条视频,揭秘“打工人”凭啥刷爆全网!

    原标题:python分析6625条视频,揭秘"打工人"凭啥刷爆全网! CDA数据分析师 出品 作者:Mika 数据:真达 后期:Mika [导读] Show me data,用数据 ...

  2. python股票买卖问题_Python分析股票买卖点 2

    接着上一篇用python对科大讯飞股票分析,利用MA5和Ma20的指标,对股票的买卖点做了一个简单的分析. 下面,继续趁热打铁,结合前面的MA5和MA20来继续分析.最好一眼能看到买卖点. 如下图:分 ...

  3. 新三板上市公司突破6000家安防公司103家

    2016年3月14日新三板又有36家公司上市,使得新三板上市公司突破6000家,达到6026家:其中做市转让的1390家,协议转让的4636家:总股本3574.28亿股,其中流通股本1296.44亿股 ...

  4. python地铁车票_Python分析3034个地铁站,发现中国地铁名字的秘密。

    原标题:Python分析3034个地铁站,发现中国地铁名字的秘密. 最近看了新周刊的一篇推送,有关地铁名字的分析,链接如下. 我们分析了3447个地铁站,发现了中国城市地名的秘密 于是乎也想着自己去获 ...

  5. python最终价格_python分析北京租房现状,最后的价格分布地图亮了

    租房信息已经有了,为了能对北京目前的租房市场有个直观认识,我对数据进行深度分析,并进行可视化展示 从分析结果中,我得到了哪些位置房源多.各区租房平均价格以及心仪价格地理位置分布等重要信息,为帮助我租房 ...

  6. 深圳python如何评价_Python分析18万条《八佰》影评,看看观众怎么说?

    原标题:Python分析18万条<八佰>影评,看看观众怎么说? 最近<八佰>这部电影比较火,上映仅15天就已斩获22亿票房.对于沉寂了半年.影院上座率仍限定在50%的电影市场而 ...

  7. python共享单车案例分析_python分析数据分析项目:共享单车租用情况影响因素探索分析...

    python分析数据分析项目:共享单车租用情况影响因素探索分析

  8. python中奖号_Python分析彩票记录并预测中奖号码过程详解

    0 引言 上周被一则新闻震惊到了,<2454万元大奖无人认领!福彩史上第二大弃奖在广东中山产生 >,在2019年5月2日开奖的双色球中,广东中山一位彩民博中2454万元,兑奖时间截至201 ...

  9. python网站访问日志分析_python分析apache网站日志web日志的代码

    python分析apache网站日志的代码 1.分析日志的python框架awk.py 代码示例: # # Custom awk.py module # class controller: def _ ...

最新文章

  1. linux安装setup.py程序
  2. 【深度学习】CNN神经网络应用(用于亚洲大黄蜂分类)
  3. 【完结】 12篇文章带你完全进入NLP领域,掌握核心技术
  4. SRE(Simple Rule Engine) Document
  5. Java(enum)枚举用法详解
  6. 2053. 数组中第 K 个独一无二的字符串
  7. 【数据库开发】windows下hiredis的编译(主要是包括一些异步编程的错误)
  8. css的z-index属性,div折腾了好久
  9. ES6学习笔记三(字符串)
  10. 【图像重构】基于OMP算法实现图像重构附matlab代码
  11. 二、三角高程测量计算(C#语言)
  12. Trace View
  13. 《数学之美》--自用
  14. 赵燕菁:城市化2.0与规划转型 ——一个两阶段模型的解释│宏论
  15. 三菱伺服电机编码器故障判断方法
  16. 使用MemoryStream类读写内存
  17. 实验报告微型计算机拆卸顺序表,实验一线性表的顺序存储结构实验报告页.doc...
  18. 深圳大学OJ——数据结构专项——实验03 队列及综合应用
  19. Kafka之四:Kafka与Streaming集成
  20. 计算机毕设(附源码)JAVA-SSM基于智慧农业的水果销售系统

热门文章

  1. 用计算机怎么计算r角度,R语言中的数学计算
  2. 重温电视剧《陆小凤之凤舞九天》
  3. 微波射频学习笔记20-------二极管
  4. 【12】理解电路:从电报机到门电路,我们如何做到“千里传信”?
  5. 【实验四 循环结构】7-4 sdut-C语言实验-求阶乘(循环结构)
  6. 小米5 android 8.0原生,终于开吃奥利奥!小米5 Android 8.0 内测体验计划开启
  7. bga封装扇出_电路板设计BGA芯片扇出功能教程
  8. 消消乐php源码,PHP实现开心消消乐的算法示例分享
  9. 优秀文章及学习网站之收集手册
  10. 4.4 测试度量指标体系和质量评估