使用pandas、NumPy、seaborn和matplotlib库对印度超级联赛进行数据分析。
你好,数据科学家们...!
我们都知道,我们生活在一个信息时代,数据在其中起着关键作用。如果你拥有数据,你就拥有了一切。但是,当你得到数据后,接下来该怎么办。嗯,这取决于你得到什么样的数据。但是,如果你得到某种数据,你必须对其进行分析,以获得某种有价值的信息。例如,如果你在Zomato工作,那么你必须对他们进行数据分析。如果你在一些广告公司工作,那么你也要在那里进行数据分析。通过分析他们的数据,你就为公司提供了一些有价值的信息和策略。这里有足够的论述。
IPL数据分析
现在,我们都在看板球,我们都知道印度超级联赛(IPL)是世界上最大的板球联赛。让我们来进行IPL的数据分析,因为我们得到了2008年至2020年的IPL比赛数据。喝杯咖啡,让我们开始黑客行动。
IPL数据的分析
数据集和Github源代码在下面。
我们将通过这个项目的这些主要步骤。
- 导入库
- 加载数据
- 分析数据
导入库
import pandas as pd
%matplotlib inline
在你的Jupyter笔记本或Google Colab中导入这些库,因为我们将在代码中使用它们。
加载数据
match=pd.read_csv('D:\Data Science\IPL\Dataset\matches.csv')
在你的Jupyter笔记本中使用上述代码加载数据。对于Google Colab,你必须把数据集上传到你的驱动器,然后再导入。
分析数据
现在看一下我们正在处理的数据。
match.head(5)
当你运行shell时,在比赛部分你会看到2008年的第一场比赛是在KKR和RCB之间进行。KKR在M Chinnaswamy体育场赢得了比赛,本场比赛的球员是BB McCullum。这场比赛的结果是由跑步决定的。
同样的分析也出现在送球部分。如果你想看表格中前5个底部的数据,那么你必须在Jupyter Notebook或Google Colab单元中运行程序match.tail(5)。
更多关于2008-2020年之间的比赛和球的交付信息
match.info() #816
所有参赛球队的名单
all_teams = match['team1'].tolist() + match['team2'].tolist()
你将得到2008年至2020年期间的参赛球队名单。如果你是一个专业的IPL球迷,那么你会在名单上看到一些老牌球队的名字,这些球队现在已经不玩了,但他们在IPL历史上贡献了一些有价值的信息。
每个场地的比赛数量
sns.countplot('venue', data=match)
IPL每场比赛的数量(2008-2020)。
正如你所看到的,伊甸园是球迷最喜欢的IPL场地,有近80场比赛在那里举行。
每支球队的比赛情况
x = match['team1'].value_counts()
每支球队在IPL中进行的比赛(2008-2020)。
我们在第一栏中计算每支球队的比赛值,然后将第二栏中每支球队的计算值相加,得到所需的输出。例如,如果CSK从第一队中出场90次,从第二队中出场85次,那么图表中显示的比赛总数为175场。你可以清楚地看到,孟买印度人在IPL中的比赛次数是最多的。
各队赢得的比赛
x=pd.DataFrame({"Winner":match['winner']}).value_counts()
当你运行这个单元时,你会看到孟买印度人赢得了最多的比赛,其次是CSK和其他球队。现在,如果你想把这个结果以图表的形式绘制出来,那么在下一个单元格运行这个程序。
sns.countplot('winner', data=match)
各队在IPL中赢得的比赛(2008-2020)。
获得比赛最佳球员次数最多的前5名球员
如果你是一个球队的管理官员,而这些球员都是被压制的,那么你必须要关注这些球员,因为这些球员拥有最高数量的比赛奖项。让我们来看看如何找到这一点。
temp_data=match['player_of_match'].value_counts().head()
plt.title("Top 5 MoM")
在IPL(2008-2020年)中获得最佳球员奖数量最多的球员
你最喜欢的球员出现在上面的名单中吗?
IPL中的顶级击球手
对于这个问题,我们必须找出跑动次数最多的球员。为了找出这一点,我们必须将投递数据集中的击球手跑数与获得该跑数的击球手相加。这是很简单的逻辑,对吗?
top_batsman=delivery.groupby('batsman')['batsman_runs'].agg('sum').reset_index().sort_values('batsman_runs', ascending=False).head(10)
top_batsman.set_index('batsman', inplace=True)
我们将投递数据集中的前10名击球手分组,并将他们的得分相加。之后将这些信息绘制成图表。

IPL(2008-2020)中的顶级击球手
很明显,国王Kohli位居首位,其次是Suresh Raina和其他击球手。
跑步次数最多的投手
delivery.groupby('bowler')['total_runs'].agg('sum').reset_index().sort_values('total_runs', ascending=False).head(10)
为此,我们将在IPL比赛中送出分数的前10名保龄球手进行分组,并将这些分数汇总到最后的出口。
具有团队表现的投手
假设你的对手是CSK,你必须找出前几年对阵这支球队时哪个投手的表现好。为了找出一个保龄球手的团队表现分析,你必须在你的笔记本单元中运行以下程序。
mask=delivery['bowler']=='PP Chawla'
我们以PP Chawla为例。这个投手在2020年之前的IPL历史上给出了最高的跑动次数。我们总结了PP Chawla给对手球队的总得分。

PP Chawla对IPL球队的保龄球表现。
很明显,如果你的球队中有PP Chawla,那么就不要让他对阵MI、CSK、RCB、RR和DC。
各队在IPL(2008-2020)中的击球表现
delivery6=delivery[mask]
sns.heatmap(x, cmap='summer')
对于这一点,我们使用一个透视表,然后计算击球队的击球手的总体表现。然后将数据转换成热图。

各队在IPL(2008-2020年)中的击球表现。
你可以清楚地看到,如果你与MI或CSK比赛,那么你必须从第一局开始就使用你最好的保龄球攻击阵容。MI的击球手在第2和第3局都很沉默,之后他们就开始了对对手的狂轰滥炸模式。CSK和RCB的情况也是如此。这个数据不仅从保龄球队的角度有帮助,而且对击球队也有帮助。如果你是一个球队的经理,你通过这个数据看到你的球队在死亡之球中表现不佳,那么你可能会专注于在下次拍卖中购买一个好的终结者。正如你在上面的热图中所看到的,大多数球队在死亡球方面都比较落后,除了CSK和MI。
我想这就是为什么MI和CSK是IPL中最成功的两个特许经营商。
解雇类型
sns.countplot('dismissal_kind', data=delivery)

IPL中的解雇类型(2008-2020年
现在,如果你想知道维拉特-科利在面对贾斯普里特-布姆拉时的得分是多少。
mask=delivery['bowler']=='JJ Bumrah'
当投手是Bumrah,击球手是V-Kohli时,运行的总和。你会得到输出。
现在,请告诉我如何在评论中找出IPL中六分球数量最多的前10名球员?逻辑也是可以接受的。如果需要帮助的话,这里有这个项目的完整Github代码。你可以进一步探索。
这篇文章中使用的数据集 项目在这里.
好了,就这样了。谢谢你的阅读。如果这篇文章内容丰富,那么一定要拍手,并与你的社区分享。
使用Python的IPL数据分析(2008-2020年)最初发表于Nerd For Techon Medium,在那里人们通过强调和回应这个故事来继续对话。