用python数据分析来解密新经济(IT桔子)死亡公司的内幕
python学习 . 2019/12/22发布 . shanyonggang_web . 我要评论 . 284阅读

前言

在一次日常上网过程中,无意间发现了IT桔子死亡公司有个有趣的新经济死亡公司数据库的专栏,因此对于刚学习了数据分析相关工具的我,对此产生了极大的兴趣,想要通过分析这些死亡公司的数据来发现点有趣的东西,同时也是将其作为一个数据分析实战的案例,数据来源:IT桔子死亡公司数据库 (网络爬虫获取,具体实现请参照我的个人博客文章:python爬取IT桔子死亡公司数据库),特此声明:此数据仅用于个人数据分析学习,请勿商用,如侵犯IT桔子公司权益,请联系本人删除!

使用工具

  • jupyter
  • numpy
  • pandas
  • matplotlib

代码实现

本文源码均存放在我的个人github上:https://github.com/ShanYonggang/spider_list/tree/master/death_company

首先是进行数据的导入

import numpy as np
import pandas as pd
read_data = pd.read_excel(r"F:\git_project\spider_list\death_company\death_company_info - 副本.xls")
df_data = pd.DataFrame(read_data)
# 计算存活天数
def cal_live_time(start_time,end_time):
    import datetime
    d1 = datetime.datetime.strptime(start_time,'%Y-%m-%d')
    d2 = datetime.datetime.strptime(end_time,'%Y-%m-%d')
    days = (d2-d1).days
    return days
need_data = df_data.loc[:,['com_name','com_born','com_change_close_date','com_style','com_position','com_tags','com_fund_status_name','com_invsts','death_reason']]
# 计算所有公司的存活时间
f = lambda x:cal_live_time(x.com_born,x.com_change_close_date)
need_data['live_time'] = need_data.apply(f,axis=1)
need_data.head()

解释:由于我们在初期爬取数据的时候未获取公司存活天数,因此通过创立时间及死亡时间来计算存活天数,查看数据结果如下:

首先我们从公司存活时间这方面来进行分析

通过如下代码我们可以获取存活时间最长和最短的公司信息

# 获取生存时间最短的公司
need_data.loc[need_data['live_time'].idxmin(),:]
# 获取生存时间最长的公司
need_data.loc[need_data['live_time'].idxmax(),:]
# 平均存活时间
need_data['live_time'].mean()

结果如下:

很明显发现最短公司(第一医生)仅存活了121天,因其商业模式匮乏的原因而最终死亡,而存活最长时间(13年之久)的公司韦博英语也因其现金流断裂而宣告死亡,说真的我其实是头一次听说这家公司,不提了,谁让咱英语这么次,就听说过新东方,哈哈!

通过计算所有公司的平均存活时间,最终发现公司的平均存活时间大概为3年半左右,下图是所有公司存活时间的大致分布图(凑合看吧,说真的我自己看着都不忍直视这图样式,哈哈!)

接下来我们从公司的地理位置分布情况来进行分析

# 统计所有公司位置的总数
com_position = need_data['com_position'].value_counts()
print(com_position)
com_position = com_position.head(10)
name = np.array(list(com_position.index))
num = np.array(list(com_position.values))
plt.figure(figsize=(16,6))
plt.bar(name,num,color='rgby')
plt.title('死亡公司分布情况(TOP10)',fontsize=20)
plt.xlabel('公司地理位置',fontsize=16)
plt.ylabel('公司数量',fontsize=16)
plt.savefig('.\可视化图表\com_position.jpg')
plt.show()

下图为功死亡公司地理位置分布图(TOP10)以及TOP20的死亡公司地理位置分布饼图

可以看出北上广占据半壁江山,其中北京位列其首、广东紧随其后,上海位列第三,浙江排名第四,这也符合逻辑,北上广依然是各个公司创立的最先选择地,毕竟各个方面资源比较丰富,而浙江应该是因为阿里巴巴的存在而带动了一批公司的发展。

接下来看看死亡公司的融资情况

# 公司融资情况
com_financing = need_data['com_fund_status_name'].value_counts()
print(com_financing)
plt.figure(figsize=(16,6))
# plt.bar(index,num,color='rgby')
com_financing.head(10).plot(kind='barh',color='g',grid=True,rot=25)
plt.title('死亡公司融资分布情况(TOP10)',fontsize=20)
plt.xlabel('公司数量',fontsize=16)
plt.ylabel('公司融资情况',fontsize=16)
plt.savefig('.\可视化图表\com_financing.jpg')
plt.show()

根据输出的结果看到:

其中522家公司已经进行了天使轮的投资,但是最终进行E轮以及上市公司的比较少,上市公司有三家,我们通过下面代码,可以看到三家具体上市公司的信息

need_data[need_data['com_fund_status_name'] == '已上市']

其中有两家是做工具软件的,其成立和死亡的时间也比较久远,属于传统互联网公司,其因为公司商业模式匮乏加上移动互联网对其冲击而导致公司陷入困境,可见创新对于公司的发展是多么重要。

接着我们分析公司的死亡原因

上图为死亡公司的原因分布以及词云图(本来是个心,结果因为文本量太小,显示不全,谅解哈!)

发现公司死亡原因主要是:1、商业模式匮乏;2、行业竞争;3、市场伪需求;4、现金流断裂;5、市场入场时机

首先商业模式匮乏我个人简单的理解就是缺乏创新、没有好的产品来吸引用户,互联网时代行业竞争也比较激烈,说白了自己的产品观点和想法被抄袭也是常见的事,毕竟是信息互通时代,对于伪需求这个事,可以参考下知乎的问答:什么是「伪需求」?能否举例说明?

下面我们看看这些死亡公司的主要业务是什么?

上图为公司的业务分布饼图以及词云图(看着像什么?),其中游戏开发占据了首位,可以看出这个行业还是很诱人的,毕竟一款王者荣耀就能火遍大江难本,在此提醒,游戏好玩,可不要上瘾哟,当然如果真的对游戏感兴趣也没问题,毕竟这也是生活的一部分,其次就是电商领域,互联网的发展给人带来了极大的遍历,让人足不出户,就能买到全国各地的好东西,拼多多,拼着买,更便宜,再提一下金融借贷,说白了大多数就是网贷平台,其实我觉着大多数都是因为我们提前的购买欲和消费欲望让这个行业发展起来,欲望是个好东西,然而利用不好就爆雷了,我们来具体看看这个金融借贷(其他行业也可以分析:如比较火爆的共享出行、网络直播、社交网络等):

我们选取了死亡排名前20的金融借贷公司:

need_data[need_data['com_style']=='金融借贷'].head(20)

结果如下,最终发现大部分公司都是2013年之后创办的,大多挂于19年,而且死亡原因大多数为政策监管、法律法规、风险,可见2019年政府监管导致P2P爆雷对这个行业冲击还是挺大的

最后简单分析下公司的标签,如下:

#  统计公司标签,绘制词云图
com_tags = need_data['com_tags']
tags_total = ''
for x in com_tags:
    tags_total += str(x)
tags_list = tags_total.strip('').split('/')
tags = pd.Series(tags_list).value_counts()
print(tags[:30])
fontpath = 'simhei.ttf'
color_mask = imread("heart.jpg") #读取背景图片,
 
wc = WordCloud(font_path = fontpath,          #设置字体
               background_color = "white",    #背景颜色
               max_words = 1000,              #词云显示的最大词数
               max_font_size = 100,           #字体最大值
               min_font_size = 10,            #字体最小值
               random_state = 42,             #随机数
               collocations = False,          #避免重复单词
               mask = color_mask,                 #造型遮盖
               width = 140, height = 80,    #图像宽高,需配合plt.figure(dpi=xx)放缩才有效
               margin = 2                     #字间距
               )
word_frequence = dict(tags)
cl = wc.generate_from_frequencies(word_frequence)
# plt.imshow(cl)
image_colors = ImageColorGenerator(color_mask)
plt.figure(dpi = 140)
plt.imshow(wc.recolor(color_func=image_colors)) # 重新上色
plt.axis('off')

这个词云有心的样子了吧,哈哈,从图中可以看出电子商务还是占主导地位,企业服务和游戏领域位列第二

总结

  • 数据有更多可以深究和探索的地方,本文暂时只对数据进行简单的处理分析
  • 后续加强numpy、pandas、matplotlib的理解与学习
  • 接触算法去吧,少年!

  • 有疑问请在下方评论区留言,我会尽快回复。
  • Email私信我: 511248513@qq.com 或添加博主 微信
本文作者:shanyonggang_web
发布时间:2019年12月22日 16:48
许可协议: 署名-非商业性使用 4.0 国际许可协议
知识共享许可协议     转载请保留原文链接及作者
正在加载今日诗词....
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的


登录 后回复

当前暂无评论,点击登录来做第一个吃螃蟹的人吧!