【Python】数据分析案例:世界杯数据可视化 | 文末送书

文章目录

每一场体育赛事都会产生大量数据,这些数据可用于分析运动员、球队表现以及比赛中的亮点。作为分析案例,我们使用T20世界杯的数据进行分析。如果你有兴趣学习如何分析类似T20世界杯这样的体育赛事,本文将为您提供指导。在本文中,我们将使用 Python 来分析 2022年T20世界杯的数据。

前期数据准备

我们使用的数据集主要的关键数据信息如下,具体数据可以直接下载原始数据进行查看:

  • venue(比赛场馆): 比赛举行的地点
  • team1(先发击球队伍): 先发击球的队伍
  • team2(后发击球队伍): 后发击球的队伍
  • stage(比赛阶段): 比赛的阶段(超级12、半决赛或决赛)
  • toss winner(赢得抛硬币的队伍): 赢得抛硬币的队伍
  • toss decision(赢得抛硬币后队长的决策): 队长在赢得抛硬币后的决策
  • first innings score(第一局得分): 第一局得分
  • first innings wickets(第一局失去的击球员数): 第一局失去的击球员数
  • second innings score(第二局得分): 第二局得分
  • second innings wickets(第二局失去的击球员数): 第二局失去的击球员数
  • winner(赢得比赛的队伍): 获胜的队伍
  • won by(赢得比赛的方式): 队伍获胜的方式(击球员数或得分数)
  • player of the match(比赛最佳球员): 比赛的最佳球员
  • top scorer(比赛中得分最高的球员): 比赛中得分最高的球员
  • highest score(比赛中某球员获得的最高得分): 比赛中由球员得到的最高得分
  • best bowler(比赛中取得最多击球员的球员): 比赛中取得最多击球员的球员
  • best bowling figure(最佳投手在比赛中取得的击球员数和失去的得分数): 最佳投手在比赛中取得的击球员数和失去的得分数

在这里插入图片描述

原始数据下载:文末公众号回复D01即可下载。

导入数据

使用如下的代码进行导入数据,主要使用的 Package 是 Python 的 pandas

import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
import plotly.io as piopio.templates.default = "plotly_white"data = pd.read_csv("data\\t20-world-cup-22.csv")
print(data.head())

打印的数据内容如下:

PyDev console: starting.
Python 3.8.8 (tags/v3.8.8:024d805, Feb 19 2021, 13:18:16) [MSC v.1928 64 bit (AMD64)] on win32
...venue        team1  ...         best bowler best bowling figure
0               SCG  New Zealand  ...         Tim Southee                 3-6
1     Optus Stadium  Afghanistan  ...          Sam Curran                5-10
2  Blundstone Arena      Ireland  ...  Maheesh Theekshana                2-19
3               MCG     Pakistan  ...       Hardik Pandya                3-30
4  Blundstone Arena   Bangladesh  ...        Taskin Ahmed                4-25
[5 rows x 17 columns]

分析:世界杯中各队赢得的比赛数

现在让我们来看一看每支球队在世界杯中赢得的比赛数量:

figure = px.bar(data,x=data["winner"],title="2022年T20世界杯中各队赢得的比赛数")
figure.show()

最后生成的图表:

在这里插入图片描述
从图表中可以看出,获胜次数最多的是英格兰,他们赢得了五场比赛。而巴基斯坦和印度都赢得了4场比赛。

分析:先打或后打的比赛获胜次数

现在让我们来看一看在2022年T20世界杯中,先打或后打的比赛获胜次数:

won_by = data["won by"].value_counts()
label = won_by.index
counts = won_by.values
colors = ['#004c6d','#c1e7ff']fig = go.Figure(data=[go.Pie(labels=label, values=counts)])
fig.update_layout(title_text='比赛胜利次数按得分或击球数来计算')
fig.update_traces(hoverinfo='label+percent', textinfo='value', textfont_size=30,marker=dict(colors=colors, line=dict(color='black', width=3)))
fig.show()

在这里插入图片描述

图表分析可知,在2022年T20世界杯中,有16场比赛是由先打的一方获胜,而有13场比赛是由追击的一方获胜。

分析:世界杯中的抛硬币决策

现在,让我们来看一看各支球队在世界杯中的抛硬币决策:

toss = data["toss decision"].value_counts()
label = toss.index
counts = toss.values
colors = ['skyblue','yellow']fig = go.Figure(data=[go.Pie(labels=label, values=counts)])
fig.update_layout(title_text='2022年T20世界杯中的抛硬币决策')
fig.update_traces(hoverinfo='label+percent', textinfo='value', textfont_size=30,marker=dict(colors=colors, line=dict(color='black', width=3)))
fig.show()

在这里插入图片描述

图表分析可知,在17场比赛中,球队选择了先打,而在13场比赛中,球队选择了先防守。

分析:2022年T20世界杯的最高得分者

现在让我们来看一看2022年T20世界杯中的最高得分者:

代码示例:

figure = px.bar(data,x=data["top scorer"],y = data["highest score"],color = data["highest score"],title="2022年T20世界杯的最高得分者")
figure.show()

在这里插入图片描述

从上述柱状图表中可以看到Virat Kohli在3场比赛中得分最高。毫无疑问,他是2022年T20世界杯中最出色的击球手。

分析:世界杯比赛最佳球员奖

现在让我们来看一看世界杯中的最佳球员奖次数:

代码示例如下:

figure = px.bar(data,x = data["player of the match"],title="世界杯比赛最佳球员奖")
figure.show()

在这里插入图片描述

在图表中可以直观的看出,以下是在比赛结束时获得最佳投球数据的投手:

  1. Virat Kohli - 2场比赛中获得最佳投手奖。
  2. Sam Curran - 2场比赛中获得最佳投手奖。
  3. Taskin Ahmed - 2场比赛中获得最佳投手奖。
  4. Suryakumar Yadav - 2场比赛中获得最佳投手奖。
  5. Shadab Khan - 2场比赛中获得最佳投手奖。

以上球员在两场比赛中获得了最佳投手奖,没有球员在超过两场比赛中获得该奖项。

分析:最适合先击球或追逐的球场

接下来让我们比较一下2022年T20世界杯每个球场的第一次和第二次跑分情况:

fig = go.Figure()
fig.add_trace(go.Bar(x=data["venue"],y=data["first innings score"],name='First Innings Runs',marker_color='#003f5c'
))
fig.add_trace(go.Bar(x=data["venue"],y=data["second innings score"],name='Second Innings Runs',marker_color='#c1e7ff'
))
fig.update_layout(barmode='group',xaxis_tickangle=-45,title="最适合先击球或追逐的球场")
fig.show()

在这里插入图片描述

最后根据图表分析可以得出 :SCG 球场的投球条件以先发制人更有利而闻名,这就是为什么许多球队在2019年世界杯期间更喜欢在该球场先发制人的原因。然而,应该注意到这种优势可能会因天气条件和投手的表现等因素而有所不同。

接下来进行比较一下2022年T20世界杯每个球场的第一次和第二次失去的球数:

fig = go.Figure()
fig.add_trace(go.Bar(x=data["venue"],y=data["first innings wickets"],name='First Innings Wickets',marker_color='blue'
))
fig.add_trace(go.Bar(x=data["venue"],y=data["second innings wickets"],name='Second Innings Wickets',marker_color='red'
))
fig.update_layout(barmode='group',xaxis_tickangle=-45,title="最适合先发球或后手防守的球场")
fig.show()

从下表中可以看出:SCG 是最适合在防守目标时投球的球场,而 Optus 体育场则是最适合先发球的球场。

在这里插入图片描述

案例分析总结

从我们的分析中,我们发现了2022年T20世界杯的一些亮点:

  • 英格兰赢得了最多的比赛场次
  • Virat Kohli 在最多场比赛中得分最高
  • Sam Curran 是在最多场比赛中表现最好的投手
  • 更多的球队通过先发制人获胜
  • 更多的球队选择先发制人
  • SCG 是最适合先发制人的球场
  • SCG 是世界杯中最适合防守目标的球场
  • Optus 体育场是最适合先发球的球场

希望你喜欢这篇关于使用 Python 进行 2022年T20世界杯分析的文章。

如果有任何有价值的问题,请随时在下方评论区提问。

文末送书《Pandas数据分析》

本书详细阑述了与Pandas数据分析相关的基本解决方案,主要包括数据分析导论、使用PandasDataFrame、使用Pandas进行数据整理、聚合PandasDataFrame、使用Pandas和Matplotlib可视化数据、使用Seaborn和自定义技术绘图、金融分析、基于规则的异常检测、Python机器学习入门、做出更好的预测、机器学习异常检测等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

  • 京东官方购买链接:https://item.jd.com/14065178.html

在这里插入图片描述

送书参与方式

图书数量:下方名片内小程序直接抽奖送出 1 本《Pandas数据分析》 !

活动时间:截止到 2023/11/15 21:00:00

🏆抽奖方式:

⭐️⭐️点击下方名片,点击菜单抽奖,即可参与(如下图)⭐️⭐️

🏆会在 CSDN 动态公布中奖名单。

名单公布时间:2023/11/16 21:10:00

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179062.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全能音乐制作环境——水果编曲软件FL Studio 21.1版本下载安装配置

目录 前言一、FL Studio 安装二、使用配置总结 前言 FL Studio是一款流行的图像线软件制作和编辑音频文件。作为一款领先的创新产品,该软件能够满足在创作音乐方面的需求。有了这个产品,可以完成制作音乐的整个过程。可以使用这个软件进行写作&#xff…

YOLOv5实现目标分类计数并显示在图像上

有同学后台私信我,想用YOLOv5实现目标的分类计数,因此本文将在之前目标计数博客的基础上添加一些代码,实现分类计数。阅读本文前请先看那篇博客,链接如下: YOLOv5实现目标计数_Albert_yeager的博客 1. 分类实现 以co…

深入理解 Java Bean 的生命周期及各个阶段解析

目录 引言:一、什么是Java Bean二、Bean的生命周期概述三、Bean的创建阶段四、属性设置阶段初始化阶段六、使用阶段七、销毁阶段 引言: Java Bean是Java编程中经常使用的重要概念,它是可重用、可移植、可序列化的组件。在Java开发中&#xf…

最新的外贸自建站教程?做外贸如何建网站?

外贸自建站教程步骤有哪些?海洋建站如何做网站搭建? 想要了解关于外贸自建站的最新教程吗?外贸自建站不再是高不可攀的难题,相反,它为企业提供了更多的机会和自主掌握业务的空间。海洋建站将为您提供一份全面的指南&a…

Android 编译的配置文件:android.mk 和android.bp

Android.bp文件首先是Android系统的一种编译配置文件,是用来代替原来的Android.mk文件的。在Android7.0以前,Android都是使用make来组织各模块的编译,对应的编译配置文件就是Android.mk。在Android7.0开始,Google引入了ninja和kat…

什么是大数据测试?有哪些类型?应该怎么测?

随着目前世界上各个国家使用大数据应用程序或应用大数据技术场景的数量呈指数增长,相应的,对于测试大数据应用时所需的知识与大数据测试工程师的需求也在同步增加。 针对大数据测试的相关技术已慢慢成为当下软件测试人员需要了解和掌握的一门通用技术。…

SPSS生存分析:寿命表分析

前言: 本专栏参考教材为《SPSS22.0从入门到精通》,由于软件版本原因,部分内容有所改变,为适应软件版本的变化,特此创作此专栏便于大家学习。本专栏使用软件为:SPSS25.0 本专栏所有的数据文件请点击此链接下…

15 网关实战: 微服务集成Swagger实现在线文档

上节介绍了网关层面聚合API文档,通过网关的路由信息找到了各个服务的请求地址,这节讲一下微服务如何集成Swagger。 网关的API文档默认调用的是微服务的**/v2/api-docs**这个接口获取API详细信息,比如文章服务的URL:http://localhost:9000/blog-article/v2/api-docs,返回信…

Python分享之字符串格式化 (%操作符)

在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出。Python中内置有对字符串进行格式化的操作%。 模板 格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置&#xff…

Python二叉树用法介绍

更多资料获取 📚 个人网站:ipengtao.com 二叉树是一种常见的数据结构,具有树形结构,每个节点最多有两个子节点。Python中有多种方式来表示和操作二叉树,本文将介绍二叉树的基本概念、构建、遍历和一些常见操作&#x…

3个.NET开源免费的仓库管理系统(WMS)

前言 今天给大家推荐3个.NET开源免费的WMS仓库管理系统(注意:以下排名不分先后)。 仓储管理系统介绍 仓储管理系统(Warehouse Management System,WMS)是一种用于管理和控制仓库操作的软件系统&#xff0…

F5社区学习心得分享:如何克服云迁移挑战?

伴随数字时代的快速发展,很多企业都会借助云迁移,踏上转型之旅。尽管云迁移被认为是一种能够节约成本,且不会影响正常运营的现代化改造举措,然而我们并不能低估它的复杂性。正如有研究表明,约有41%的企业并没有通过云迁…

lv11 嵌入式开发 WDT实验 12

目录 1 WDT简介 2 Exynos4412下的WDT控制器 2.1 概述 2.2 WDT的特性 2.3 工作原理 2.4 其他细节 3 WDT寄存器详解 3.1 WTCON控制寄存器 3.2 WTDAT 实时中断寄存器 3.3 WTCNT 递减计数器 3.4 WTCLRINT清除中断寄存器 4 WDT编程 1 WDT简介 Watch Dog Timer即看门狗定…

ZKP15.2 Formal Methods in ZK (Part I)

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 15: Secure ZK Circuits via Formal Methods (Guest Lecturer: Yu Feng (UCSB & Veridise)) 15.2 Formal Methods in ZK (Part I) Circuits Workflow Source Code: Witness Generation and ConstraintsWitness Generatio…

【力扣】 209. 长度最小的子数组

【力扣】 209. 长度最小的子数组 文章目录 【力扣】 209. 长度最小的子数组1. 题目介绍2. 解法2.1 暴力求解2.2 前缀和 二分查找2.3 滑动窗口2.4 贪心回溯 3. Danger参考 1. 题目介绍 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 …

ubuntu安装远程桌面

ubuntu安装远程桌面 xrdp远程桌面访问 #用windows远程桌面连接成功,只能用root用户,用普通用户连接是灰色 sudo apt install xrdp systemctl status xrdpsystemctl stop xrdp解决普通用户连接是灰色 参考链接: https://blog.csdn.net/leegh1992/article/details/51160864 s…

PyCharm安装PyQt5及工具(Qt Designer、PyUIC、PyRcc)详细教程来了

Qt是常用的用户界面设计工具,而在Python中则使用PyQt这一工具包,它是Python编程语言和Qt库的成功融合。这篇博文通过图文详细介绍在PyCharm中如何完整优雅地安装配置PyQt5的所有工具包,主要内容包括PyQt5、PyQt5-tools的依赖包安装和Qt Desig…

C或C++报错:ld returned 1 exit status报错的原因

C或C报错:ld returned 1 exit status(ld返回1,退出状态) 可能是以下原因: 1)程序正在运行,无法编译,上次运行的窗口未关闭。 程序窗口重复运行没有及时关闭,存在多个打开窗…

Python中的sys模块详解

1. 简介 sys模块是Python标准库中的一个内置模块,提供了与Python解释器和运行环境相关的功能。它包含了一些与系统操作和交互相关的函数和变量,可以用于获取命令行参数、控制程序的执行、管理模块和包、处理异常等。 2. 常用函数和变量 2.1 命令行参数…

二叉树之推排序(升序)

目录 1.思路1.1大堆的建立方法1.2排序的方法 2.代码实现以及测试代码 1.思路 如何将一个堆进行排序,并变成升序?首先,如果要完成升序,那我们可以建立一个大堆,因为大堆可以选出一个最大的值放在堆的最上面&#xff0c…