【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/136617.shtml

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

相关文章

苹果Ios系统app应用程序开发者如何获取IPA文件签名证书时需要注意什么?

今天呢想和大家介绍介绍苹果App开发者如何获取IPA文件签名证书的步骤和注意事项。对于苹果应用程序开发者而言,获取IPA文件签名证书是发布应用程序至App Store的重要步骤之一。签名证书能够确保应用程序的安全性和可信度,并使其能够在设备上正确运行。 …

VR全景技术,为养老院宣传推广带来全新变革

现如今,人口老龄化的现象加剧,养老服务行业也如雨后春笋般不断冒头,但是市面上各式的养老院被包装的五花八门,用户实际参访后却差强人意,如何更好的给父母挑选更为舒心的养老环境呢?可以利用720度VR全景技术…

iOS代码混淆----自动

先大致解释一下“编译"、"反编译": 编译:就是把千千万万行字符串(也叫代码,或者源文件),变成010101010101(机器码,也叫目标代码) 编译过程:预处理-编译-汇编-链接 我的脚本运行在预处理阶段。 反编…

什么是数据库?数据库有哪些基本分类和主要特点?

数据库是以某种有组织的方式存储的数据集合。本文从数据库的基本概念出发,详细解读了数据库的主要类别和基本特点,并就大模型时代备受瞩目的数据库类型——向量数据库进行了深度剖析,供大家在了解数据库领域的基本概念时起到一点参考作用。 …

计算机视觉驾驶行为识别应用简述

一、什么是计算机视觉识别? 计算机视觉识别是一种基于图像处理和机器学习的人工智能应用技术,可以用于多个场景。常见应用场景包括人脸识别、场景识别、OCR识别以及商品识别等。今天以咱们国产系统豌豆云为例,为大家梳理一下在车辆驾驶行为中…

Kafka -- 架构、分区、副本

1、Kafka的架构: 1、producer:消息的生产者 2、consumer:消息的消费者 3、broker:kafka集群的服务者,一个broker就是一个节点,主要是负责处理消息的读、写的请求和存储消息。在kafka cluster中包含很多的br…

雷达波形之一——LFM线性调频波形

文章目录 前言一、线性调频信号的形式1、原理2、时域表达式3、频域表达式 二、MATLAB 仿真1、涅菲尔积分①、MATLAB 源码②、仿真结果 2、LFM①、MATLAB 源码②、仿真结果1) 典型 LFM 波形,实部2) 典型 LFM 波形,虚部3) LFM 波形的典型谱 前言 线性调频…

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

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

Java自学第6课:电商项目(2)

1 创建工具类并连接数据库 在工程src右键单击new,新建util包 再创建DBUtil类 数据库交互需要有数据库支持的包,这是官方给出的类库。 先声明1个代码块 // 静态代码块 只加载1次static{try {Class.forName("com.mysql.jdbc.Driver");} catch (…

华为gre带验证key案例

配置FW_A。 a.配置接口的IP地址,并将接口加入安全区域。 system-view [sysname] sysname FW_A [FW_A] interface GigabitEthernet 1/0/1 [FW_A-GigabitEthernet1/0/1] ip address 1.1.1.1 24 [FW_A-GigabitEthernet1/0/1] quit [FW_A] interface GigabitEthernet 1/…

NAT协议

目录 NAT 前言 NAT地址转换表 NAT分类 前言 静态NAT 192.168.1.2访问200.1.1.2执行过程 动态NAT 192.168.1.2访问200.1.1.2执行过程 NAPT 192.168.1.2的5000端口访问200.1.1.2的80端口执行过程 基本命令 配置动态NAPT转换 定义内外网接口 配置NAPT 静态NAPT配置…

简述SVM

概述 SVM,即支持向量机(Support Vector Machine),是一种常见的监督学习算法,用于分类和回归问题。它是一种基于统计学习理论和结构风险最小化原则的机器学习方法。 SVM的主要思想是在特征空间中找到一个最优的超平面…

【Shell脚本8】Shell printf 命令

Shell printf 命令 printf 命令模仿 C 程序库(library)里的 printf() 程序。 printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好。 printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化…

Elasticsearch 集群状态详解

cluster state 返回结果详解 GET /_cluster/statehttps://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-state.html详细信息如下: {"cluster_name": "business-log","cluster_uuid": "ArYy-qmCTbCQTDUI8o…

conda清华源安装cuda12.1的pytorch

使用pytorch官方提供的conda command奇慢无比,根本装不下来(科学的情况下也这样) 配置一下清华源使用清华源装就好了 清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ 配置方法:conda config --…

strtok函数详解:字符串【分割】的利器

目录 一,strtok函数简介 二,strtok函数的用法 三,strtok函数的注意事项 一,strtok函数简介 strtok函数可以帮助我们将一个字符串按照指定的分隔符进行分割,从而得到我们想要的子字符串。 🍂函数头文件&am…

腾讯待办是不是停了?怎么用其它提醒软件查看导出的ics文件

腾讯待办是腾讯企业旗下的业务产品,其主要以微信小程序的形式使用,定位于待办事项和日程管理工具,支持罗列日程待办清单、设定定时提醒,帮助大家规划日常事务和进行时间管理,成功创建待办事项后可在对应的公众号和绑定…

Python教程之字典(Dictionary)操作详解

文章目录 前言一、创建字典二、访问字典里的值三、访问字典里的值四、删除字典元素五、字典键的特性六、字典内置函数&方法七、字典练习代码关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Py…

tqdm学习

from tqdm import tqdmepochs 10 epoch_bar tqdm(range(epochs)) count 0 for _ in epoch_bar:count count1print("count {}".format(count))print(_)每次就是一个epoch

如何在Jetpack Compose中显示PDF?

当读取和显示 PDF 的组件缺失时该怎么办? 声明式编程可以拯救你. Jetpack Compose已经存在好几年了, 但_在某些方面它的使用仍然面临挑战_. 例如, 缺少用于查看PDF的官方组件, 而为数不多的第三方库通常也是有代价的. 在我们的应用中, 我们会遇到在许多场景中显示 PDF 的需求…