{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
match_idinningbatting_teambowling_teamoverballbatsmannon_strikerbowleris_super_over...bye_runslegbye_runsnoball_runspenalty_runsbatsman_runsextra_runstotal_runsplayer_dismisseddismissal_kindfielder
011Sunrisers HyderabadRoyal Challengers Bangalore11DA WarnerS DhawanTS Mills0...0000000NaNNaNNaN
111Sunrisers HyderabadRoyal Challengers Bangalore12DA WarnerS DhawanTS Mills0...0000000NaNNaNNaN
\n", "

2 rows × 21 columns

\n", "
" ], "text/plain": [ " match_id inning batting_team bowling_team over \\\n", "0 1 1 Sunrisers Hyderabad Royal Challengers Bangalore 1 \n", "1 1 1 Sunrisers Hyderabad Royal Challengers Bangalore 1 \n", "\n", " ball batsman non_striker bowler is_super_over ... bye_runs \\\n", "0 1 DA Warner S Dhawan TS Mills 0 ... 0 \n", "1 2 DA Warner S Dhawan TS Mills 0 ... 0 \n", "\n", " legbye_runs noball_runs penalty_runs batsman_runs extra_runs \\\n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "\n", " total_runs player_dismissed dismissal_kind fielder \n", "0 0 NaN NaN NaN \n", "1 0 NaN NaN NaN \n", "\n", "[2 rows x 21 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df=pd.read_csv(\"Ipl Data/deliveries.csv\")\n", "df.head(2)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
match_idinningbatting_teambowling_teamoverballbatsmannon_strikerbowleris_super_over...bye_runslegbye_runsnoball_runspenalty_runsbatsman_runsextra_runstotal_runsplayer_dismisseddismissal_kindfielder
911Sunrisers HyderabadRoyal Challengers Bangalore23DA WarnerS DhawanA Choudhary0...0010011NaNNaNNaN
18212Royal Challengers BangaloreSunrisers Hyderabad101KM JadhavTM HeadMC Henriques0...0010112NaNNaNNaN
144071Kolkata Knight RidersMumbai Indians33CA LynnG GambhirJJ Bumrah0...0010112NaNNaNNaN
144371Kolkata Knight RidersMumbai Indians36CA LynnG GambhirJJ Bumrah0...0010112NaNNaNNaN
154571Kolkata Knight RidersMumbai Indians202MK PandeySP NarineMJ McClenaghan0...0010415NaNNaNNaN
..................................................................
19097212165371Kings XI PunjabRajasthan Royals192GJ MaxwellCH GayleKartik Tyagi0...0050055NaNNaNNaN
19273712371781Royal Challengers BangaloreSunrisers Hyderabad115AB de VilliersAB de VilliersS Nadeem0...0020022NaNNaNNaN
19282412371782Sunrisers HyderabadRoyal Challengers Bangalore52DA WarnerMK PandeyWashington Sundar0...0010011NaNNaNNaN
19295012371801Delhi CapitalsSunrisers Hyderabad62S DhawanMP StoinisS Nadeem0...0050055NaNNaNNaN
19301112371801Delhi CapitalsSunrisers Hyderabad156S HetmyerS DhawanS Nadeem0...0030033NaNNaNNaN
\n", "

764 rows × 21 columns

\n", "
" ], "text/plain": [ " match_id inning batting_team \\\n", "9 1 1 Sunrisers Hyderabad \n", "182 1 2 Royal Challengers Bangalore \n", "1440 7 1 Kolkata Knight Riders \n", "1443 7 1 Kolkata Knight Riders \n", "1545 7 1 Kolkata Knight Riders \n", "... ... ... ... \n", "190972 1216537 1 Kings XI Punjab \n", "192737 1237178 1 Royal Challengers Bangalore \n", "192824 1237178 2 Sunrisers Hyderabad \n", "192950 1237180 1 Delhi Capitals \n", "193011 1237180 1 Delhi Capitals \n", "\n", " bowling_team over ball batsman \\\n", "9 Royal Challengers Bangalore 2 3 DA Warner \n", "182 Sunrisers Hyderabad 10 1 KM Jadhav \n", "1440 Mumbai Indians 3 3 CA Lynn \n", "1443 Mumbai Indians 3 6 CA Lynn \n", "1545 Mumbai Indians 20 2 MK Pandey \n", "... ... ... ... ... \n", "190972 Rajasthan Royals 19 2 GJ Maxwell \n", "192737 Sunrisers Hyderabad 11 5 AB de Villiers \n", "192824 Royal Challengers Bangalore 5 2 DA Warner \n", "192950 Sunrisers Hyderabad 6 2 S Dhawan \n", "193011 Sunrisers Hyderabad 15 6 S Hetmyer \n", "\n", " non_striker bowler is_super_over ... bye_runs \\\n", "9 S Dhawan A Choudhary 0 ... 0 \n", "182 TM Head MC Henriques 0 ... 0 \n", "1440 G Gambhir JJ Bumrah 0 ... 0 \n", "1443 G Gambhir JJ Bumrah 0 ... 0 \n", "1545 SP Narine MJ McClenaghan 0 ... 0 \n", "... ... ... ... ... ... \n", "190972 CH Gayle Kartik Tyagi 0 ... 0 \n", "192737 AB de Villiers S Nadeem 0 ... 0 \n", "192824 MK Pandey Washington Sundar 0 ... 0 \n", "192950 MP Stoinis S Nadeem 0 ... 0 \n", "193011 S Dhawan S Nadeem 0 ... 0 \n", "\n", " legbye_runs noball_runs penalty_runs batsman_runs extra_runs \\\n", "9 0 1 0 0 1 \n", "182 0 1 0 1 1 \n", "1440 0 1 0 1 1 \n", "1443 0 1 0 1 1 \n", "1545 0 1 0 4 1 \n", "... ... ... ... ... ... \n", "190972 0 5 0 0 5 \n", "192737 0 2 0 0 2 \n", "192824 0 1 0 0 1 \n", "192950 0 5 0 0 5 \n", "193011 0 3 0 0 3 \n", "\n", " total_runs player_dismissed dismissal_kind fielder \n", "9 1 NaN NaN NaN \n", "182 2 NaN NaN NaN \n", "1440 2 NaN NaN NaN \n", "1443 2 NaN NaN NaN \n", "1545 5 NaN NaN NaN \n", "... ... ... ... ... \n", "190972 5 NaN NaN NaN \n", "192737 2 NaN NaN NaN \n", "192824 1 NaN NaN NaN \n", "192950 5 NaN NaN NaN \n", "193011 3 NaN NaN NaN \n", "\n", "[764 rows x 21 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[df[\"noball_runs\"]!=0] # all the no-ball deliveries" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "9 A Choudhary\n", "182 MC Henriques\n", "1440 JJ Bumrah\n", "1443 JJ Bumrah\n", "1545 MJ McClenaghan\n", " ... \n", "190972 Kartik Tyagi\n", "192737 S Nadeem\n", "192824 Washington Sundar\n", "192950 S Nadeem\n", "193011 S Nadeem\n", "Name: bowler, Length: 764, dtype: object" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bowlers=df[df[\"noball_runs\"]!=0].bowler #list of all bowlers who have bowled a no-ball\n", "bowlers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Counting the total number of no-balls bowled by the bowlers**" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name\n", "A Ashish Reddy 2\n", "A Choudhary 1\n", "A Kumble 5\n", "A Mishra 21\n", "A Mithun 9\n", " ..\n", "Y Nagar 4\n", "YA Abdulla 1\n", "YS Chahal 8\n", "Yuvraj Singh 1\n", "Z Khan 2\n", "Length: 204, dtype: int64" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2 = pd.DataFrame({'Name' : bowlers}) \n", "\n", "# counting the duplicates \n", "bowler_names = df2.pivot_table(index = ['Name'], aggfunc ='size') \n", "\n", "# displaying the duplicate Series \n", "bowler_names" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Result: the bowler who has bowled the max number of no-balls**" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name\n", "JJ Bumrah 23\n", "S Sreesanth 23\n", "dtype: int64" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bowler_names[bowler_names==max(bowler_names)]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name\n", "JJ Bumrah 23\n", "S Sreesanth 23\n", "A Mishra 21\n", "I Sharma 21\n", "UT Yadav 19\n", "SL Malinga 18\n", "AB Dinda 14\n", "SR Watson 13\n", "B Lee 13\n", "JA Morkel 13\n", "dtype: int64" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Top 10 bowlers who have bowled Most number of no-balls\n", "\n", "top_10=bowler_names.sort_values(ascending=False)[:10]\n", "top_10" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Text(0.5, 1.0, 'Top 10 bowlers to have bowled Most no. of No-Balls'),\n", " Text(0.5, 0, 'Number of no-balls')]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot1=sns.barplot(x=top_10,y=top_10.index)\n", "plot1.set(title=\"Top 10 bowlers to have bowled Most no. of No-Balls\",xlabel=\"Number of no-balls\")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "#all more than 1 runs scored on no-balls\n", "runs=df[(df[\"noball_runs\"]!=0) & (df[\"noball_runs\"]!=1)].noball_runs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Calculating the frequency of extra-runs scored on no-balls**" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "runs_scored\n", "2 23\n", "3 6\n", "5 14\n", "7 4\n", "dtype: int64" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df3=pd.DataFrame({\"runs_scored\" : runs})\n", "\n", "no_ball_runs = df3.pivot_table(index = [\"runs_scored\"], aggfunc = 'size')\n", "no_ball_runs\n", "#NO-sixes were scored on a No-Ball" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Text(0.5, 1.0, 'Runs scored on No-Balls'), Text(0, 0.5, 'frequency')]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot2=sns.barplot(x=[\"Singles\",\"Doubles\",\"Fours\",\"Sixes\"],y=no_ball_runs)\n", "plot2.set(title=\"Runs scored on No-Balls\",ylabel=\"frequency\")\n", "\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "# plot2.figure.savefig(\"ss7.png\")" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# plot1.figure.savefig(\"ss8.png\")" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "30510 5\n", "42590 5\n", "47878 5\n", "54477 5\n", "134929 5\n", "142424 5\n", "179230 5\n", "179584 7\n", "179907 7\n", "179908 7\n", "182284 5\n", "183483 7\n", "184304 5\n", "185608 5\n", "186784 5\n", "186787 5\n", "190972 5\n", "192950 5\n", "Name: noball_runs, dtype: int64" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Number of Boundaries in No Balls\n", "boundaries = df[df[\"noball_runs\"]>3].noball_runs\n", "boundaries" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "18" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Total Number of Boundaries in No Balls\n", "boundaries_on_no_balls=len(boundaries)\n", "boundaries_on_no_balls" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "764" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Total number of No Balls\n", "noballs = df[df[\"noball_runs\"]!=0].noball_runs\n", "total_no_balls=len(noballs)\n", "total_no_balls" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2.356020942408377" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Percentage of Boundaries in No Balls\n", "percentage_of_boundaries = (boundaries_on_no_balls/total_no_balls)*100\n", "percentage_of_boundaries" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }