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

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

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

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

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

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

数据分析项目第一步骤首先要确定分析目标,如果不能明确分析目标,那么就是数据挖掘项目。这也是数据分析项目与数据挖掘项目之间的主要区别;

接下来进行收集,整理和清洗数据工作。本次竞赛已经提供质量非常高的数据,因此无需再进行收集工作。我们只要简单的进行一下整理和清洗即可;

再针对我们的分析目标,进行分组聚合计算,得出有效的结论;

最后对我们得出的结论进行可视化展示。

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

现在教程开始啦~

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

数据集简介

数据预处理:清洗、过滤

数据分析:公司

数据分析:人员

数据分析:投资

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

投资活力指数计算

图表:投资活力指数

数据预处理

# 先让我们建立一下开发环境。# 导入常用库import numpy as npimport pandas as pdimport matplotlib. pyplot as pltimport seaborn as snsimport mathfrom datetime import datetime# 忽略警告信息import warningswarnings. filterwarnings("ignore")print(" 建立开发环境"+ str(datetime. now() ) )

# 查看以下数据及所在路径中的文件名称。! ls /home/kesci/input/inv_data6040

# 读取全部 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' )

# 了解公司基本信息df_gs. info()In [20] :# 查看数据df_gs. head(1)

绘制图表:产业图谱条形图

# 绘制条形图查看产业图谱df_gs[' 产业图谱' ] . value_counts() . plot(kind=' barh' )# barh 横向条形图, 方便查看种类的名称# 如果我们使用 bar 绘制这个图表, 中文字符会比较难以查看

按时间查看企业总数增长趋势

# 按时间查看企业总数增长趋势df_gs. groupby(df_gs. index. year) . 企业名称. count() . cumsum() . plot()

Out[32] :

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

分组: groupby 按年度分组

聚合: count 企业名称计数

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

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

计算: cumsum 增长求和

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

按产业图谱 + 时间 查看新公司注册趋势

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

Out[33] :

按产业图谱分组绘制 注册资本对数值

# 按产业图谱分组绘制 注册资本对数值# 首先将注册资本取对数后的结果放在数据集当中。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] :

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

Out[32] :

绘制中文词云

# 绘制中文词云# 导入并初始化词云from wordcloud import WordCloudw = 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] :

绘制投资关系图

# 绘制高管、投资关系图import networkx as nxG = 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一下就能跑~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值