【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.rhkb.cn/news/186212.html

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

相关文章

JAVA代码视频转GIF(亲测有效)

1.说明 本次使用的是JAVA代码视频转GIF&#xff0c;maven如下&#xff1a; <dependency><groupId>ws.schild</groupId><artifactId>jave-nativebin-win64</artifactId><version>3.2.0</version></dependency><dependency&…

07、SpringBoot+微信支付 -->处理超时订单(定时查询、核实微信支付平台的订单、调用微信支付平台查单接口、更新本地订单状态、记录支付日志)

目录 Native 支付处理超时订单定时的讲解需求分析代码定时任务&#xff1a;WxPayTask定时查询的方法&#xff1a;核实订单状态等操作 &#xff1a;WxPayServiceImpl查单接口方法&#xff1a;queryOrder更新本地订单状态&#xff1a;updateStatusByOrderNo记录支付日志&#xff…

苍穹外卖-day06

苍穹外卖-day06 课程内容 HttpClient微信小程序开发微信登录导入商品浏览功能代码 功能实现&#xff1a;微信登录、商品浏览 微信登录效果图&#xff1a; 商品浏览效果图&#xff1a; 1. HttpClient 1.1 介绍 HttpClient 是Apache Jakarta Common 下的子项目&#xff0c;…

单例模式 rust和java的实现

文章目录 单例模式介绍应用实例&#xff1a;优点使用场景 架构图JAVA 实现单例模式的几种实现方式 rust实现 rust代码仓库 单例模式 单例模式&#xff08;Singleton Pattern&#xff09;是最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建…

rabbitMQ rascal/amqplib报错 Error: Unexpected close 排查

以下是一些可能导致此 RabbitMQ 客户端或任何其他 RabbitMQ 客户端中的套接字读取或写入失败的常见场景 1.错过&#xff08;客户端&#xff09;心跳 第一个常见原因是RabbitMQ 检测到心跳丢失。发生这种情况时&#xff0c;RabbitMQ 将添加一个有关它的日志条目&#xff0c;然…

SQL note1:Basic Queries + Joins Subqueries

目录 一、Basic Queries 1、数据库术语 2、查表 3、过滤掉我们不感兴趣的行 4、布尔运算 5、过滤空值&#xff08;NULL&#xff09; 6、分组和聚合 1&#xff09;汇总数据的列 2&#xff09;汇总数据组 7、分组聚合的警告 1&#xff09;SELECT age, AVG(num_dogs) FR…

基于ssm的大学生社团管理系统

基于ssm的大学生社团管理系统 摘要 基于SSM的大学生社团管理系统是一个全面、高效的社团管理平台&#xff0c;旨在帮助大学生和社团管理员更方便、更快捷地进行社团活动的组织和管理。该系统基于Spring、SpringMVC和MyBatis&#xff08;简称SSM&#xff09;开发&#xff0c;这三…

Ubuntu中安装rabbitMQ

一、安装 RabbitMQ ①&#xff1a;更新源 sudo apt-get update②&#xff1a;安装Rrlang语言 由于RabbitMq需要erlang语言的支持&#xff0c;在安装RabbitMq之前需要安装erlang sudo apt-get install erlang-nox③&#xff1a;安装rabbitMQ sudo apt-get install rabbitmq-s…

【算法与数据结构】216、LeetCode组合总和 III

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题可以直接利用77题的代码【算法与数据结构】77、LeetCode组合&#xff0c;稍作修改即可使用。   …

APISpace IP归属地查询接口案例代码

1.IP归属地查询API 1.1 API接口简介 IP归属地查询API&#xff1a;根据IP地址查询归属地信息&#xff0c;包含国家、省、市、区县和运营商等信息。APISpace 提供了IPv4 和 IPv6 的IP归属地查询接口&#xff0c;并且包含了各种归属地精度查询的接口。 1.2 IPv4 IPv4归属地查询…

亚马逊云科技海外服务器初体验

目录 前言亚马逊云科技海外服务器概述注册使用流程实例创建性能表现用户体验服务支持初体验总结 前言 随着云原生技术的飞速发展&#xff0c;越来越多的企业和开发者选择云服务器来作为自己的使用工具&#xff0c;云原生技术的发展也促进了云服务厂商的产品发展&#xff0c;所…

树莓派4B的测试记录(CPU、FFMPEG)

本文是用来记录树莓派 4B 的一些测试记录。 温度 下面记录中的风扇和大风扇是这样的&#xff1a; 为什么要用大风扇呢&#xff1f;因为小风扇在外壳上&#xff0c;气流通过外壳的珊格会有啸叫&#xff0c;声音不大但是很烦人&#xff0c;大风扇没这个问题&#xff0c;并且同样…

python编程复习系列——week1(Input Output)

Input & Output 前言0、我们的第一个Python程序一、变量和数据类型1.变量是用来存储值的保留存储位置2.变量以特定的数据类型存储值。常见数据类型&#xff1a;3.字符串添加&#xff08;连接&#xff09;4.字符串乘法&#xff08;带数字&#xff09;&#xff01;5.从用户处…

vue3 - swiper插件 实现PC端的 视频滑动功能(仿抖音短视频)

swiper官网 ​​​​​​swiper属性/组件查询 vue中使用swiper 步骤&#xff1a; ① npm install swiper 安装 ② 基础模板&#xff1a; <div><swiper class"swiper-box" :direction"vertical":grabCursor"true" :mousewheel"tr…

【面试经典150 | 】颠倒二进制位

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;逐位颠倒方法二&#xff1a;分治 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于…

线程基础知识

目录 进程 线程 CPU 核心数和线程数的关系 上下文切换(Context switch) Thread 和 Runnable 的区别 Callable、Future 和 FutureTask 面试题:新启线程有几种方式? 中止 中断 深入理解 run()和 start() 进程 我们常听说的是应用程序&#xff0c;也就是 app&#xff…

使命担当 守护安全 | 中睿天下获全国海关信息中心感谢信

近日&#xff0c;全国海关信息中心向中睿天下发来感谢信&#xff0c;对中睿天下在2023年网络攻防演练专项活动中的大力支持和优异表现给予了高度赞扬。 中睿天下对此次任务高度重视&#xff0c;紧密围绕全国海关信息中心的行动要求&#xff0c;发挥自身优势有效整合资源&#x…

Vue3中使用Pinia

前言&#xff1a; 在 Vue 3 中&#xff0c;Pinia 是一个用于管理全局状态的库。它可以让我们更容易地维护和共享应用的状态。下面是如何在 Vue 3 中使用 Pinia 的步骤。 正文&#xff1a; 首先&#xff0c;我们需要安装 Pinia。可以使用 npm 或者 yarn 来安装。例如&#xff0…

【Unity ShaderGraph】| 如何快速制作一个炫酷的 全息投影效果

前言 【Unity ShaderGraph】| 如何快速制作一个炫酷的 全息投影效果一、效果展示二、 全息投影效果 前言 本文将使用ShaderGraph制作一个 炫酷的 全息投影效果 &#xff0c;可以直接拿到项目中使用。对ShaderGraph还不了解的小伙伴可以参考这篇文章&#xff1a;【Unity Shader…

Docker学习——④

文章目录 1、Docker Image&#xff08;镜像&#xff09;2、镜像命令详解2.1 docker rmi2.2 docker save2.3 docker load2.4 docker image inspect2.5 docker history2.6 docker image prune 3、镜像综合实战3.1 离线镜像迁移3.2 镜像存储的压缩与共享 1、Docker Image&#xff…