前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >商业数据分析比赛实战,内附项目代码

商业数据分析比赛实战,内附项目代码

作者头像
Python大数据分析
发布2022-04-03 09:48:48
1.5K0
发布2022-04-03 09:48:48
举报

如果你对商业数据分析感兴趣、想要积累更多项目经验,那么就来看看下面这项目吧。

数据竞赛平台和鲸社区最近正在举办一场数据分析大赛,不仅带来了22w奖金和30w创业基金支持,更是提供了统一的在线比赛环境,引入投中网的独家创业投资类数据,囊括了江苏地区科技金融,生物医药、芯片半导体制造行业,吸引了不少人的关注。

为了让大家更加熟悉商业数据分析流程,赛事平台和鲸社区还非常贴心提供了多场数据分析专题分享,下面就为大家打来第一场直播培训中,主讲老师黄凯根据大家反馈提供的培训Notebook,覆盖数据预处理、分组聚合计算、可视化的全流程,内容由浅入深。既适合数据分析入门的爱好者,也能给老手们提供不一样的分析思路。

(贴心提示:项目代码可以直接在平台上Fork哦~)

数据分析项目开发步骤简介

  • 数据分析项目第一步骤首先要确定分析目标,如果不能明确分析目标,那么就是数据挖掘项目。这也是数据分析项目与数据挖掘项目之间的主要区别;
  • 接下来进行收集,整理和清洗数据工作。本次竞赛已经提供质量非常高的数据,因此无需再进行收集工作。我们只要简单的进行一下整理和清洗即可;
  • 再针对我们的分析目标,进行分组聚合计算,得出有效的结论;
  • 最后对我们得出的结论进行可视化展示。

下图展示了本课程中使用Pandas、 Seaborn等常用工具库绘制的部分图表:

现在教程开始啦~

创新活力数据分析项目实战开发步骤

  • 数据集简介

数据预处理:清洗、过滤

数据分析:公司

数据分析:人员

数据分析:投资

最值得投资的公司:公司估值 vs 注册资金

投资活力指数计算

图表:投资活力指数

  • 数据预处理
代码语言:javascript
复制
# 先让我们建立一下开发环境。
# 导入常用库
import numpy as np
import pandas as pd
import matplotlib. pyplot as plt
import seaborn as sns
import math
from datetime import datetime
# 忽略警告信息
import warnings
warnings. filterwarnings("ignore")
print(" 建立开发环境"+ str(datetime. now() ) )
代码语言:javascript
复制
# 查看以下数据及所在路径中的文件名称。
! ls /home/kesci/input/inv_data6040
代码语言:javascript
复制
# 读取全部 CSV 数据
df_gs = pd. read_csv(' /home/kesci/input/inv_data6040/01_工商信息. csv' )
df_ry = pd. read_csv(' /home/kesci/input/inv_data6040/02_主要人员. csv' )
df_tz = pd. read_csv(' /home/kesci/input/inv_data6040/03_投融资事件. csv' )
df_td = pd. read_csv(' /home/kesci/input/inv_data6040/核心团队. csv' )
代码语言:javascript
复制
# 了解公司基本信息
df_gs. info()
In [20] :
# 查看数据
df_gs. head(1)
  • 绘制图表:产业图谱条形图
代码语言:javascript
复制
# 绘制条形图查看产业图谱
df_gs[' 产业图谱' ] . value_counts() . plot(kind=' barh' )
# barh 横向条形图, 方便查看种类的名称
# 如果我们使用 bar 绘制这个图表, 中文字符会比较难以查看
  • 按时间查看企业总数增长趋势
代码语言:javascript
复制
# 按时间查看企业总数增长趋势
df_gs. groupby(df_gs. index. year) . 企业名称. count() . cumsum() . plot()

Out[32] :

<matplotlib. axes. _subplots. AxesSubplot at 0x7fbfe0bf07f0>

本项目第一次使用分组聚合计算, 在这里详细讲解一下

分组: groupby 按年度分组

聚合: count 企业名称计数

请思考为什么用企业名称而不是用其他列来计数?

回答:因为其他列包括空值,不唯一

计算: cumsum 增长求和

拓展:去 pandas 官网查看 cumsum 方法的文档,并查看其他相关方法。

  • 按产业图谱 + 时间 查看新公司注册趋势
代码语言:javascript
复制
# 按 产业图谱 + 时间 查看新公司注册趋势
df_gs. groupby([ ' 产业图谱' , df_gs. index. year] ) . 企业名称. count() . unstack() . T. plot()
# groupby 可以对多列数据进行分组
# unstack 对多项索引转换为单例索引
# T 将x轴和y轴转置, 是 transform 的简写方法
# 技巧:unstack(). T 是一对难兄难弟,常常在一起使用
绘制图表, 展示注册资本随时间变化规律

Out[33] :

<matplotlib. axes. _subplots. AxesSubplot at 0x7fbfe0de3e48>

  • 按产业图谱分组绘制 注册资本对数值
代码语言:javascript
复制
# 按产业图谱分组绘制 注册资本对数值
# 首先将注册资本取对数后的结果放在数据集当中。
df_gs[' 注册资本log' ] = df_gs. 注册资本. apply(lambda x : np. log10(x) )
# 使⽤seaborn 的 FacetGrid 按照产业图谱分组绘制注册资本对数值直⽅图
g = sns. FacetGrid(df_gs, col=' 产业图谱' )
g. map(sns. distplot, ' 注册资本log' )
# seaborn 的直方图默认也绘制了密度图

Out[27] :

<seaborn. axisgrid. FacetGrid at 0x7f15523073c8>

代码语言:javascript
复制
# 融资情况对比:按产业图谱分组后计算投资次数
# fillna 填充空值
# sort_values 对数据进⾏排序
df_gs. groupby([' 产业图谱' , ' 当前轮次' ] ) . 企业名称\
. count() . unstack() . T. fillna(value=0) . sort_values(by=' ⽣物医药' ) . plot(kind=' barh' , figsize=(12, 6))

Out[32] :

<matplotlib. axes. _subplots. AxesSubplot at 0x7f154ff5c588>

  • 绘制中文词云
代码语言:javascript
复制
# 绘制中文词云
# 导入并初始化词云
from wordcloud import WordCloud
w = WordCloud(
font_path=' /home/kesci/input/hanserif6546/SourceHanSerifK-Light. otf' , # 字体文件
background_color=' white' # 背景色)
# 从词频绘制词云图片
w. generate_from_frequencies(pd. Series( words_clean) . value_counts() [1: 100] )
# 绘制词云图片
plt. figure(figsize=[16, 8] )
plt. imshow(w, interpolation=' bilinear' ) # 平滑参数

Out[45] :

<matplotlib. image. AxesImage at 0x7f1549e112e8>

  • 绘制投资关系图
代码语言:javascript
复制
# 绘制高管、投资关系图
import networkx as nx
G = nx. Graph()
# 公司、高管
G. add_node(name)
G. add_edge(name, ' 高管' )
for r in ry. values:
G. add_edge(' 高管' , r[0] +" "+r[2] )
# 投资数据
G. add_edge(name, ' 投融资' )
for i, r in tz. iterrows() :
G. add_edge(' 投融资' , r[' 投资⽅' ] +' ' +str( r[' 总交易⾦额 (万元) ' ] ) )
# 绘制
nx. draw(G, with_labels=True)
plt. show()

原文过长,这里进行了缩略。如果想要看到完整的项目代码与数据,快快点击“阅读原文”吧!报名参赛后,直接进入和鲸K-Lab就可以找到这个项目。项目代码在课程里,Fork一下就能跑~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python大数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档