数据科学案例:从数据收集到探索性数据分析哈哈哈来了啊啊啊

什么是数据科学?简单来说,数据科学可以定义为从数据中提取意义和洞察力的过程。通常,这些是我们在数据科学项目中需要问的问题:

需要注意的重要一点是,也可以从数据开始,在处理数据时提出问题或见解,但在大多数情况下,我们都是从问题开始的。考虑到这一点,让我们开始吧。

在这个项目中,我们将尝试分析刚果足球俱乐部的表现并进行比较。

第一部分:制定问题。

刚果当地足球俱乐部在过去几年的表现如何,哪些因素会影响他们的表现?法国、德国、巴西等伟大的足球国家拥有许多伟大的足球俱乐部,全球数百万人在电视上观看排名靠前的比赛,这当然有助于他们国家队的表现。如果我们知道这些俱乐部在过去几年的表现,我们大概可以了解刚果国家足球队的表现。分析足球队表现的一种方法是使用**胜率**,即赢得的游戏数除以玩过的游戏总数**.**

第二部分:获取数据。

抓取过程的一个重要步骤是检查我们的网页,以了解我们需要操作的数据和所有html元素的位置。我不会在这里详细介绍如何做到这一点,但请记住,这就是**html标签'**类名和**身份证**将在本文的这一部分中使用的那个被发现。

步骤1:从网页中检索数据

让我们做所有的导入:

Importingallthecomponentswewillneed.

当我们使用我们导入的组件时,将解释这些行。

让我们将我们将抓取的页面的URL存储在一个列表中,因为我们需要所有感兴趣的俱乐部的数据,而且它们并不都在一个地方:

Thefunctiontoopenthebrowserandgoawebpage.

当我们打开网页时,我们可能必须单击横幅才能将其移开。我们定义了一个函数,它将获取一个浏览器对象(当前打开的网页)并单击带有id的任何横幅(它是一个html元素)**'onetrust-accept-btn-handler'**:

Thefunctiontoclickonanybanneronthepage.

注意使用**WebDriverWait**和预期的条件(**欧共体**)我们之前导入的方法。上面它们的使用只是意味着当我们启动浏览器并打开我们的页面时,我们等到具有id的元素**'onetrust-accept-btn-handler'**出现。一旦元素出现,我们**点击**在上面。但是我们不会永远等待,并且元素实际上可能永远不会出现,所以我们使用**最大暂停**我们之前定义的变量(请记住,我们将其设置为60秒,但您可以更改它以适应您的情况)。60秒后,如果没有出现横幅,我们的函数会打印“**没有出现横幅**”并且什么也不返回。

现在让我们假设我们的网页没有显示横幅,我们可以向下滚动并查看我们想要的所有内容。所以我们定义了一个函数来做这个,加载整个网页,向下滚动直到到达我们页面的底部,当没有更多内容可以加载时停止,就像人类会做的那样:

Thefunctiontoleadthepageinitsfullheight.

我试图使该功能尽可能不言自明。

现在定义另一个函数,它将按照所需的顺序调用上述函数,以加载传递URL的页面的数据:

Thefunctiontoretrievethehtmldata.

Ascreenshotoftheoutputforoneteam.Alltheotherslooksimilar

第2步:现在我们为抓取的每个站点解析html内容

ThefunctiontocreateDataFrameswithDataforeachteam.

然后可以使用和重用该功能。我们将为每个俱乐部调用它,然后将我们抓取的数据保存在csv文件中以供将来使用(当我们需要相同的数据时,我们不需要再次抓取)。

Callthefunctiononeachsoupobjectforeachclub,andsavethedatatocsvfiles.

现在我们有了数据。下一阶段是探索性数据分析(EDA),我们需要确定数据是否需要一些清理,以及它是否可以帮助我们回答问题。我们将该阶段分为两部分,第一部分用于清洁,第二部分用于分析和可视化。

第三部分:清理数据

这部分很大程度上取决于您的领域知识和您对所拥有数据的理解。我们检查了数据,发现一些名称包含括号、斜杠等,我们不需要这些。因此,我们清理了名称,但我们确保保留带有横杠(-)和圆点(.)的名称。我们编写了一个函数来做到这一点:

Thefunctiontocleanclubsnames

首先,我们定义一个正则表达式模式来匹配包含一个或多个单词的任何名称,该单词可选地后跟或由任意数量的空格、点或条分隔。这意味着如果文本中还有其他内容,例如括号,我们的模式将只匹配没有该内容的部分。

括号**(……)**在正则表达式模式中意味着我们将模式匹配的任何内容作为一个组,并且**P**意味着我们将捕获的组命名为**姓名**.我们将捕获的组写在方括号内。我们将通过断言测试我们的函数是否如我们所愿:

Assertionstotestournamecleaningfunction

我们还发现今年的比赛有不同寻常的格式。我们还需要清理日期:

Thefunctiontocleanthedates.

我们为3种不同的格式定义了3种模式。第一个是带有数字的日期,如“**dd.dd。dd:dd**”我们只需要“**dd.dd**“部分。所以我们的正则表达式使用**积极前瞻(=)**得到“一个或多个数字后跟一个点,然后是一个或多个数字”(我们将采用)后跟一个空格(我们不会采用)。

第二种模式适用于带有数字的日期,例如“**dd.dd.dddd**别的东西”,我们只需要“**dd.dd.dddd**“部分。此正则表达式还使用**正前瞻(=\w+)**只参加我们想要的部分。

第三种模式适用于带有“”之类数字的日期**dd.dd.dddd**“独自的。

对于每个匹配模式,我们更改为**日月年**格式。

我们测试我们的功能:

Assertionstotestourdatecleaningfunction.

现在我们可以一次清除所有名称和日期。首先我们连接所有团队的所有数据,然后我们清理名称和日期,将EventDate列更改为datetime类型,最后更改名称**刚果共和国**和**非洲**一个。我们还负责保存新的数据框以备将来需要:

Actualcleaningoftheclubsnamesandmatchdates,andafewmoremanipulations.

为了查看所有这些清理的结果,我们将数据框的前10行显示为**all_df.head(10)**:

Thefirst10rowsofourDataFrame.

第四部分:分析和可视化数据

我们注意到团队在2017年之前不存在,所以如果我们要比较我们的团队,我们需要使用他们都有数据的时期。

Selectingonlythegamesplayedafter2016forallteams.

我们可能还想知道打主场还是客场比赛对比赛结果有任何影响。我们不会在这里详细介绍这些细节,但让我们看看如何为此拆分数据:

SplittingHomeandAwaygames.

我们将保留这两个数据框以备不时之需。但是现在让我们创建另一个数据框,通过连接我们的**家**和**离开**数据帧。注意我们改变了列**客队**和**团队之家**至**团队。**

现在让我们按团队、年份和结果对比赛进行分组,并计算每组:

这意味着对于每支球队,我们将计算每年的每场比赛结果。我们还将计数列命名为'**游戏计数**'。

接下来,我们通过将赢得的比赛总数除以每支球队每年的比赛总数来计算每年的获胜百分比:

我们打印新数据框的前10行**wins_summary.head(10)**:

从该表中,我们已经可以开始得出一些结论,但我们可能无法清楚地看到数据告诉我们什么。所以是时候可视化数据了。我们将首先添加一列来存储每个团队的颜色。

现在我们可以绘制我们的数据:

运行该代码会得到以下结果:

第五部分:我们回答了什么问题?

这是我们报告分析结果的地方。我们可以将其放入报告中,其结构将根据项目的目的而有所不同。这里必须具备的技能是讲故事。大多数人不需要或不想了解我们使用的所有方法和工具,但他们肯定想了解所有这些的含义是什么?为什么我们在编写长代码和进行大量思考时让自己如此痛苦?我们需要解释结果,并可能根据我们的分析给出一些建议。

我将把这个留给你来谈谈你认为数据告诉我们我们团队的表现以及表现不佳的可能原因。

这就是这个项目。如您所见,没有涉及机器学习,并非所有问题都需要机器学习,因为这完全取决于我们的目标。

THE END
1.数据分析案例基于多元线性回归算法预测学生期末成绩数据分析案例-基于多元线性回归算法预测学生期末成绩 一、加载数据集 该数据集包含了不同年级数名学生的科目成绩及一些其它的原始 信息,例如学号、姓名、身份证号等,总成绩由考试成绩、作业成绩、实验成绩等通过一定的规律计算得出。 首先,导入本次实验用到的第三方库...https://developer.aliyun.com/article/1123414
2.我的第一个数据分析项目——51job“数据分析”岗位分析(爬虫篇)最初我把重心都放在编写爬虫代码上,后来发现如果要走数据分析这条路的话,爬虫仅仅是个辅助工具,真正重要的数据分析思维,所以有了我的第一个数据分析项目。 我在网上找到了一个类似的分析案例,学习并参考,当然还有取长补短。参考案例链接:https://blog.csdn.net/lbship/article/details/79452459 ...https://www.jianshu.com/p/309493fe5c7b
3.精准营销的营销案例和分析(大数据如何触发精准营销)BI系统收集全量数据,集成算法模型,输出各个业务自助分析应用。让管理者了解如何在销售管理中合理划分销售区域和指标,深入解读如何实现精准的销售预测,合理配置资源。 案例项目精准营销结果: 1、方案实施后,销售的商机诊断和预测水平提高,月成交率提高了24%。 https://www.niaogebiji.com/article-130536-1.html
1.大数据分析应用大数据分析案例解决方案实践项目帆软在行业大数据应用方面有着丰富的经验,和诸多成功案例,基于此,可以帮助企业快速搭建出专业高效的大数据分析平台和BI报表系统,实现数据化运营,提升企业核心竞争力。https://www.fanruan.com/cases/typical
2.干货!50个Python数据分析实战案例项目(持续更新……)kaggle数据分析实践项目练习——人力资源分析 大众点评评论文本挖掘 手机微博榜单数据爬虫与分析 猫眼电影爬虫及分析 漫威电影宇宙英雄综合实力对比分析 20 秒看懂中国大学 10 年排行榜变化 航空公司客户价值分析 电子商务网站用户行为分析及服务推荐 关于地震的爬虫数据分析实战 ...https://blog.csdn.net/Java_Joker/article/details/132536051
3.建筑行业(项目管理)BI数据可视化分析案例建筑行业(项目管理) BI 数据可视化分析案例 建筑工程是为新建、改建或扩建房屋建筑物和附属构筑物设施所进行的规划、勘察、设计和施工、竣工等各项技术工作和完成的工程实体以及与其配套的线路、管道、设备的安装工程。施工项目管理就是指施工单位在完成所承揽的工程建设施工项目的过程中,运用系统的观点和理论以及现代科学...https://ask.hellobi.com/blog/paike/18852
4.python数据案例分析客户流失预测带数据集用户流失数据分析python数据案例分析客户流失预测带数据集 用户流失数据分析,1项目背景在今天产品高度同质化的阶段,市场竞争不断加剧,企业与企业之间的竞争,主要集中在对客户的争夺上。“用户就是上帝”促使众多企业不惜代价去争夺尽可能多的新客户。但是,在企业不惜代价发展新用户的过https://blog.51cto.com/u_16099333/8980136
5.数据分析报告(通用17篇)数据分析报告 篇4 南京千百万数据技术分析师事务所有限公司依据《中华百姓民主国审计法》和相关海外贷援款协定的规定,20xx年,审计署帮会海外贷援款子目审计服务核心和相关特派员办事处对由中央单位执行或帮会执行的102个海外贷援款子目20xx年度财务收支和项目执行情况施行了审计,南京千百万数据技术分析师事务所有限公司...https://www.ruiwen.com/gongwen/baogao/919787.html
6.鲲鹏产业学院课程介绍《鲲鹏云大数据服务与基础应用实训》课程是基于鲲鹏云大数据的实践课程,提供鲲鹏架构的大数据网站流量离线分析项目用于学生进行实践,项目案例技术面涉及广,按照真实项目场景分析以及技术团队分工及工作流程介绍,与企业项目一致,学生完成后可以达到大数据高级开发工程师水平,采用实训周方式进行授课。 https://xxdz.hnuahe.edu.cn/info/2062/2760.htm
7.大数据应用与分析专业主要做什么人工智能是指让计算机模拟人类智能的能力,自然语言处理是指让计算机理解和处理自然语言的能力。学生需要学习各种人工智能和自然语言处理的算法和模型,如语音识别、机器翻译、情感分析等,并能够应用这些算法和模型解决实际问题。 8.项目管理和应用案例分析 项目管理是指对项目进行规划、执行、监控和控制的过程,应用案例分析...https://www.linkflowtech.com/news/1631
8.建筑师负责制下的老旧小区改造澎湃号·媒体澎湃新闻改造细节优化比选与快速成本测算工具,解决改造细节优化比选难于量化的问题。三维实景影像图形生成、数据叠加和分析技术解决了现场人工勘察耗时、费力、扰民、工作量大的难题。 社区更新改造案例分析 项目概况 北京市丰台区韩庄子社区项目是中国建筑集团在京央企老旧小区改造试点项目,地处北京市丰台区科兴路与韩庄路交汇处西北...https://www.thepaper.cn/newsDetail_forward_25469315
9.案例分享养猪行业的大数据分析,牧原是这样做的!以下方案案例以FineBI构建的自助分析系统为例做分享。 三、总体架构方案 1.项目方案 传统关系型数据库的性能限制,导致难以支持大量级数据多维度查询计算,此时如果直接对接传统关系型数据库进行数据分析查询,就容易出现性能瓶颈。因此项目中采用了FineBI自带的需要做数据抽取的数据引擎。由于前期数据量级不大,根据推荐,直...https://maimai.cn/article/detail?fid=806048938&efid=NbSAxmtChWmc2of9L-IZoA