每一場體育賽事都會產(chǎn)生大量數(shù)據(jù),這些數(shù)據(jù)可用于分析運動員、球隊表現(xiàn)以及比賽中的亮點。作為分析案例,我們使用T20世界杯的數(shù)據(jù)進行分析。如果你有興趣學(xué)習(xí)如何分析類似T20世界杯這樣的體育賽事,本文將為您提供指導(dǎo)。在本文中,我們將使用 Python 來分析 2022年T20世界杯的數(shù)據(jù)。
前期數(shù)據(jù)準(zhǔn)備
我們使用的數(shù)據(jù)集主要的關(guān)鍵數(shù)據(jù)信息如下,具體數(shù)據(jù)可以直接下載原始數(shù)據(jù)進行查看:
- venue(比賽場館): 比賽舉行的地點
- team1(先發(fā)擊球隊伍): 先發(fā)擊球的隊伍
- team2(后發(fā)擊球隊伍): 后發(fā)擊球的隊伍
- stage(比賽階段): 比賽的階段(超級12、半決賽或決賽)
- toss winner(贏得拋硬幣的隊伍): 贏得拋硬幣的隊伍
- toss decision(贏得拋硬幣后隊長的決策): 隊長在贏得拋硬幣后的決策
- first innings score(第一局得分): 第一局得分
- first innings wickets(第一局失去的擊球員數(shù)): 第一局失去的擊球員數(shù)
- second innings score(第二局得分): 第二局得分
- second innings wickets(第二局失去的擊球員數(shù)): 第二局失去的擊球員數(shù)
- winner(贏得比賽的隊伍): 獲勝的隊伍
- won by(贏得比賽的方式): 隊伍獲勝的方式(擊球員數(shù)或得分?jǐn)?shù))
- player of the match(比賽最佳球員): 比賽的最佳球員
- top scorer(比賽中得分最高的球員): 比賽中得分最高的球員
- highest score(比賽中某球員獲得的最高得分): 比賽中由球員得到的最高得分
- best bowler(比賽中取得最多擊球員的球員): 比賽中取得最多擊球員的球員
- best bowling figure(最佳投手在比賽中取得的擊球員數(shù)和失去的得分?jǐn)?shù)): 最佳投手在比賽中取得的擊球員數(shù)和失去的得分?jǐn)?shù)
原始數(shù)據(jù)下載:文末公眾號回復(fù)
D01
即可下載。
導(dǎo)入數(shù)據(jù)
使用如下的代碼進行導(dǎo)入數(shù)據(jù),主要使用的 Package 是 Python 的 pandas
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
import plotly.io as pio
pio.templates.default = "plotly_white"
data = pd.read_csv("data\\t20-world-cup-22.csv")
print(data.head())
打印的數(shù)據(jù)內(nèi)容如下:
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]
分析:世界杯中各隊贏得的比賽數(shù)
現(xiàn)在讓我們來看一看每支球隊在世界杯中贏得的比賽數(shù)量:
figure = px.bar(data,
x=data["winner"],
title="2022年T20世界杯中各隊贏得的比賽數(shù)")
figure.show()
最后生成的圖表:
從圖表中可以看出,獲勝次數(shù)最多的是英格蘭,他們贏得了五場比賽。而巴基斯坦和印度都贏得了4場比賽。
分析:先打或后打的比賽獲勝次數(shù)
現(xiàn)在讓我們來看一看在2022年T20世界杯中,先打或后打的比賽獲勝次數(shù):
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='比賽勝利次數(shù)按得分或擊球數(shù)來計算')
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場比賽是由追擊的一方獲勝。
分析:世界杯中的拋硬幣決策
現(xiàn)在,讓我們來看一看各支球隊在世界杯中的拋硬幣決策:
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世界杯的最高得分者
現(xiàn)在讓我們來看一看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世界杯中最出色的擊球手。
分析:世界杯比賽最佳球員獎
現(xiàn)在讓我們來看一看世界杯中的最佳球員獎次數(shù):
代碼示例如下:
figure = px.bar(data,
x = data["player of the match"],
title="世界杯比賽最佳球員獎")
figure.show()
在圖表中可以直觀的看出,以下是在比賽結(jié)束時獲得最佳投球數(shù)據(jù)的投手:
- Virat Kohli - 2場比賽中獲得最佳投手獎。
- Sam Curran - 2場比賽中獲得最佳投手獎。
- Taskin Ahmed - 2場比賽中獲得最佳投手獎。
- Suryakumar Yadav - 2場比賽中獲得最佳投手獎。
- 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()
最后根據(jù)圖表分析可以得出 :SCG 球場的投球條件以先發(fā)制人更有利而聞名,這就是為什么許多球隊在2019年世界杯期間更喜歡在該球場先發(fā)制人的原因。然而,應(yīng)該注意到這種優(yōu)勢可能會因天氣條件和投手的表現(xiàn)等因素而有所不同。
接下來進行比較一下2022年T20世界杯每個球場的第一次和第二次失去的球數(shù):
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="最適合先發(fā)球或后手防守的球場")
fig.show()
從下表中可以看出:SCG 是最適合在防守目標(biāo)時投球的球場,而 Optus 體育場則是最適合先發(fā)球的球場。
案例分析總結(jié)
從我們的分析中,我們發(fā)現(xiàn)了2022年T20世界杯的一些亮點:
- 英格蘭贏得了最多的比賽場次
- Virat Kohli 在最多場比賽中得分最高
- Sam Curran 是在最多場比賽中表現(xiàn)最好的投手
- 更多的球隊通過先發(fā)制人獲勝
- 更多的球隊選擇先發(fā)制人
- SCG 是最適合先發(fā)制人的球場
- SCG 是世界杯中最適合防守目標(biāo)的球場
- Optus 體育場是最適合先發(fā)球的球場
希望你喜歡這篇關(guān)于使用 Python 進行 2022年T20世界杯分析的文章。
如果有任何有價值的問題,請隨時在下方評論區(qū)提問。
文末送書《Pandas數(shù)據(jù)分析》
本書詳細闌述了與Pandas數(shù)據(jù)分析相關(guān)的基本解決方案,主要包括數(shù)據(jù)分析導(dǎo)論、使用PandasDataFrame、使用Pandas進行數(shù)據(jù)整理、聚合PandasDataFrame、使用Pandas和Matplotlib可視化數(shù)據(jù)、使用Seaborn和自定義技術(shù)繪圖、金融分析、基于規(guī)則的異常檢測、Python機器學(xué)習(xí)入門、做出更好的預(yù)測、機器學(xué)習(xí)異常檢測等內(nèi)容。此外,本書還提供了相應(yīng)的示例、代碼,以幫助讀者進一步理解相關(guān)方案的實現(xiàn)過程。
- 京東官方購買鏈接:https://item.jd.com/14065178.html
送書參與方式
圖書數(shù)量:下方名片內(nèi)小程序直接抽獎送出 1 本《Pandas數(shù)據(jù)分析》 !
活動時間:截止到 2023/11/15 21:00:00
??抽獎方式:
????點擊下方名片,點擊菜單抽獎,即可參與(如下圖)????
??會在 CSDN 動態(tài)公布中獎名單。文章來源:http://www.zghlxwxcb.cn/news/detail-753769.html
名單公布時間:2023/11/16 21:10:00文章來源地址http://www.zghlxwxcb.cn/news/detail-753769.html

到了這里,關(guān)于【Python】數(shù)據(jù)分析案例:世界杯數(shù)據(jù)可視化 | 文末送書的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!