Spaces:
Running
Running
anshumanSingh-tech commited on
Commit ·
fad7dff
0
Parent(s):
IPL Analytics Platform — complete with 2025/2026 data
Browse files- .gitattributes +4 -0
- .gitignore +29 -0
- dashboard/app.py +58 -0
- dashboard/assets/style.css +89 -0
- dashboard/callbacks.py +686 -0
- dashboard/layout.py +416 -0
- data/processed/batting_features.csv +461 -0
- data/processed/bowling_features.csv +403 -0
- data/processed/charts/01_wins_per_season.html +7 -0
- data/processed/charts/02_venue_heatmap.html +7 -0
- data/processed/charts/03_toss_impact.html +7 -0
- data/processed/charts/04_batting_scatter.html +7 -0
- data/processed/charts/05_bowling_phase.html +7 -0
- data/processed/charts/06_head_to_head.html +7 -0
- data/processed/charts/07_runs_per_over.html +7 -0
- data/processed/charts/08_dismissal_types.html +7 -0
- data/processed/deliveries_clean.csv +3 -0
- data/processed/ipl.db +3 -0
- data/processed/match_summary.csv +0 -0
- data/processed/matches_clean.csv +0 -0
- data/processed/models/auction_features.json +1 -0
- data/processed/models/auction_model.pkl +3 -0
- data/processed/models/player_valuations.csv +629 -0
- data/processed/models/shap_auction_beeswarm.png +3 -0
- data/processed/models/shap_win_beeswarm.png +3 -0
- data/processed/models/win_prob_dataset.csv +0 -0
- data/processed/models/win_prob_features.json +1 -0
- data/processed/models/win_prob_model.pkl +3 -0
- data/processed/models/win_prob_model_uncalibrated.pkl +3 -0
- data/processed/sanity_check.png +3 -0
- data/processed/team_season_stats.csv +167 -0
- data/processed/win_prob_features.csv +0 -0
- notebooks/01_setup_and_inspection.ipynb +475 -0
- notebooks/02_cleaning_and_features.ipynb +503 -0
- notebooks/03_eda_visualisations.ipynb +0 -0
- notebooks/04_ml_models.ipynb +0 -0
- render.yaml +6 -0
- requirements.txt +14 -0
- src/__init__.py +1 -0
- src/clean.py +187 -0
- src/diagnose_cricsheet.py +24 -0
- src/features.py +159 -0
- src/fix_raw_ids.py +99 -0
- src/models.py +240 -0
- src/update_dataset.py +399 -0
- waitress_server.py +15 -0
.gitattributes
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
data/processed/deliveries_clean.csv filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
data/processed/ipl.db filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.png filter=lfs diff=lfs merge=lfs -text
|
.gitignore
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Raw data — too large for GitHub
|
| 2 |
+
data/raw/
|
| 3 |
+
|
| 4 |
+
# Virtual environment
|
| 5 |
+
venv/
|
| 6 |
+
.venv/
|
| 7 |
+
|
| 8 |
+
# Python cache
|
| 9 |
+
__pycache__/
|
| 10 |
+
*.pyc
|
| 11 |
+
*.pyo
|
| 12 |
+
.ipynb_checkpoints/
|
| 13 |
+
|
| 14 |
+
# VS Code
|
| 15 |
+
.vscode/
|
| 16 |
+
|
| 17 |
+
# Jupyter
|
| 18 |
+
.ipynb_checkpoints/
|
| 19 |
+
|
| 20 |
+
# OS
|
| 21 |
+
.DS_Store
|
| 22 |
+
Thumbs.db
|
| 23 |
+
|
| 24 |
+
# Logs
|
| 25 |
+
*.log
|
| 26 |
+
|
| 27 |
+
# Keep processed data and models — needed for deployment
|
| 28 |
+
!data/processed/
|
| 29 |
+
!data/processed/models/
|
dashboard/app.py
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# dashboard/app.py
|
| 2 |
+
import sys
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
|
| 5 |
+
ROOT = Path(__file__).parent.parent
|
| 6 |
+
DASHBOARD = Path(__file__).parent
|
| 7 |
+
sys.path.insert(0, str(ROOT))
|
| 8 |
+
sys.path.insert(0, str(DASHBOARD))
|
| 9 |
+
|
| 10 |
+
import dash
|
| 11 |
+
from dash import Input, Output, html, dcc
|
| 12 |
+
import dash_bootstrap_components as dbc
|
| 13 |
+
|
| 14 |
+
from layout import (make_navbar,
|
| 15 |
+
layout_team_stats,
|
| 16 |
+
layout_player_explorer,
|
| 17 |
+
layout_win_predictor,
|
| 18 |
+
layout_auction_simulator)
|
| 19 |
+
from callbacks import register_callbacks
|
| 20 |
+
|
| 21 |
+
# ── Initialise app ────────────────────────────────────────────────────
|
| 22 |
+
app = dash.Dash(
|
| 23 |
+
__name__,
|
| 24 |
+
external_stylesheets=[dbc.themes.BOOTSTRAP],
|
| 25 |
+
suppress_callback_exceptions=True,
|
| 26 |
+
meta_tags=[{"name": "viewport",
|
| 27 |
+
"content": "width=device-width, initial-scale=1"}],
|
| 28 |
+
)
|
| 29 |
+
app.title = "IPL Analytics Platform"
|
| 30 |
+
server = app.server
|
| 31 |
+
|
| 32 |
+
# ── Root layout ───────────────────────────────────────────────────────
|
| 33 |
+
# dcc.Location MUST be first child — it triggers the routing callback
|
| 34 |
+
app.layout = html.Div([
|
| 35 |
+
dcc.Location(id="url", refresh=False),
|
| 36 |
+
make_navbar(),
|
| 37 |
+
html.Div(id="page-content"),
|
| 38 |
+
])
|
| 39 |
+
|
| 40 |
+
# ── Page routing callback ─────────────────────────────────────────────
|
| 41 |
+
@app.callback(
|
| 42 |
+
Output("page-content", "children"),
|
| 43 |
+
Input("url", "pathname"),
|
| 44 |
+
)
|
| 45 |
+
def render_page(pathname):
|
| 46 |
+
print(f"render_page called with pathname: {pathname}")
|
| 47 |
+
if pathname == "/players":
|
| 48 |
+
return layout_player_explorer()
|
| 49 |
+
if pathname == "/predict":
|
| 50 |
+
return layout_win_predictor()
|
| 51 |
+
if pathname == "/auction":
|
| 52 |
+
return layout_auction_simulator()
|
| 53 |
+
return layout_team_stats()
|
| 54 |
+
|
| 55 |
+
register_callbacks(app)
|
| 56 |
+
|
| 57 |
+
if __name__ == "__main__":
|
| 58 |
+
app.run(debug=True, port=8050)
|
dashboard/assets/style.css
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
body {
|
| 2 |
+
font-family: "Segoe UI", Arial, sans-serif;
|
| 3 |
+
background-color: #f8f8f8;
|
| 4 |
+
}
|
| 5 |
+
|
| 6 |
+
.metric-card {
|
| 7 |
+
background: white;
|
| 8 |
+
border-radius: 10px;
|
| 9 |
+
padding: 18px 20px;
|
| 10 |
+
border: 0.5px solid #e0e0e0;
|
| 11 |
+
text-align: center;
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
.metric-value {
|
| 15 |
+
font-size: 28px;
|
| 16 |
+
font-weight: 600;
|
| 17 |
+
color: #1a1a1a;
|
| 18 |
+
margin: 0;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
.metric-label {
|
| 22 |
+
font-size: 12px;
|
| 23 |
+
color: #888;
|
| 24 |
+
text-transform: uppercase;
|
| 25 |
+
letter-spacing: 0.05em;
|
| 26 |
+
margin: 4px 0 0 0;
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
.section-title {
|
| 30 |
+
font-size: 16px;
|
| 31 |
+
font-weight: 600;
|
| 32 |
+
color: #222;
|
| 33 |
+
margin: 24px 0 12px 0;
|
| 34 |
+
padding-bottom: 6px;
|
| 35 |
+
border-bottom: 2px solid #7F77DD;
|
| 36 |
+
display: inline-block;
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
.insight-box {
|
| 40 |
+
background: #E1F5EE;
|
| 41 |
+
border-left: 3px solid #1D9E75;
|
| 42 |
+
border-radius: 0 8px 8px 0;
|
| 43 |
+
padding: 10px 16px;
|
| 44 |
+
font-size: 13px;
|
| 45 |
+
color: #085041;
|
| 46 |
+
margin: 12px 0 20px 0;
|
| 47 |
+
line-height: 1.6;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
.page-header {
|
| 51 |
+
background: white;
|
| 52 |
+
border-bottom: 0.5px solid #e8e8e8;
|
| 53 |
+
padding: 16px 28px;
|
| 54 |
+
margin-bottom: 24px;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
.page-title {
|
| 58 |
+
font-size: 22px;
|
| 59 |
+
font-weight: 600;
|
| 60 |
+
color: #1a1a1a;
|
| 61 |
+
margin: 0;
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
.page-subtitle {
|
| 65 |
+
font-size: 13px;
|
| 66 |
+
color: #888;
|
| 67 |
+
margin: 3px 0 0 0;
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
.prediction-result {
|
| 71 |
+
background: white;
|
| 72 |
+
border-radius: 12px;
|
| 73 |
+
padding: 24px;
|
| 74 |
+
border: 0.5px solid #e0e0e0;
|
| 75 |
+
text-align: center;
|
| 76 |
+
margin-top: 16px;
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
.win-team {
|
| 80 |
+
font-size: 26px;
|
| 81 |
+
font-weight: 700;
|
| 82 |
+
color: #085041;
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
.win-prob {
|
| 86 |
+
font-size: 44px;
|
| 87 |
+
font-weight: 700;
|
| 88 |
+
color: #1D9E75;
|
| 89 |
+
}
|
dashboard/callbacks.py
ADDED
|
@@ -0,0 +1,686 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from dash import Input, Output, State, callback, no_update, dash_table
|
| 2 |
+
import pandas as pd
|
| 3 |
+
import numpy as np
|
| 4 |
+
import plotly.express as px
|
| 5 |
+
import plotly.graph_objects as go
|
| 6 |
+
from plotly.subplots import make_subplots
|
| 7 |
+
from dash import html
|
| 8 |
+
import dash_bootstrap_components as dbc
|
| 9 |
+
from pathlib import Path
|
| 10 |
+
import sys
|
| 11 |
+
sys.path.insert(0, str(Path(__file__).parent.parent))
|
| 12 |
+
|
| 13 |
+
from src.models import predict_winner, predict_auction_value
|
| 14 |
+
|
| 15 |
+
PROCESSED = Path("E:/ipl-analytics/data/processed")
|
| 16 |
+
MODELS = Path("E:/ipl-analytics/data/processed/models")
|
| 17 |
+
|
| 18 |
+
matches = pd.read_csv(PROCESSED / "matches_clean.csv", parse_dates=["date"])
|
| 19 |
+
batting = pd.read_csv(PROCESSED / "batting_features.csv")
|
| 20 |
+
bowling = pd.read_csv(PROCESSED / "bowling_features.csv")
|
| 21 |
+
deliveries = pd.read_csv(PROCESSED / "deliveries_clean.csv", low_memory=False)
|
| 22 |
+
valuations = pd.read_csv(MODELS / "player_valuations.csv")
|
| 23 |
+
summary = pd.read_csv(PROCESSED / "match_summary.csv", parse_dates=["date"])
|
| 24 |
+
print("batting_first_won in summary:", "batting_first_won" in summary.columns)
|
| 25 |
+
print("summary shape:", summary.shape)
|
| 26 |
+
|
| 27 |
+
TEAM_COLORS = {
|
| 28 |
+
"Mumbai Indians" : "#004BA0",
|
| 29 |
+
"Chennai Super Kings" : "#F9CD05",
|
| 30 |
+
"Royal Challengers Bangalore": "#EC1C24",
|
| 31 |
+
"Kolkata Knight Riders" : "#3A225D",
|
| 32 |
+
"Sunrisers Hyderabad" : "#F7A721",
|
| 33 |
+
"Delhi Capitals" : "#0078BC",
|
| 34 |
+
"Punjab Kings" : "#ED1B24",
|
| 35 |
+
"Rajasthan Royals" : "#254AA5",
|
| 36 |
+
}
|
| 37 |
+
DEFAULT_C = "#7F77DD"
|
| 38 |
+
|
| 39 |
+
def tc(team): return TEAM_COLORS.get(team, DEFAULT_C)
|
| 40 |
+
|
| 41 |
+
CHART_LAYOUT = dict(
|
| 42 |
+
plot_bgcolor="white",
|
| 43 |
+
paper_bgcolor="white",
|
| 44 |
+
font_family="Segoe UI, Arial",
|
| 45 |
+
margin=dict(t=40, b=40, l=40, r=20),
|
| 46 |
+
)
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
def register_callbacks(app):
|
| 51 |
+
|
| 52 |
+
@app.callback(
|
| 53 |
+
Output("team-metric-cards", "children"),
|
| 54 |
+
Output("wins-per-season-chart","figure"),
|
| 55 |
+
Output("win-pct-chart", "figure"),
|
| 56 |
+
Output("toss-chart", "figure"),
|
| 57 |
+
Output("runs-per-over-chart", "figure"),
|
| 58 |
+
Input("team-filter", "value"),
|
| 59 |
+
Input("season-range", "value"),
|
| 60 |
+
)
|
| 61 |
+
def update_team_stats(selected_teams, season_range):
|
| 62 |
+
|
| 63 |
+
print(f"update_team_stats called")
|
| 64 |
+
print(f" selected_teams : {selected_teams}")
|
| 65 |
+
print(f" season_range : {season_range}")
|
| 66 |
+
print(f" matches shape : {matches.shape}")
|
| 67 |
+
|
| 68 |
+
if not selected_teams:
|
| 69 |
+
selected_teams = ["Mumbai Indians", "Chennai Super Kings"]
|
| 70 |
+
|
| 71 |
+
s_min, s_max = season_range
|
| 72 |
+
df = matches[
|
| 73 |
+
(matches["season"] >= s_min) &
|
| 74 |
+
(matches["season"] <= s_max)
|
| 75 |
+
].copy()
|
| 76 |
+
|
| 77 |
+
# ── Metric cards ──────────────────────────────────────────
|
| 78 |
+
total_matches = len(df)
|
| 79 |
+
total_seasons = df["season"].nunique()
|
| 80 |
+
total_sixes = int(deliveries[
|
| 81 |
+
deliveries["match_id"].isin(df["match_id"])
|
| 82 |
+
]["is_six"].sum())
|
| 83 |
+
avg_score = deliveries[
|
| 84 |
+
deliveries["match_id"].isin(df["match_id"])
|
| 85 |
+
].groupby("match_id")["total_runs"].sum().mean()
|
| 86 |
+
|
| 87 |
+
def metric_card(value, label):
|
| 88 |
+
return dbc.Col(html.Div([
|
| 89 |
+
html.P(str(value), className="metric-value"),
|
| 90 |
+
html.P(label, className="metric-label"),
|
| 91 |
+
], className="metric-card"), xs=6, md=3)
|
| 92 |
+
|
| 93 |
+
cards = [
|
| 94 |
+
metric_card(total_matches, "total matches"),
|
| 95 |
+
metric_card(total_seasons, "seasons"),
|
| 96 |
+
metric_card(f"{total_sixes:,}", "total sixes"),
|
| 97 |
+
metric_card(f"{avg_score:.0f}", "avg match score"),
|
| 98 |
+
]
|
| 99 |
+
|
| 100 |
+
# ── Wins per season ───────────────────────────────────────
|
| 101 |
+
wins = (
|
| 102 |
+
df[df["winner"].isin(selected_teams)]
|
| 103 |
+
.groupby(["season", "winner"])
|
| 104 |
+
.size()
|
| 105 |
+
.reset_index(name="wins")
|
| 106 |
+
.rename(columns={"winner": "team"})
|
| 107 |
+
)
|
| 108 |
+
fig_wins = px.bar(
|
| 109 |
+
wins, x="season", y="wins", color="team",
|
| 110 |
+
barmode="group",
|
| 111 |
+
color_discrete_map={t: tc(t) for t in wins["team"].unique()},
|
| 112 |
+
labels={"wins": "wins", "season": "season"},
|
| 113 |
+
)
|
| 114 |
+
fig_wins.update_layout(**CHART_LAYOUT)
|
| 115 |
+
fig_wins.update_layout(
|
| 116 |
+
xaxis=dict(tickmode="linear", dtick=1, tickangle=-45),
|
| 117 |
+
legend=dict(orientation="h", y=-0.25, font_size=11),
|
| 118 |
+
)
|
| 119 |
+
fig_wins.update_traces(marker_line_width=0)
|
| 120 |
+
|
| 121 |
+
# ── Win percentage ────────────────────────────────────────
|
| 122 |
+
records = []
|
| 123 |
+
for team in selected_teams:
|
| 124 |
+
played = df[(df["team1"] == team) | (df["team2"] == team)]
|
| 125 |
+
won = df[df["winner"] == team]
|
| 126 |
+
if len(played) > 0:
|
| 127 |
+
records.append({
|
| 128 |
+
"team" : team,
|
| 129 |
+
"win_pct": round(len(won) / len(played) * 100, 1),
|
| 130 |
+
"played" : len(played),
|
| 131 |
+
})
|
| 132 |
+
wp_df = pd.DataFrame(records).sort_values("win_pct", ascending=True)
|
| 133 |
+
fig_wp = px.bar(
|
| 134 |
+
wp_df, x="win_pct", y="team", orientation="h",
|
| 135 |
+
color="team",
|
| 136 |
+
color_discrete_map={t: tc(t) for t in wp_df["team"].unique()},
|
| 137 |
+
labels={"win_pct": "win %", "team": ""},
|
| 138 |
+
text="win_pct",
|
| 139 |
+
)
|
| 140 |
+
fig_wp.update_traces(texttemplate="%{text:.1f}%", textposition="outside",
|
| 141 |
+
marker_line_width=0)
|
| 142 |
+
fig_wp.update_layout(**CHART_LAYOUT)
|
| 143 |
+
fig_wp.update_layout(showlegend=False, xaxis=dict(range=[0, 100]))
|
| 144 |
+
|
| 145 |
+
# ── Toss decisions ────────────────────────────────────────
|
| 146 |
+
toss_df = (
|
| 147 |
+
df[df["toss_winner"].isin(selected_teams)]
|
| 148 |
+
.groupby(["toss_winner", "toss_decision"])
|
| 149 |
+
.size()
|
| 150 |
+
.reset_index(name="count")
|
| 151 |
+
.rename(columns={"toss_winner": "team"})
|
| 152 |
+
)
|
| 153 |
+
fig_toss = px.bar(
|
| 154 |
+
toss_df, x="team", y="count", color="toss_decision",
|
| 155 |
+
barmode="group",
|
| 156 |
+
color_discrete_map={"bat": "#7F77DD", "field": "#1D9E75"},
|
| 157 |
+
labels={"count": "times chosen", "toss_decision": "decision"},
|
| 158 |
+
)
|
| 159 |
+
fig_toss.update_layout(**CHART_LAYOUT)
|
| 160 |
+
fig_toss.update_layout(
|
| 161 |
+
xaxis_tickangle=-30,
|
| 162 |
+
legend=dict(orientation="h", y=-0.3, font_size=11),
|
| 163 |
+
)
|
| 164 |
+
fig_toss.update_traces(marker_line_width=0)
|
| 165 |
+
|
| 166 |
+
# ── Runs per over ─────────────────────────────────────────
|
| 167 |
+
over_avg = (
|
| 168 |
+
deliveries[deliveries["match_id"].isin(df["match_id"])]
|
| 169 |
+
.groupby("over")["total_runs"]
|
| 170 |
+
.mean()
|
| 171 |
+
.round(2)
|
| 172 |
+
.reset_index()
|
| 173 |
+
)
|
| 174 |
+
PHASE_BG = [
|
| 175 |
+
dict(type="rect", xref="x", yref="paper",
|
| 176 |
+
x0=0.5, x1=6.5, y0=0, y1=1,
|
| 177 |
+
fillcolor="#EEEDFE", opacity=0.3, layer="below", line_width=0),
|
| 178 |
+
dict(type="rect", xref="x", yref="paper",
|
| 179 |
+
x0=6.5, x1=15.5, y0=0, y1=1,
|
| 180 |
+
fillcolor="#E1F5EE", opacity=0.3, layer="below", line_width=0),
|
| 181 |
+
dict(type="rect", xref="x", yref="paper",
|
| 182 |
+
x0=15.5, x1=20.5, y0=0, y1=1,
|
| 183 |
+
fillcolor="#FAECE7", opacity=0.3, layer="below", line_width=0),
|
| 184 |
+
]
|
| 185 |
+
fig_rpo = go.Figure()
|
| 186 |
+
fig_rpo.add_trace(go.Bar(
|
| 187 |
+
x=over_avg["over"], y=over_avg["total_runs"],
|
| 188 |
+
marker_color="#B5D4F4", name="avg runs",
|
| 189 |
+
))
|
| 190 |
+
for label, xpos in [("Powerplay", 3.5), ("Middle", 11), ("Death", 18)]:
|
| 191 |
+
fig_rpo.add_annotation(
|
| 192 |
+
x=xpos, y=over_avg["total_runs"].max() * 1.08,
|
| 193 |
+
text=label, showarrow=False,
|
| 194 |
+
font=dict(size=10, color="#444"),
|
| 195 |
+
)
|
| 196 |
+
fig_rpo.update_layout(
|
| 197 |
+
**CHART_LAYOUT,
|
| 198 |
+
shapes=PHASE_BG,
|
| 199 |
+
xaxis=dict(title="over", tickmode="linear", dtick=1),
|
| 200 |
+
yaxis_title="avg runs/over",
|
| 201 |
+
showlegend=False,
|
| 202 |
+
)
|
| 203 |
+
|
| 204 |
+
return cards, fig_wins, fig_wp, fig_toss, fig_rpo
|
| 205 |
+
|
| 206 |
+
|
| 207 |
+
# ════════════════════════════════════════════════════════════════
|
| 208 |
+
# PAGE 2 CALLBACKS — PLAYER EXPLORER
|
| 209 |
+
# ════════════════════════════════════════════════════════════════
|
| 210 |
+
|
| 211 |
+
@app.callback(
|
| 212 |
+
Output("batting-metric-cards", "children"),
|
| 213 |
+
Output("batting-scatter-chart","figure"),
|
| 214 |
+
Output("phase-sr-chart", "figure"),
|
| 215 |
+
Input("batsman-search", "value"),
|
| 216 |
+
Input("batsman-compare", "value"),
|
| 217 |
+
)
|
| 218 |
+
def update_batting(player1, player2):
|
| 219 |
+
players = [p for p in [player1, player2] if p]
|
| 220 |
+
|
| 221 |
+
# ── Metric cards for primary player ───────────────────────
|
| 222 |
+
p1 = batting[batting["batter"] == player1].iloc[0]
|
| 223 |
+
|
| 224 |
+
def bat_card(value, label):
|
| 225 |
+
return dbc.Col(html.Div([
|
| 226 |
+
html.P(str(value), className="metric-value"),
|
| 227 |
+
html.P(label, className="metric-label"),
|
| 228 |
+
], className="metric-card"), xs=6, md=2)
|
| 229 |
+
|
| 230 |
+
cards = [
|
| 231 |
+
bat_card(f"{p1['total_runs']:,.0f}", "career runs"),
|
| 232 |
+
bat_card(f"{p1['batting_average']:.1f}","average"),
|
| 233 |
+
bat_card(f"{p1['strike_rate']:.1f}", "strike rate"),
|
| 234 |
+
bat_card(int(p1["hundreds"]), "100s"),
|
| 235 |
+
bat_card(int(p1["fifties"]), "50s"),
|
| 236 |
+
bat_card(f"{p1['boundary_rate']:.1f}%", "boundary %"),
|
| 237 |
+
]
|
| 238 |
+
|
| 239 |
+
# ── Batting scatter: all players, highlight selected ──────
|
| 240 |
+
plot_df = batting[batting["balls_faced"] >= 200].copy()
|
| 241 |
+
plot_df["highlight"] = plot_df["batter"].apply(
|
| 242 |
+
lambda x: x if x in players else "others"
|
| 243 |
+
)
|
| 244 |
+
plot_df = plot_df.sort_values(
|
| 245 |
+
"highlight",
|
| 246 |
+
key=lambda s: s.map({"others": 0}).fillna(1)
|
| 247 |
+
)
|
| 248 |
+
color_map = {"others": "#D3D1C7"}
|
| 249 |
+
colors = ["#7F77DD", "#D85A30"]
|
| 250 |
+
for i, p in enumerate(players):
|
| 251 |
+
color_map[p] = colors[i % len(colors)]
|
| 252 |
+
|
| 253 |
+
fig_scatter = px.scatter(
|
| 254 |
+
plot_df,
|
| 255 |
+
x="batting_average", y="strike_rate",
|
| 256 |
+
color="highlight",
|
| 257 |
+
color_discrete_map=color_map,
|
| 258 |
+
size="total_runs", size_max=22,
|
| 259 |
+
hover_name="batter",
|
| 260 |
+
hover_data={"total_runs": True, "highlight": False},
|
| 261 |
+
labels={
|
| 262 |
+
"batting_average": "batting average",
|
| 263 |
+
"strike_rate" : "strike rate",
|
| 264 |
+
"highlight" : "player",
|
| 265 |
+
},
|
| 266 |
+
)
|
| 267 |
+
fig_scatter.update_layout(**CHART_LAYOUT)
|
| 268 |
+
fig_scatter.update_layout(
|
| 269 |
+
legend=dict(orientation="h", y=-0.2, font_size=11)
|
| 270 |
+
)
|
| 271 |
+
fig_scatter.update_traces(marker_line_width=0.5,
|
| 272 |
+
marker_line_color="white")
|
| 273 |
+
|
| 274 |
+
# ── Phase SR comparison ────────────────────────────────────
|
| 275 |
+
phase_data = []
|
| 276 |
+
for p in players:
|
| 277 |
+
row = batting[batting["batter"] == p]
|
| 278 |
+
if row.empty:
|
| 279 |
+
continue
|
| 280 |
+
row = row.iloc[0]
|
| 281 |
+
for phase in ["powerplay", "middle", "death"]:
|
| 282 |
+
col = f"sr_{phase}"
|
| 283 |
+
if col in row and pd.notna(row[col]):
|
| 284 |
+
phase_data.append({
|
| 285 |
+
"player": p,
|
| 286 |
+
"phase" : phase.capitalize(),
|
| 287 |
+
"SR" : round(row[col], 1),
|
| 288 |
+
})
|
| 289 |
+
|
| 290 |
+
if phase_data:
|
| 291 |
+
ph_df = pd.DataFrame(phase_data)
|
| 292 |
+
fig_phase = px.bar(
|
| 293 |
+
ph_df, x="phase", y="SR", color="player",
|
| 294 |
+
barmode="group",
|
| 295 |
+
color_discrete_map={players[0]: "#7F77DD",
|
| 296 |
+
players[1] if len(players) > 1 else "": "#D85A30"},
|
| 297 |
+
labels={"SR": "strike rate", "phase": "match phase"},
|
| 298 |
+
text="SR",
|
| 299 |
+
)
|
| 300 |
+
fig_phase.update_traces(texttemplate="%{text:.1f}", textposition="outside",
|
| 301 |
+
marker_line_width=0)
|
| 302 |
+
fig_phase.update_layout(**CHART_LAYOUT)
|
| 303 |
+
fig_phase.update_layout(
|
| 304 |
+
legend=dict(orientation="h", y=-0.2, font_size=11)
|
| 305 |
+
)
|
| 306 |
+
else:
|
| 307 |
+
fig_phase = go.Figure()
|
| 308 |
+
fig_phase.update_layout(**CHART_LAYOUT)
|
| 309 |
+
|
| 310 |
+
return cards, fig_scatter, fig_phase
|
| 311 |
+
|
| 312 |
+
|
| 313 |
+
@app.callback(
|
| 314 |
+
Output("bowling-metric-cards","children"),
|
| 315 |
+
Output("bowling-phase-chart", "figure"),
|
| 316 |
+
Input("bowler-search", "value"),
|
| 317 |
+
)
|
| 318 |
+
def update_bowling(player):
|
| 319 |
+
row = bowling[bowling["bowler"] == player]
|
| 320 |
+
if row.empty:
|
| 321 |
+
return [], go.Figure()
|
| 322 |
+
row = row.iloc[0]
|
| 323 |
+
|
| 324 |
+
def bowl_card(value, label):
|
| 325 |
+
return dbc.Col(html.Div([
|
| 326 |
+
html.P(str(value), className="metric-value"),
|
| 327 |
+
html.P(label, className="metric-label"),
|
| 328 |
+
], className="metric-card"), xs=6, md=2)
|
| 329 |
+
|
| 330 |
+
cards = [
|
| 331 |
+
bowl_card(int(row["wickets"]), "career wickets"),
|
| 332 |
+
bowl_card(f"{row['economy_rate']:.2f}", "economy rate"),
|
| 333 |
+
bowl_card(f"{row['bowling_average']:.1f}", "bowling avg"),
|
| 334 |
+
bowl_card(f"{row['bowling_sr']:.1f}", "bowling SR"),
|
| 335 |
+
bowl_card(f"{row['dot_ball_pct']:.1f}%", "dot ball %"),
|
| 336 |
+
bowl_card(int(row["three_wkt_hauls"]) if "three_wkt_hauls" in row else "—",
|
| 337 |
+
"3-wkt hauls"),
|
| 338 |
+
]
|
| 339 |
+
|
| 340 |
+
phases = ["powerplay", "middle", "death"]
|
| 341 |
+
econ_vals = [row.get(f"economy_{p}", np.nan) for p in phases]
|
| 342 |
+
|
| 343 |
+
fig = go.Figure(go.Bar(
|
| 344 |
+
x=[p.capitalize() for p in phases],
|
| 345 |
+
y=[round(e, 2) if pd.notna(e) else 0 for e in econ_vals],
|
| 346 |
+
marker_color=["#7F77DD", "#1D9E75", "#D85A30"],
|
| 347 |
+
text=[f"{e:.2f}" if pd.notna(e) else "N/A" for e in econ_vals],
|
| 348 |
+
textposition="outside",
|
| 349 |
+
))
|
| 350 |
+
fig.add_hline(y=8.0, line_dash="dot", line_color="#888",
|
| 351 |
+
annotation_text="8.0 benchmark")
|
| 352 |
+
fig.update_layout(
|
| 353 |
+
**CHART_LAYOUT,
|
| 354 |
+
title=f"{player} — economy by phase",
|
| 355 |
+
yaxis_title="economy rate",
|
| 356 |
+
xaxis_title="match phase",
|
| 357 |
+
showlegend=False,
|
| 358 |
+
)
|
| 359 |
+
|
| 360 |
+
return cards, fig
|
| 361 |
+
|
| 362 |
+
|
| 363 |
+
@app.callback(
|
| 364 |
+
Output("player-table", "data"),
|
| 365 |
+
Output("player-table", "columns"),
|
| 366 |
+
Input("leaderboard-type", "value"),
|
| 367 |
+
)
|
| 368 |
+
def update_player_table(table_type):
|
| 369 |
+
if table_type == "batting":
|
| 370 |
+
cols = ["batter", "total_runs", "batting_average",
|
| 371 |
+
"strike_rate", "hundreds", "fifties",
|
| 372 |
+
"boundary_rate", "matches_batted"]
|
| 373 |
+
df = batting[cols].copy().rename(columns={"batter": "player"})
|
| 374 |
+
df = df.sort_values("total_runs", ascending=False).round(2)
|
| 375 |
+
else:
|
| 376 |
+
cols = ["bowler", "wickets", "economy_rate",
|
| 377 |
+
"bowling_average", "bowling_sr",
|
| 378 |
+
"dot_ball_pct", "matches_bowled"]
|
| 379 |
+
df = bowling[cols].copy().rename(columns={"bowler": "player"})
|
| 380 |
+
df = df.sort_values("wickets", ascending=False).round(2)
|
| 381 |
+
|
| 382 |
+
columns = [{"name": c.replace("_", " ").title(),
|
| 383 |
+
"id": c, "type": "numeric",
|
| 384 |
+
"format": {"specifier": ",.2f"}}
|
| 385 |
+
for c in df.columns]
|
| 386 |
+
return df.to_dict("records"), columns
|
| 387 |
+
|
| 388 |
+
|
| 389 |
+
# ════════════════════════════════════════════════════════════════
|
| 390 |
+
# PAGE 3 CALLBACKS — WIN PREDICTOR
|
| 391 |
+
# ════════════════════════════════════════════════════════════════
|
| 392 |
+
|
| 393 |
+
@app.callback(
|
| 394 |
+
Output("prediction-output", "children"),
|
| 395 |
+
Output("win-prob-gauge", "figure"),
|
| 396 |
+
Output("historical-h2h", "children"),
|
| 397 |
+
Input("predict-btn", "n_clicks"),
|
| 398 |
+
State("pred-team1", "value"),
|
| 399 |
+
State("pred-team2", "value"),
|
| 400 |
+
State("pred-venue", "value"),
|
| 401 |
+
State("pred-toss-winner", "value"),
|
| 402 |
+
State("pred-toss-decision", "value"),
|
| 403 |
+
prevent_initial_call=True,
|
| 404 |
+
)
|
| 405 |
+
def run_prediction(n, team1, team2, venue, toss_winner, toss_decision):
|
| 406 |
+
result = predict_winner(
|
| 407 |
+
team1=team1, team2=team2, venue=venue,
|
| 408 |
+
toss_winner=toss_winner, toss_decision=toss_decision,
|
| 409 |
+
)
|
| 410 |
+
|
| 411 |
+
team_A = result["toss_winner"]
|
| 412 |
+
team_B = result["other_team"]
|
| 413 |
+
p_toss = result["toss_winner_prob"]
|
| 414 |
+
p_other = result["other_team_prob"]
|
| 415 |
+
winner = result["predicted_winner"]
|
| 416 |
+
|
| 417 |
+
# ── Result card ───────────────────────────────────────────
|
| 418 |
+
result_card = html.Div([
|
| 419 |
+
html.P("Predicted winner", style={"color": "#888", "fontSize": "13px",
|
| 420 |
+
"marginBottom": "4px"}),
|
| 421 |
+
html.P(winner, className="win-team"),
|
| 422 |
+
html.Div([
|
| 423 |
+
html.Span(f"{team_A}: ", style={"fontWeight": 600}),
|
| 424 |
+
html.Span(f"{p_toss}%",
|
| 425 |
+
style={"color": tc(team1), "fontWeight": 700,
|
| 426 |
+
"fontSize": "18px"}),
|
| 427 |
+
html.Span(" vs ", style={"color": "#ccc"}),
|
| 428 |
+
html.Span(f"{team_B}: ", style={"fontWeight": 600}),
|
| 429 |
+
html.Span(f"{p_other}%",
|
| 430 |
+
style={"color": tc(team_B), "fontWeight": 700,
|
| 431 |
+
"fontSize": "18px"}),
|
| 432 |
+
], style={"marginTop": "8px"}),
|
| 433 |
+
], className="prediction-result")
|
| 434 |
+
|
| 435 |
+
# ── Gauge chart ───────────────────────────────────────────
|
| 436 |
+
fig_gauge = go.Figure(go.Indicator(
|
| 437 |
+
mode="gauge+number",
|
| 438 |
+
value=p_toss,
|
| 439 |
+
number={"suffix": "%", "font": {"size": 36, "color": tc(team_A)}},
|
| 440 |
+
title={"text": f"{team_A} win probability", "font": {"size": 13}},
|
| 441 |
+
gauge={
|
| 442 |
+
"axis" : {"range": [0, 100]},
|
| 443 |
+
"bar" : {"color": tc(team_A)},
|
| 444 |
+
"steps" : [
|
| 445 |
+
{"range": [0, 40], "color": "#FCEBEB"},
|
| 446 |
+
{"range": [40, 60], "color": "#F1EFE8"},
|
| 447 |
+
{"range": [60, 100],"color": "#E1F5EE"},
|
| 448 |
+
],
|
| 449 |
+
"threshold" : {
|
| 450 |
+
"line" : {"color": "#1D9E75", "width": 3},
|
| 451 |
+
"thickness": 0.75,
|
| 452 |
+
"value": 50,
|
| 453 |
+
},
|
| 454 |
+
},
|
| 455 |
+
))
|
| 456 |
+
fig_gauge.update_layout(
|
| 457 |
+
paper_bgcolor="white",
|
| 458 |
+
font_family="Segoe UI, Arial",
|
| 459 |
+
margin=dict(t=60, b=20, l=30, r=30),
|
| 460 |
+
)
|
| 461 |
+
|
| 462 |
+
# ── Historical H2H ────────────────────────────────────────
|
| 463 |
+
h2h = matches[
|
| 464 |
+
((matches["team1"] == team_A) & (matches["team2"] == team_B)) |
|
| 465 |
+
((matches["team1"] == team_B) & (matches["team2"] == team_A))
|
| 466 |
+
]
|
| 467 |
+
h2h = h2h[h2h["winner"].isin([team_A, team_B])]
|
| 468 |
+
tA_wins = int((h2h["winner"] == team_A).sum())
|
| 469 |
+
tB_wins = int((h2h["winner"] == team_B).sum())
|
| 470 |
+
|
| 471 |
+
h2h_card = dbc.Card(dbc.CardBody([
|
| 472 |
+
html.H6("Historical head-to-head",
|
| 473 |
+
style={"fontWeight": 600, "marginBottom": "12px"}),
|
| 474 |
+
html.Div([
|
| 475 |
+
html.Div([
|
| 476 |
+
html.P(str(tA_wins), style={"fontSize": "32px",
|
| 477 |
+
"fontWeight": 700,
|
| 478 |
+
"color": tc(team_A),
|
| 479 |
+
"margin": 0}),
|
| 480 |
+
html.P(team_A, style={"fontSize": "12px", "color": "#888"}),
|
| 481 |
+
], style={"textAlign": "center", "flex": 1}),
|
| 482 |
+
html.Div([
|
| 483 |
+
html.P(f"{len(h2h)} played",
|
| 484 |
+
style={"fontSize": "13px", "color": "#aaa",
|
| 485 |
+
"margin": 0}),
|
| 486 |
+
], style={"textAlign": "center", "flex": 1,
|
| 487 |
+
"display": "flex", "alignItems": "center",
|
| 488 |
+
"justifyContent": "center"}),
|
| 489 |
+
html.Div([
|
| 490 |
+
html.P(str(tB_wins), style={"fontSize": "32px",
|
| 491 |
+
"fontWeight": 700,
|
| 492 |
+
"color": tc(team_B),
|
| 493 |
+
"margin": 0}),
|
| 494 |
+
html.P(team_B, style={"fontSize": "12px", "color": "#888"}),
|
| 495 |
+
], style={"textAlign": "center", "flex": 1}),
|
| 496 |
+
], style={"display": "flex", "marginTop": "8px"}),
|
| 497 |
+
]), style={"border": "0.5px solid #e0e0e0", "marginTop": "16px"})
|
| 498 |
+
|
| 499 |
+
venue_h2h = matches[
|
| 500 |
+
(
|
| 501 |
+
((matches["team1"] == team_A) & (matches["team2"] == team_B)) |
|
| 502 |
+
((matches["team1"] == team_B) & (matches["team2"] == team_A))
|
| 503 |
+
) &
|
| 504 |
+
(matches["venue"] == venue)
|
| 505 |
+
]
|
| 506 |
+
venue_h2h = venue_h2h[venue_h2h["winner"].isin([team_A, team_B])]
|
| 507 |
+
vA_wins = int((venue_h2h["winner"] == team_A).sum())
|
| 508 |
+
vB_wins = int((venue_h2h["winner"] == team_B).sum())
|
| 509 |
+
total_venue = len(venue_h2h)
|
| 510 |
+
|
| 511 |
+
venue_card = dbc.Card(dbc.CardBody([
|
| 512 |
+
html.H6(f"Head-to-Head at {venue.split(',')[0]}",
|
| 513 |
+
style={"fontWeight": 600, "marginBottom": "12px"}),
|
| 514 |
+
html.Div([
|
| 515 |
+
html.Div([
|
| 516 |
+
html.P(str(vA_wins),
|
| 517 |
+
style={"fontSize": "28px", "fontWeight": 700,
|
| 518 |
+
"color": tc(team_A), "margin": 0}),
|
| 519 |
+
html.P(team_A, style={"fontSize": "11px", "color": "#888" }),
|
| 520 |
+
], style={"textAlign": "center", "flex": 1}),
|
| 521 |
+
html.Div([
|
| 522 |
+
html.P(f"{total_venue} played" if total_venue > 0
|
| 523 |
+
else "No matches\nat this value",
|
| 524 |
+
style={"fontSize": "12px", "color": "#aaa",
|
| 525 |
+
"margin": 0, "textAlign": "center"}),
|
| 526 |
+
], style={"flex": 1, "display": "flex",
|
| 527 |
+
"alignItems": "center", "justifyContent": "center"}),
|
| 528 |
+
html.Div([
|
| 529 |
+
html.P(str(vB_wins),
|
| 530 |
+
style={"fontSize": "28px", "fontWeight": 700,
|
| 531 |
+
"color": tc(team_B), "margin": 0}),
|
| 532 |
+
html.P(team_B, style={"fontSize": "11px", "color": "#888"}),
|
| 533 |
+
], style={"textAlign": "center", "flex": 1}),
|
| 534 |
+
], style={"display": "flex"}),
|
| 535 |
+
html.P(
|
| 536 |
+
"No historical data at this venue - result based on overall form only."
|
| 537 |
+
if total_venue == 0 else
|
| 538 |
+
f"Sample size: {total_venue} matches. "
|
| 539 |
+
+ ("Reliable Signal." if total_venue >= 10 else "Small sample - treat with caution"),
|
| 540 |
+
style={"fontSize": "11px", "color": "#aaa",
|
| 541 |
+
"marginTop": "8px", "marginBottom": 0}
|
| 542 |
+
),
|
| 543 |
+
]), style={"border": "0.5px solid #e0e0e0", "marginTop": "12px"})
|
| 544 |
+
|
| 545 |
+
return result_card, fig_gauge, html.Div([h2h_card, venue_card])
|
| 546 |
+
|
| 547 |
+
|
| 548 |
+
# ════════════════════════════════════════════════════════════════
|
| 549 |
+
# PAGE 4 CALLBACKS — AUCTION SIMULATOR
|
| 550 |
+
# ════════════════════════════════════════════════════════════════
|
| 551 |
+
|
| 552 |
+
# Slider output labels
|
| 553 |
+
SLIDER_LABEL_MAP = {
|
| 554 |
+
"sl-runs" : "sl-runs-out", "sl-avg" : "sl-avg-out",
|
| 555 |
+
"sl-sr" : "sl-sr-out", "sl-100s" : "sl-100s-out",
|
| 556 |
+
"sl-50s" : "sl-50s-out", "sl-br" : "sl-br-out",
|
| 557 |
+
"sl-pp-sr" : "sl-pp-sr-out", "sl-death-sr": "sl-death-sr-out",
|
| 558 |
+
"sl-wkts" : "sl-wkts-out", "sl-econ" : "sl-econ-out",
|
| 559 |
+
"sl-bowl-avg": "sl-bowl-avg-out", "sl-dot" : "sl-dot-out",
|
| 560 |
+
"sl-d-econ" : "sl-d-econ-out", "sl-pp-econ" : "sl-pp-econ-out",
|
| 561 |
+
"sl-mbowled" : "sl-mbowled-out",
|
| 562 |
+
}
|
| 563 |
+
|
| 564 |
+
@app.callback(
|
| 565 |
+
[Output(v, "children") for v in SLIDER_LABEL_MAP.values()] +
|
| 566 |
+
[
|
| 567 |
+
Output("auction-price-display", "children"),
|
| 568 |
+
Output("auction-gauge", "figure"),
|
| 569 |
+
Output("similar-players-table", "children"),
|
| 570 |
+
Output("valuation-chart", "figure"),
|
| 571 |
+
],
|
| 572 |
+
[Input(k, "value") for k in SLIDER_LABEL_MAP.keys()],
|
| 573 |
+
)
|
| 574 |
+
def update_auction(runs, avg, sr, h100, h50, br, pp_sr, death_sr,
|
| 575 |
+
wkts, econ, bowl_avg, dot, d_econ, pp_econ, mbowled):
|
| 576 |
+
|
| 577 |
+
labels = [runs, avg, sr, h100, h50, br, pp_sr, death_sr,
|
| 578 |
+
wkts, econ, bowl_avg, dot, d_econ, pp_econ, mbowled]
|
| 579 |
+
|
| 580 |
+
stats = {
|
| 581 |
+
"total_runs" : runs, "batting_average" : avg,
|
| 582 |
+
"strike_rate" : sr, "hundreds" : h100,
|
| 583 |
+
"fifties" : h50, "boundary_rate" : br,
|
| 584 |
+
"sr_powerplay" : pp_sr, "sr_death" : death_sr,
|
| 585 |
+
"wickets" : wkts, "economy_rate" : econ,
|
| 586 |
+
"bowling_average" : bowl_avg, "dot_ball_pct" : dot,
|
| 587 |
+
"economy_death" : d_econ, "economy_powerplay": pp_econ,
|
| 588 |
+
"matches_bowled" : mbowled, "matches_batted" : max(runs // 30, 1),
|
| 589 |
+
"bowling_sr" : 30.0,
|
| 590 |
+
}
|
| 591 |
+
result = predict_auction_value(stats)
|
| 592 |
+
price = result["predicted_price_cr"]
|
| 593 |
+
tier = result["tier"]
|
| 594 |
+
|
| 595 |
+
tier_color = {
|
| 596 |
+
"Icon (12 cr+)" : "#085041",
|
| 597 |
+
"Premium (7–12 cr)": "#1D9E75",
|
| 598 |
+
"Standard (3–7 cr)": "#7F77DD",
|
| 599 |
+
"Emerging (< 3 cr)": "#888780",
|
| 600 |
+
}.get(tier, "#888780")
|
| 601 |
+
|
| 602 |
+
price_display = html.Div([
|
| 603 |
+
html.P(f"₹ {price:.2f} Cr",
|
| 604 |
+
style={"fontSize": "42px", "fontWeight": 700,
|
| 605 |
+
"color": tier_color, "margin": 0}),
|
| 606 |
+
html.Span(tier, style={
|
| 607 |
+
"fontSize": "13px", "padding": "4px 14px",
|
| 608 |
+
"background": tier_color, "color": "white",
|
| 609 |
+
"borderRadius": "999px", "fontWeight": 500,
|
| 610 |
+
}),
|
| 611 |
+
], style={"textAlign": "center", "padding": "16px 0"})
|
| 612 |
+
|
| 613 |
+
# ── Gauge ──────────────────────────────────────────────────
|
| 614 |
+
fig_g = go.Figure(go.Indicator(
|
| 615 |
+
mode="gauge+number",
|
| 616 |
+
value=min(price, 20),
|
| 617 |
+
number={"prefix": "₹ ", "suffix": " Cr",
|
| 618 |
+
"font": {"size": 28, "color": tier_color}},
|
| 619 |
+
gauge={
|
| 620 |
+
"axis" : {"range": [0, 20],
|
| 621 |
+
"tickvals": [0, 3, 7, 12, 20],
|
| 622 |
+
"ticktext": ["0", "3cr", "7cr", "12cr", "20cr+"]},
|
| 623 |
+
"bar" : {"color": tier_color},
|
| 624 |
+
"steps": [
|
| 625 |
+
{"range": [0, 3], "color": "#F1EFE8"},
|
| 626 |
+
{"range": [3, 7], "color": "#EEEDFE"},
|
| 627 |
+
{"range": [7, 12], "color": "#E1F5EE"},
|
| 628 |
+
{"range": [12, 20], "color": "#9FE1CB"},
|
| 629 |
+
],
|
| 630 |
+
},
|
| 631 |
+
))
|
| 632 |
+
fig_g.update_layout(
|
| 633 |
+
paper_bgcolor="white",
|
| 634 |
+
font_family="Segoe UI, Arial",
|
| 635 |
+
margin=dict(t=20, b=10, l=30, r=30),
|
| 636 |
+
height=220,
|
| 637 |
+
)
|
| 638 |
+
|
| 639 |
+
# ── Similar players ────────────────────────────────────────
|
| 640 |
+
sim = valuations.copy()
|
| 641 |
+
sim = sim[
|
| 642 |
+
(sim["predicted_price_cr"] >= price * 0.75) &
|
| 643 |
+
(sim["predicted_price_cr"] <= price * 1.25)
|
| 644 |
+
].nlargest(5, "predicted_price_cr")[
|
| 645 |
+
["player", "total_runs", "wickets", "predicted_price_cr"]
|
| 646 |
+
].round(2)
|
| 647 |
+
|
| 648 |
+
sim_table = dash_table.DataTable(
|
| 649 |
+
data=sim.to_dict("records"),
|
| 650 |
+
columns=[
|
| 651 |
+
{"name": "Player", "id": "player"},
|
| 652 |
+
{"name": "Runs", "id": "total_runs"},
|
| 653 |
+
{"name": "Wickets", "id": "wickets"},
|
| 654 |
+
{"name": "Est. Price (Cr)", "id": "predicted_price_cr"},
|
| 655 |
+
],
|
| 656 |
+
style_header={"backgroundColor": "#1a1a2e", "color": "white",
|
| 657 |
+
"fontSize": "11px", "fontWeight": 600},
|
| 658 |
+
style_cell={"fontSize": "12px", "padding": "6px 10px",
|
| 659 |
+
"border": "0.5px solid #f0f0f0"},
|
| 660 |
+
style_data_conditional=[
|
| 661 |
+
{"if": {"row_index": "odd"}, "backgroundColor": "#fafafa"}
|
| 662 |
+
],
|
| 663 |
+
)
|
| 664 |
+
|
| 665 |
+
# ── Valuation leaderboard chart ────────────────────────────
|
| 666 |
+
top_v = valuations.nlargest(25, "predicted_price_cr")[
|
| 667 |
+
["player", "predicted_price_cr", "total_runs", "wickets"]
|
| 668 |
+
].sort_values("predicted_price_cr")
|
| 669 |
+
|
| 670 |
+
fig_val = px.bar(
|
| 671 |
+
top_v, x="predicted_price_cr", y="player",
|
| 672 |
+
orientation="h",
|
| 673 |
+
color="predicted_price_cr",
|
| 674 |
+
color_continuous_scale=["#EEEDFE", "#7F77DD", "#3C3489"],
|
| 675 |
+
labels={"predicted_price_cr": "est. price (₹ Cr)", "player": ""},
|
| 676 |
+
text="predicted_price_cr",
|
| 677 |
+
)
|
| 678 |
+
fig_val.update_traces(texttemplate="₹%{text:.1f}Cr",
|
| 679 |
+
textposition="outside")
|
| 680 |
+
fig_val.update_layout(
|
| 681 |
+
**CHART_LAYOUT,
|
| 682 |
+
coloraxis_showscale=False,
|
| 683 |
+
title="Top 25 most valuable IPL players (model estimate)",
|
| 684 |
+
)
|
| 685 |
+
|
| 686 |
+
return labels + [price_display, fig_g, sim_table, fig_val]
|
dashboard/layout.py
ADDED
|
@@ -0,0 +1,416 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from dash import dcc, html, dash_table
|
| 2 |
+
import dash_bootstrap_components as dbc
|
| 3 |
+
import pandas as pd
|
| 4 |
+
import json
|
| 5 |
+
from pathlib import Path
|
| 6 |
+
import sys
|
| 7 |
+
sys.path.insert(0, str(Path(__file__).parent.parent))
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
from src.models import get_available_teams, get_available_venues
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
MODELS = Path("E:/ipl-analytics/data/processed/models")
|
| 14 |
+
PROCESSED = Path("E:/ipl-analytics/data/processed")
|
| 15 |
+
|
| 16 |
+
# ── Load static data for dropdowns ───────────────────────────────────
|
| 17 |
+
team_season = pd.read_csv(PROCESSED / "team_season_stats.csv")
|
| 18 |
+
matches = pd.read_csv(PROCESSED / "matches_clean.csv")
|
| 19 |
+
batting = pd.read_csv(PROCESSED / "batting_features.csv")
|
| 20 |
+
bowling = pd.read_csv(PROCESSED / "bowling_features.csv")
|
| 21 |
+
valuations = pd.read_csv(MODELS / "player_valuations.csv")
|
| 22 |
+
|
| 23 |
+
ALL_VENUES = get_available_venues()
|
| 24 |
+
ALL_TEAMS = get_available_teams()
|
| 25 |
+
ALL_SEASONS = sorted(matches["season"].unique().tolist())
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
TOP_TEAMS = [
|
| 29 |
+
"Mumbai Indians", "Chennai Super Kings",
|
| 30 |
+
"Royal Challengers Bangalore", "Kolkata Knight Riders",
|
| 31 |
+
"Sunrisers Hyderabad", "Delhi Capitals",
|
| 32 |
+
"Punjab Kings", "Rajasthan Royals",
|
| 33 |
+
]
|
| 34 |
+
|
| 35 |
+
# ════════════════════════════════════════════════════════════════════
|
| 36 |
+
# NAVBAR
|
| 37 |
+
# ════════════════════════════════════════════════════════════════════
|
| 38 |
+
|
| 39 |
+
def make_navbar():
|
| 40 |
+
return dbc.Navbar(
|
| 41 |
+
dbc.Container([
|
| 42 |
+
dbc.NavbarBrand(
|
| 43 |
+
[html.Span("IPL", style={"color": "#F9CD05", "fontWeight": 700}),
|
| 44 |
+
html.Span(" Analytics Platform", style={"color": "white"})],
|
| 45 |
+
style={"fontSize": "18px"},
|
| 46 |
+
),
|
| 47 |
+
dbc.Nav([
|
| 48 |
+
dbc.NavItem(dbc.NavLink("Team Stats", href="/", active="exact")),
|
| 49 |
+
dbc.NavItem(dbc.NavLink("Player Explorer", href="/players", active="exact")),
|
| 50 |
+
dbc.NavItem(dbc.NavLink("Win Predictor", href="/predict", active="exact")),
|
| 51 |
+
dbc.NavItem(dbc.NavLink("Auction Simulator",href="/auction", active="exact")),
|
| 52 |
+
], navbar=True, className="ms-auto"),
|
| 53 |
+
], fluid=True),
|
| 54 |
+
color="#1a1a2e",
|
| 55 |
+
dark=True,
|
| 56 |
+
sticky="top",
|
| 57 |
+
style={"marginBottom": "0px"},
|
| 58 |
+
)
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
# ════════════════════════════════════════════════════════════════════
|
| 62 |
+
# PAGE 1 — TEAM STATS
|
| 63 |
+
# ════════════════════════════════════════════════════════════════════
|
| 64 |
+
|
| 65 |
+
def layout_team_stats():
|
| 66 |
+
return html.Div([
|
| 67 |
+
html.Div([
|
| 68 |
+
html.H1("Team Statistics", className="page-title"),
|
| 69 |
+
html.P("Season-by-season performance, head-to-head records, and venue analysis.",
|
| 70 |
+
className="page-subtitle"),
|
| 71 |
+
], className="page-header"),
|
| 72 |
+
|
| 73 |
+
dbc.Container([
|
| 74 |
+
# ── Filters ───────────────────────────────────────────
|
| 75 |
+
dbc.Row([
|
| 76 |
+
dbc.Col([
|
| 77 |
+
html.Label("Select teams", style={"fontWeight": 500, "fontSize": "13px"}),
|
| 78 |
+
dcc.Dropdown(
|
| 79 |
+
id="team-filter",
|
| 80 |
+
options=[{"label": t, "value": t} for t in ALL_TEAMS],
|
| 81 |
+
value=TOP_TEAMS[:6],
|
| 82 |
+
multi=True,
|
| 83 |
+
placeholder="Select teams...",
|
| 84 |
+
),
|
| 85 |
+
], md=8),
|
| 86 |
+
dbc.Col([
|
| 87 |
+
html.Label("Season range", style={"fontWeight": 500, "fontSize": "13px"}),
|
| 88 |
+
dcc.RangeSlider(
|
| 89 |
+
id="season-range",
|
| 90 |
+
min=min(ALL_SEASONS), max=max(ALL_SEASONS),
|
| 91 |
+
value=[min(ALL_SEASONS), max(ALL_SEASONS)],
|
| 92 |
+
marks={s: str(s) for s in ALL_SEASONS[::2]},
|
| 93 |
+
step=1,
|
| 94 |
+
tooltip={"placement": "bottom", "always_visible": False},
|
| 95 |
+
),
|
| 96 |
+
], md=4),
|
| 97 |
+
], className="mb-4"),
|
| 98 |
+
|
| 99 |
+
# ── Metric cards ──────────────────────────────────────
|
| 100 |
+
dbc.Row(id="team-metric-cards", className="mb-4 g-3"),
|
| 101 |
+
|
| 102 |
+
# ── Charts ────────────────────────────────────────────
|
| 103 |
+
dbc.Row([
|
| 104 |
+
dbc.Col([
|
| 105 |
+
html.P("Wins per season", className="section-title"),
|
| 106 |
+
dcc.Graph(id="wins-per-season-chart", style={"height": "380px"}),
|
| 107 |
+
], md=7),
|
| 108 |
+
dbc.Col([
|
| 109 |
+
html.P("Win percentage by team", className="section-title"),
|
| 110 |
+
dcc.Graph(id="win-pct-chart", style={"height": "380px"}),
|
| 111 |
+
], md=5),
|
| 112 |
+
], className="mb-4"),
|
| 113 |
+
|
| 114 |
+
dbc.Row([
|
| 115 |
+
dbc.Col([
|
| 116 |
+
html.P("Toss decision trends", className="section-title"),
|
| 117 |
+
dcc.Graph(id="toss-chart", style={"height": "340px"}),
|
| 118 |
+
], md=6),
|
| 119 |
+
dbc.Col([
|
| 120 |
+
html.P("Runs per over (all seasons)", className="section-title"),
|
| 121 |
+
dcc.Graph(id="runs-per-over-chart", style={"height": "340px"}),
|
| 122 |
+
], md=6),
|
| 123 |
+
], className="mb-4"),
|
| 124 |
+
|
| 125 |
+
], fluid=True),
|
| 126 |
+
])
|
| 127 |
+
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
|
| 131 |
+
def layout_player_explorer():
|
| 132 |
+
return html.Div([
|
| 133 |
+
html.Div([
|
| 134 |
+
html.H1("Player Explorer", className="page-title"),
|
| 135 |
+
html.P("Search and compare individual player career statistics.",
|
| 136 |
+
className="page-subtitle"),
|
| 137 |
+
], className="page-header"),
|
| 138 |
+
|
| 139 |
+
dbc.Container([
|
| 140 |
+
dbc.Row([
|
| 141 |
+
dbc.Col([
|
| 142 |
+
html.Label("Search batsman", style={"fontWeight": 500, "fontSize": "13px"}),
|
| 143 |
+
dcc.Dropdown(
|
| 144 |
+
id="batsman-search",
|
| 145 |
+
options=[{"label": p, "value": p}
|
| 146 |
+
for p in sorted(batting["batter"].unique())],
|
| 147 |
+
value=batting.nlargest(1, "total_runs")["batter"].iloc[0],
|
| 148 |
+
placeholder="Select a batsman...",
|
| 149 |
+
clearable=False,
|
| 150 |
+
),
|
| 151 |
+
], md=4),
|
| 152 |
+
dbc.Col([
|
| 153 |
+
html.Label("Compare with (optional)", style={"fontWeight": 500, "fontSize": "13px"}),
|
| 154 |
+
dcc.Dropdown(
|
| 155 |
+
id="batsman-compare",
|
| 156 |
+
options=[{"label": p, "value": p}
|
| 157 |
+
for p in sorted(batting["batter"].unique())],
|
| 158 |
+
placeholder="Add a second player...",
|
| 159 |
+
),
|
| 160 |
+
], md=4),
|
| 161 |
+
dbc.Col([
|
| 162 |
+
html.Label("Search bowler", style={"fontWeight": 500, "fontSize": "13px"}),
|
| 163 |
+
dcc.Dropdown(
|
| 164 |
+
id="bowler-search",
|
| 165 |
+
options=[{"label": p, "value": p}
|
| 166 |
+
for p in sorted(bowling["bowler"].unique())],
|
| 167 |
+
value=bowling.nlargest(1, "wickets")["bowler"].iloc[0],
|
| 168 |
+
placeholder="Select a bowler...",
|
| 169 |
+
clearable=False,
|
| 170 |
+
),
|
| 171 |
+
], md=4),
|
| 172 |
+
], className="mb-4"),
|
| 173 |
+
|
| 174 |
+
# ── Batting stats ──────────────────────────────────────
|
| 175 |
+
html.P("Batting profile", className="section-title"),
|
| 176 |
+
dbc.Row(id="batting-metric-cards", className="mb-3 g-3"),
|
| 177 |
+
dbc.Row([
|
| 178 |
+
dbc.Col([
|
| 179 |
+
dcc.Graph(id="batting-scatter-chart", style={"height": "400px"}),
|
| 180 |
+
], md=7),
|
| 181 |
+
dbc.Col([
|
| 182 |
+
dcc.Graph(id="phase-sr-chart", style={"height": "400px"}),
|
| 183 |
+
], md=5),
|
| 184 |
+
], className="mb-4"),
|
| 185 |
+
|
| 186 |
+
# ── Bowling stats ──────────────────────────────────────
|
| 187 |
+
html.P("Bowling profile", className="section-title"),
|
| 188 |
+
dbc.Row(id="bowling-metric-cards", className="mb-3 g-3"),
|
| 189 |
+
dcc.Graph(id="bowling-phase-chart", style={"height": "360px"}),
|
| 190 |
+
|
| 191 |
+
# ── Player table ───────────────────────────────────────
|
| 192 |
+
html.P("Full leaderboard", className="section-title"),
|
| 193 |
+
dbc.Row([
|
| 194 |
+
dbc.Col([
|
| 195 |
+
dcc.RadioItems(
|
| 196 |
+
id="leaderboard-type",
|
| 197 |
+
options=[
|
| 198 |
+
{"label": " Batting", "value": "batting"},
|
| 199 |
+
{"label": " Bowling", "value": "bowling"},
|
| 200 |
+
],
|
| 201 |
+
value="batting",
|
| 202 |
+
inline=True,
|
| 203 |
+
style={"fontSize": "13px", "marginBottom": "10px"},
|
| 204 |
+
),
|
| 205 |
+
]),
|
| 206 |
+
]),
|
| 207 |
+
dash_table.DataTable(
|
| 208 |
+
id="player-table",
|
| 209 |
+
page_size=15,
|
| 210 |
+
sort_action="native",
|
| 211 |
+
filter_action="native",
|
| 212 |
+
style_table={"overflowX": "auto"},
|
| 213 |
+
style_header={
|
| 214 |
+
"backgroundColor": "#1a1a2e",
|
| 215 |
+
"color": "white",
|
| 216 |
+
"fontWeight": 600,
|
| 217 |
+
"fontSize": "12px",
|
| 218 |
+
"border": "none",
|
| 219 |
+
},
|
| 220 |
+
style_cell={
|
| 221 |
+
"fontSize": "12px",
|
| 222 |
+
"padding": "8px 12px",
|
| 223 |
+
"border": "0.5px solid #f0f0f0",
|
| 224 |
+
"fontFamily": "Segoe UI, Arial",
|
| 225 |
+
},
|
| 226 |
+
style_data_conditional=[
|
| 227 |
+
{"if": {"row_index": "odd"},
|
| 228 |
+
"backgroundColor": "#fafafa"},
|
| 229 |
+
],
|
| 230 |
+
),
|
| 231 |
+
], fluid=True),
|
| 232 |
+
])
|
| 233 |
+
|
| 234 |
+
|
| 235 |
+
# ════════════════════════════════════════════════════════════════════
|
| 236 |
+
# PAGE 3 — WIN PREDICTOR
|
| 237 |
+
# ════════════════════════════════════════════════════════════════════
|
| 238 |
+
|
| 239 |
+
def layout_win_predictor():
|
| 240 |
+
return html.Div([
|
| 241 |
+
html.Div([
|
| 242 |
+
html.H1("Win Probability Predictor", className="page-title"),
|
| 243 |
+
html.P("Pre-match win probability powered by XGBoost — trained on 15 seasons of IPL data.",
|
| 244 |
+
className="page-subtitle"),
|
| 245 |
+
], className="page-header"),
|
| 246 |
+
|
| 247 |
+
dbc.Container([
|
| 248 |
+
dbc.Row([
|
| 249 |
+
# ── Input form ────────────────────────────────────
|
| 250 |
+
dbc.Col([
|
| 251 |
+
dbc.Card([
|
| 252 |
+
dbc.CardBody([
|
| 253 |
+
html.H5("Match setup", style={"fontWeight": 600, "marginBottom": "20px"}),
|
| 254 |
+
|
| 255 |
+
html.Label("Team 1 (batting side)", style={"fontSize": "13px", "fontWeight": 500}),
|
| 256 |
+
dcc.Dropdown(
|
| 257 |
+
id="pred-team1",
|
| 258 |
+
options=[{"label": t, "value": t} for t in sorted(ALL_TEAMS)],
|
| 259 |
+
value="Mumbai Indians",
|
| 260 |
+
clearable=False,
|
| 261 |
+
style={"marginBottom": "14px"},
|
| 262 |
+
),
|
| 263 |
+
|
| 264 |
+
html.Label("Team 2", style={"fontSize": "13px", "fontWeight": 500}),
|
| 265 |
+
dcc.Dropdown(
|
| 266 |
+
id="pred-team2",
|
| 267 |
+
options=[{"label": t, "value": t} for t in sorted(ALL_TEAMS)],
|
| 268 |
+
value="Chennai Super Kings",
|
| 269 |
+
clearable=False,
|
| 270 |
+
style={"marginBottom": "14px"},
|
| 271 |
+
),
|
| 272 |
+
|
| 273 |
+
html.Label("Venue", style={"fontSize": "13px", "fontWeight": 500}),
|
| 274 |
+
dcc.Dropdown(
|
| 275 |
+
id="pred-venue",
|
| 276 |
+
options=[{"label": v, "value": v} for v in ALL_VENUES],
|
| 277 |
+
value=ALL_VENUES[0] if ALL_VENUES else None,
|
| 278 |
+
clearable=False,
|
| 279 |
+
style={"marginBottom": "14px"},
|
| 280 |
+
),
|
| 281 |
+
|
| 282 |
+
html.Label("Toss winner", style={"fontSize": "13px", "fontWeight": 500}),
|
| 283 |
+
dcc.Dropdown(
|
| 284 |
+
id="pred-toss-winner",
|
| 285 |
+
options=[{"label": t, "value": t} for t in sorted(ALL_TEAMS)],
|
| 286 |
+
value="Mumbai Indians",
|
| 287 |
+
clearable=False,
|
| 288 |
+
style={"marginBottom": "14px"},
|
| 289 |
+
),
|
| 290 |
+
|
| 291 |
+
html.Label("Toss decision", style={"fontSize": "13px", "fontWeight": 500}),
|
| 292 |
+
dcc.RadioItems(
|
| 293 |
+
id="pred-toss-decision",
|
| 294 |
+
options=[
|
| 295 |
+
{"label": " Bat first", "value": "bat"},
|
| 296 |
+
{"label": " Field first", "value": "field"},
|
| 297 |
+
],
|
| 298 |
+
value="field",
|
| 299 |
+
inline=True,
|
| 300 |
+
style={"fontSize": "13px", "marginBottom": "20px"},
|
| 301 |
+
),
|
| 302 |
+
|
| 303 |
+
dbc.Button(
|
| 304 |
+
"Predict outcome",
|
| 305 |
+
id="predict-btn",
|
| 306 |
+
color="primary",
|
| 307 |
+
style={"width": "100%",
|
| 308 |
+
"background": "#7F77DD",
|
| 309 |
+
"border": "none",
|
| 310 |
+
"fontWeight": 600},
|
| 311 |
+
),
|
| 312 |
+
])
|
| 313 |
+
], style={"border": "0.5px solid #e0e0e0"}),
|
| 314 |
+
], md=4),
|
| 315 |
+
|
| 316 |
+
# ── Result panel ──────────────────────────────────
|
| 317 |
+
dbc.Col([
|
| 318 |
+
html.Div(id="prediction-output"),
|
| 319 |
+
dcc.Graph(id="win-prob-gauge", style={"height": "320px"}),
|
| 320 |
+
html.Div(id="historical-h2h"),
|
| 321 |
+
], md=8),
|
| 322 |
+
]),
|
| 323 |
+
], fluid=True),
|
| 324 |
+
])
|
| 325 |
+
|
| 326 |
+
|
| 327 |
+
# ════════════════════════════════════════════════════════════════════
|
| 328 |
+
# PAGE 4 — AUCTION SIMULATOR
|
| 329 |
+
# ════════════════════════════════════════════════════════════════════
|
| 330 |
+
|
| 331 |
+
def layout_auction_simulator():
|
| 332 |
+
def stat_slider(label, id_, min_, max_, value, step=1):
|
| 333 |
+
return html.Div([
|
| 334 |
+
html.Div([
|
| 335 |
+
html.Span(label, style={"fontSize": "13px", "fontWeight": 500}),
|
| 336 |
+
html.Span(id=f"{id_}-out", style={"fontSize": "13px",
|
| 337 |
+
"color": "#7F77DD",
|
| 338 |
+
"fontWeight": 600,
|
| 339 |
+
"float": "right"}),
|
| 340 |
+
], style={"display": "flex", "justifyContent": "space-between"}),
|
| 341 |
+
dcc.Slider(
|
| 342 |
+
id=id_, min=min_, max=max_, value=value, step=step,
|
| 343 |
+
marks=None,
|
| 344 |
+
tooltip={"placement": "bottom", "always_visible": False},
|
| 345 |
+
),
|
| 346 |
+
], style={"marginBottom": "18px"})
|
| 347 |
+
|
| 348 |
+
return html.Div([
|
| 349 |
+
html.Div([
|
| 350 |
+
html.H1("Auction Value Simulator", className="page-title"),
|
| 351 |
+
html.P("Adjust player stats with the sliders to see predicted IPL auction price in real-time.",
|
| 352 |
+
className="page-subtitle"),
|
| 353 |
+
], className="page-header"),
|
| 354 |
+
|
| 355 |
+
dbc.Container([
|
| 356 |
+
dbc.Row([
|
| 357 |
+
# ── Sliders ───────────────────────────────────────
|
| 358 |
+
dbc.Col([
|
| 359 |
+
dbc.Card([
|
| 360 |
+
dbc.CardBody([
|
| 361 |
+
html.H5("Batting stats",
|
| 362 |
+
style={"fontWeight": 600, "marginBottom": "16px"}),
|
| 363 |
+
stat_slider("Career runs", "sl-runs", 0, 8000, 2000, 50),
|
| 364 |
+
stat_slider("Batting average","sl-avg", 0, 80, 28, 0.5),
|
| 365 |
+
stat_slider("Strike rate", "sl-sr", 60, 220, 130, 0.5),
|
| 366 |
+
stat_slider("Centuries", "sl-100s", 0, 10, 1, 1),
|
| 367 |
+
stat_slider("Half-centuries", "sl-50s", 0, 60, 10, 1),
|
| 368 |
+
stat_slider("Boundary rate (%)", "sl-br", 0, 30, 12, 0.5),
|
| 369 |
+
stat_slider("Powerplay SR", "sl-pp-sr", 0, 220, 130, 0.5),
|
| 370 |
+
stat_slider("Death SR", "sl-death-sr",0, 300, 160, 0.5),
|
| 371 |
+
])
|
| 372 |
+
], style={"border": "0.5px solid #e0e0e0", "marginBottom": "16px"}),
|
| 373 |
+
|
| 374 |
+
dbc.Card([
|
| 375 |
+
dbc.CardBody([
|
| 376 |
+
html.H5("Bowling stats",
|
| 377 |
+
style={"fontWeight": 600, "marginBottom": "16px"}),
|
| 378 |
+
stat_slider("Career wickets", "sl-wkts", 0, 200, 30, 1),
|
| 379 |
+
stat_slider("Economy rate", "sl-econ", 5, 14, 8.5, 0.1),
|
| 380 |
+
stat_slider("Bowling average", "sl-bowl-avg", 10, 60, 35, 0.5),
|
| 381 |
+
stat_slider("Dot ball %", "sl-dot", 0, 60, 20, 0.5),
|
| 382 |
+
stat_slider("Death economy", "sl-d-econ", 5, 16, 9.5, 0.1),
|
| 383 |
+
stat_slider("Powerplay economy", "sl-pp-econ", 5, 14, 8.0, 0.1),
|
| 384 |
+
stat_slider("Matches bowled", "sl-mbowled", 0, 150, 40, 1),
|
| 385 |
+
])
|
| 386 |
+
], style={"border": "0.5px solid #e0e0e0"}),
|
| 387 |
+
], md=5),
|
| 388 |
+
|
| 389 |
+
# ── Live result ───────────────────────────────────
|
| 390 |
+
dbc.Col([
|
| 391 |
+
dbc.Card([
|
| 392 |
+
dbc.CardBody([
|
| 393 |
+
html.H5("Predicted auction value",
|
| 394 |
+
style={"fontWeight": 600,
|
| 395 |
+
"textAlign": "center",
|
| 396 |
+
"marginBottom": "20px"}),
|
| 397 |
+
html.Div(id="auction-price-display",
|
| 398 |
+
style={"textAlign": "center"}),
|
| 399 |
+
dcc.Graph(id="auction-gauge",
|
| 400 |
+
style={"height": "260px"},
|
| 401 |
+
config={"displayModeBar": False}),
|
| 402 |
+
html.Hr(),
|
| 403 |
+
html.P("Similar players at this price",
|
| 404 |
+
className="section-title"),
|
| 405 |
+
html.Div(id="similar-players-table"),
|
| 406 |
+
])
|
| 407 |
+
], style={"border": "0.5px solid #e0e0e0", "position": "sticky", "top": "70px"}),
|
| 408 |
+
], md=7),
|
| 409 |
+
]),
|
| 410 |
+
|
| 411 |
+
html.Br(),
|
| 412 |
+
html.P("All-time player valuations leaderboard", className="section-title"),
|
| 413 |
+
dcc.Graph(id="valuation-chart", style={"height": "420px"}),
|
| 414 |
+
|
| 415 |
+
], fluid=True),
|
| 416 |
+
])
|
data/processed/batting_features.csv
ADDED
|
@@ -0,0 +1,461 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
batter,total_runs,balls_faced,matches_batted,innings,fours,sixes,dot_balls,dismissals,strike_rate,batting_average,boundary_rate,dot_ball_pct,runs_per_match,sr_powerplay,sr_middle,sr_death,fifties,hundreds
|
| 2 |
+
V Kohli,9022,6743,267,6761,811,306,2226,237,133.8,38.07,16.57,33.01,33.79,123.74,130.9,202.63,66,8
|
| 3 |
+
RG Sharma,7185,5417,270,5435,653,311,2056,249,132.64,28.86,17.8,37.95,26.61,123.0,125.79,198.0,48,2
|
| 4 |
+
S Dhawan,6769,5304,221,5326,768,153,1970,193,127.62,35.07,17.36,37.14,30.63,121.69,131.26,165.78,51,2
|
| 5 |
+
DA Warner,6567,4682,184,4702,663,236,1715,164,140.26,40.04,19.2,36.63,35.69,136.32,141.07,179.65,62,4
|
| 6 |
+
KL Rahul,5593,4048,143,4059,489,227,1347,123,138.17,45.47,17.69,33.28,39.11,126.16,141.54,186.58,42,6
|
| 7 |
+
SK Raina,5536,4025,200,4046,506,204,1334,167,137.54,33.15,17.64,33.14,27.68,129.17,136.82,173.37,39,1
|
| 8 |
+
MS Dhoni,5439,3944,241,3966,375,264,1336,158,137.91,34.42,16.2,33.87,22.57,76.6,106.66,187.23,24,0
|
| 9 |
+
AM Rahane,5194,4158,191,4162,523,133,1519,174,124.92,29.85,15.78,36.53,27.19,120.32,126.02,164.96,34,2
|
| 10 |
+
AB de Villiers,5181,3400,170,3411,414,253,1039,125,152.38,41.45,19.62,30.56,30.48,118.41,140.96,235.26,40,3
|
| 11 |
+
SV Samson,5008,3556,179,3569,412,234,1223,157,140.83,31.9,18.17,34.39,27.98,127.86,141.65,195.83,26,5
|
| 12 |
+
CH Gayle,4997,3331,141,3346,408,359,1462,127,150.02,39.35,23.03,43.89,35.44,135.29,165.09,209.33,31,6
|
| 13 |
+
RV Uthappa,4954,3784,197,3801,481,182,1464,182,130.92,27.22,17.52,38.69,25.15,123.26,133.21,177.35,27,0
|
| 14 |
+
KD Karthik,4843,3570,233,3580,466,161,1219,187,135.66,25.9,17.56,34.15,20.79,100.69,124.7,188.55,22,0
|
| 15 |
+
F du Plessis,4773,3515,147,3522,440,174,1203,135,135.79,35.36,17.47,34.22,32.47,133.23,129.92,199.04,39,0
|
| 16 |
+
SA Yadav,4468,3017,158,3029,471,172,1030,130,148.09,34.37,21.31,34.14,28.28,135.1,145.68,195.47,30,2
|
| 17 |
+
JC Buttler,4391,2937,127,2948,439,196,1075,112,149.51,39.21,21.62,36.6,34.57,138.78,151.08,193.84,26,7
|
| 18 |
+
AT Rayudu,4348,3391,185,3409,359,173,1185,152,128.22,28.61,15.69,34.95,23.5,104.46,127.87,172.64,22,1
|
| 19 |
+
G Gambhir,4217,3394,151,3404,492,59,1235,134,124.25,31.47,16.23,36.39,27.93,121.43,127.63,139.84,36,0
|
| 20 |
+
Shubman Gill,4196,3025,121,3035,402,133,959,104,138.71,40.35,17.69,31.7,34.68,130.55,145.71,157.21,29,4
|
| 21 |
+
SS Iyer,4044,2993,138,2999,333,174,1019,119,135.12,33.98,16.94,34.05,29.3,110.18,139.33,193.13,31,0
|
| 22 |
+
MK Pandey,3951,3241,160,3250,340,116,1163,134,121.91,29.49,14.07,35.88,24.69,111.87,121.32,159.89,22,1
|
| 23 |
+
SR Watson,3880,2801,141,2813,377,190,1164,125,138.52,31.04,20.24,41.56,27.52,115.16,159.95,187.9,21,4
|
| 24 |
+
RR Pant,3756,2567,131,2576,339,176,884,113,146.32,33.24,20.06,34.44,28.67,119.41,142.62,203.87,20,2
|
| 25 |
+
Q de Kock,3444,2557,118,2563,334,143,992,110,134.69,31.31,18.65,38.8,29.19,129.2,138.81,206.1,24,3
|
| 26 |
+
KA Pollard,3437,2315,168,2329,221,224,842,129,148.47,26.64,19.22,36.37,20.46,92.13,126.89,184.05,16,0
|
| 27 |
+
RA Jadeja,3392,2608,200,2621,251,118,830,125,130.06,27.14,14.15,31.83,16.96,104.79,112.09,159.37,5,0
|
| 28 |
+
Ishan Kishan,3310,2347,120,2354,323,150,885,108,141.03,30.65,20.15,37.71,27.58,131.39,144.78,193.15,20,1
|
| 29 |
+
YK Pathan,3222,2233,153,2245,263,161,781,110,144.29,29.29,18.99,34.98,21.06,146.44,135.17,167.91,13,1
|
| 30 |
+
DA Miller,3200,2309,140,2316,232,144,729,92,138.59,34.78,16.28,31.57,22.86,90.66,129.08,172.81,13,1
|
| 31 |
+
N Rana,3022,2205,118,2211,282,149,881,110,137.05,27.47,19.55,39.95,25.61,113.26,146.37,188.76,22,0
|
| 32 |
+
WP Saha,2934,2296,143,2300,296,87,865,118,127.79,24.86,16.68,37.67,20.52,128.72,117.18,156.94,13,1
|
| 33 |
+
BB McCullum,2882,2176,109,2190,293,130,938,106,132.44,27.19,19.44,43.11,26.44,128.29,131.81,216.44,13,2
|
| 34 |
+
HH Pandya,2855,1949,146,1958,219,152,656,103,146.49,27.72,19.04,33.66,19.55,106.47,130.72,181.14,10,0
|
| 35 |
+
PA Patel,2848,2350,136,2358,365,49,993,127,121.19,22.43,17.62,42.26,20.94,121.27,119.57,140.0,13,0
|
| 36 |
+
GJ Maxwell,2820,1815,134,1823,238,161,653,117,155.37,24.1,21.98,35.98,21.04,134.12,157.43,182.52,18,0
|
| 37 |
+
MA Agarwal,2764,2055,125,2067,275,100,769,118,134.5,23.42,18.25,37.42,22.11,122.57,145.73,214.44,13,1
|
| 38 |
+
Yuvraj Singh,2754,2115,126,2122,218,149,890,109,130.21,25.27,17.35,42.08,21.86,97.41,124.92,181.02,13,0
|
| 39 |
+
V Sehwag,2728,1740,104,1755,334,106,650,98,156.78,27.84,25.29,37.36,26.23,146.67,178.78,235.71,16,2
|
| 40 |
+
RD Gaikwad,2680,1970,78,1979,248,101,698,68,136.04,39.41,17.72,35.43,34.36,126.1,144.54,183.76,21,2
|
| 41 |
+
AD Russell,2655,1518,114,1534,187,223,608,92,174.9,28.86,27.01,40.05,23.29,215.38,155.17,204.71,12,0
|
| 42 |
+
M Vijay,2619,2148,105,2150,247,91,927,96,121.93,27.28,15.74,43.16,24.94,113.01,141.36,168.18,13,2
|
| 43 |
+
SPD Smith,2495,1931,93,1945,226,60,602,78,129.21,31.99,14.81,31.18,26.83,120.71,120.26,173.67,11,1
|
| 44 |
+
SE Marsh,2489,1866,69,1871,269,78,693,65,133.39,38.29,18.6,37.14,36.07,112.66,150.74,163.46,20,1
|
| 45 |
+
YBK Jaiswal,2472,1627,75,1632,295,105,647,69,151.94,35.83,24.59,39.77,32.96,156.53,138.05,225.0,18,2
|
| 46 |
+
JH Kallis,2427,2213,95,2222,255,44,909,89,109.67,27.27,13.51,41.08,25.55,103.58,102.87,194.23,17,0
|
| 47 |
+
DR Smith,2385,1755,88,1764,245,117,787,81,135.9,29.44,20.63,44.84,27.1,125.0,153.65,155.41,17,0
|
| 48 |
+
N Pooran,2375,1488,94,1490,163,171,545,76,159.61,31.25,22.45,36.63,25.27,138.65,157.79,173.04,14,0
|
| 49 |
+
SR Tendulkar,2334,1941,78,1948,296,29,773,71,120.25,32.87,16.74,39.82,29.92,114.85,123.22,169.23,13,1
|
| 50 |
+
RA Tripathi,2291,1655,98,1662,229,85,603,86,138.43,26.64,18.97,36.44,23.38,137.7,135.18,168.0,12,0
|
| 51 |
+
Abhishek Sharma,2196,1325,82,1329,210,129,488,75,165.74,29.28,25.58,36.83,26.78,166.29,165.88,160.78,12,2
|
| 52 |
+
R Dravid,2174,1878,82,1882,269,28,780,77,115.76,28.23,15.81,41.53,26.51,106.81,119.63,179.78,11,0
|
| 53 |
+
MP Stoinis,2136,1452,104,1458,168,114,498,75,147.11,28.48,19.42,34.3,20.54,118.18,133.0,190.83,10,1
|
| 54 |
+
KS Williamson,2132,1692,76,1697,187,64,583,59,126.0,36.14,14.83,34.46,28.05,98.48,134.63,168.66,18,0
|
| 55 |
+
B Sai Sudharsan,2115,1447,48,1455,215,70,443,43,146.16,49.19,19.7,30.62,44.06,134.7,148.56,210.99,14,3
|
| 56 |
+
AJ Finch,2092,1626,90,1635,214,78,683,84,128.66,24.9,17.96,42.0,23.24,116.13,140.13,162.4,15,0
|
| 57 |
+
AC Gilchrist,2069,1483,80,1495,239,92,673,76,139.51,27.22,22.32,45.38,25.86,133.79,152.54,208.0,11,2
|
| 58 |
+
D Padikkal,2048,1564,81,1568,214,72,612,77,130.95,26.6,18.29,39.13,25.28,129.85,130.86,144.29,14,1
|
| 59 |
+
JP Duminy,2029,1631,75,1636,126,79,516,49,124.4,41.41,12.57,31.64,27.05,98.35,108.75,182.1,14,0
|
| 60 |
+
S Dube,2009,1428,83,1430,122,128,512,66,140.69,30.44,17.51,35.85,24.2,100.0,137.41,159.26,10,0
|
| 61 |
+
MEK Hussey,1977,1610,58,1612,198,52,606,52,122.8,38.02,15.53,37.64,34.09,105.78,136.47,188.51,15,1
|
| 62 |
+
AR Patel,1947,1462,129,1466,133,94,485,94,133.17,20.71,15.53,33.17,15.09,102.59,121.59,157.98,3,0
|
| 63 |
+
PP Shaw,1892,1280,79,1283,238,61,483,77,147.81,24.57,23.36,37.73,23.95,143.43,163.24,163.64,14,0
|
| 64 |
+
H Klaasen,1829,1124,53,1130,123,103,289,43,162.72,42.53,20.11,25.71,34.51,128.92,154.62,191.48,10,2
|
| 65 |
+
SP Narine,1820,1118,122,1119,191,120,519,98,162.79,18.57,27.82,46.42,14.92,164.78,184.56,92.38,7,1
|
| 66 |
+
DPMD Jayawardene,1808,1462,78,1464,200,40,560,64,123.67,28.25,16.42,38.3,23.18,115.99,115.97,180.92,10,1
|
| 67 |
+
KH Pandya,1792,1358,117,1359,156,67,503,82,131.96,21.85,16.42,37.04,15.32,99.13,125.06,157.14,2,0
|
| 68 |
+
Mandeep Singh,1706,1385,97,1388,176,38,523,84,123.18,20.31,15.45,37.76,17.59,115.21,118.44,160.59,6,0
|
| 69 |
+
P Simran Singh,1701,1095,59,1096,178,88,425,58,155.34,29.33,24.29,38.81,28.83,151.78,161.3,172.5,12,1
|
| 70 |
+
KK Nair,1699,1296,77,1298,186,49,501,73,131.1,23.27,18.13,38.66,22.06,124.69,126.38,190.09,11,0
|
| 71 |
+
MK Tiwary,1695,1444,83,1449,156,40,530,60,117.38,28.25,13.57,36.7,20.42,95.72,110.53,155.11,7,0
|
| 72 |
+
KC Sangakkara,1687,1385,68,1392,195,27,515,69,121.81,24.45,16.03,37.18,24.81,112.03,124.8,157.78,10,0
|
| 73 |
+
R Parag,1687,1209,81,1212,120,94,429,68,139.54,24.81,17.7,35.48,20.83,119.73,135.41,161.73,7,0
|
| 74 |
+
Tilak Varma,1680,1157,58,1160,134,81,369,44,145.2,38.18,18.58,31.89,28.97,123.4,138.0,196.32,8,1
|
| 75 |
+
JM Bairstow,1674,1145,52,1149,173,74,445,50,146.2,33.48,21.57,38.86,32.19,145.82,146.21,155.17,9,2
|
| 76 |
+
AK Markram,1633,1208,63,1211,130,67,380,55,135.18,29.69,16.31,31.46,25.92,125.81,131.9,186.07,10,0
|
| 77 |
+
DJ Bravo,1560,1196,110,1204,120,66,452,69,130.43,22.61,15.55,37.79,14.18,98.68,97.92,190.02,5,0
|
| 78 |
+
SO Hetmyer,1560,1056,84,1061,98,96,363,58,147.73,26.9,18.37,34.38,18.57,105.63,125.0,178.65,5,0
|
| 79 |
+
NV Ojha,1554,1308,94,1313,121,79,599,74,118.81,21.0,15.29,45.8,16.53,99.63,127.74,144.24,6,0
|
| 80 |
+
MR Marsh,1504,1087,57,1087,122,86,430,54,138.36,27.85,19.14,39.56,26.39,144.17,128.69,155.45,10,1
|
| 81 |
+
VR Iyer,1497,1089,57,1090,137,67,418,50,137.47,29.94,18.73,38.38,26.26,130.65,137.37,182.5,12,1
|
| 82 |
+
DJ Hooda,1497,1170,101,1175,98,62,389,81,127.95,18.48,13.68,33.25,14.82,94.47,130.83,150.21,8,0
|
| 83 |
+
SS Tiwary,1494,1235,73,1244,111,50,428,49,120.97,30.49,13.04,34.66,20.47,109.63,114.12,151.59,8,0
|
| 84 |
+
S Badrinath,1441,1208,65,1212,154,28,458,48,119.29,30.02,15.07,37.91,22.17,82.17,123.23,163.68,11,0
|
| 85 |
+
EJG Morgan,1406,1147,74,1148,112,64,478,61,122.58,23.05,15.34,41.67,19.0,93.36,117.2,168.33,5,0
|
| 86 |
+
BJ Hodge,1400,1112,63,1118,122,43,399,46,125.9,30.43,14.84,35.88,22.22,92.57,116.16,169.76,6,0
|
| 87 |
+
SC Ganguly,1349,1257,56,1263,137,42,594,54,107.32,24.98,14.24,47.26,24.09,97.7,109.78,175.38,7,0
|
| 88 |
+
RM Patidar,1349,851,45,852,88,91,270,42,158.52,32.12,21.03,31.73,29.98,119.55,173.71,162.07,11,1
|
| 89 |
+
TM Head,1332,825,45,828,148,63,303,41,161.45,32.49,25.58,36.73,29.6,169.57,137.5,195.83,8,1
|
| 90 |
+
CA Lynn,1329,941,42,945,132,66,387,39,141.23,34.08,21.04,41.13,31.64,144.39,135.46,136.36,10,0
|
| 91 |
+
DJ Hussey,1322,1070,61,1075,90,60,397,48,123.55,27.54,14.02,37.1,21.67,103.73,116.6,177.56,5,0
|
| 92 |
+
RK Singh,1318,920,58,926,108,64,311,41,143.26,32.15,18.7,33.8,22.72,127.27,114.26,191.96,6,0
|
| 93 |
+
PD Salt,1258,729,40,733,138,67,267,38,172.57,33.11,28.12,36.63,31.45,168.92,179.5,218.18,12,0
|
| 94 |
+
V Shankar,1233,952,63,954,88,48,308,46,129.52,26.8,14.29,32.35,19.57,91.72,121.2,172.84,7,0
|
| 95 |
+
KM Jadhav,1208,969,81,981,102,40,341,54,124.66,22.37,14.65,35.19,14.91,88.43,121.41,143.38,4,0
|
| 96 |
+
MM Ali,1167,834,59,837,95,67,328,50,139.93,23.34,19.42,39.33,19.78,122.08,140.08,176.52,6,0
|
| 97 |
+
R Tewatia,1161,857,82,861,94,55,310,51,135.47,22.76,17.39,36.17,14.16,92.86,99.76,171.0,1,0
|
| 98 |
+
TM Dilshan,1153,1001,50,1007,140,24,451,41,115.18,28.12,16.38,45.05,23.06,108.15,108.5,188.37,9,0
|
| 99 |
+
IK Pathan,1150,947,82,950,88,38,336,52,121.44,22.12,13.31,35.48,14.02,113.79,96.83,158.15,1,0
|
| 100 |
+
A Badoni,1135,832,54,833,91,44,275,44,136.42,25.8,16.23,33.05,21.02,96.88,122.94,170.73,7,0
|
| 101 |
+
ML Hayden,1107,799,32,806,121,44,332,27,138.55,41.0,20.65,41.55,34.59,133.2,141.43,200.0,8,0
|
| 102 |
+
M Vohra,1083,828,51,829,104,43,358,48,130.8,22.56,17.75,43.24,21.24,124.75,142.31,200.0,3,0
|
| 103 |
+
DP Conway,1080,776,28,779,117,34,271,25,139.18,43.2,19.46,34.92,38.57,124.15,156.29,154.17,11,0
|
| 104 |
+
LMP Simmons,1079,848,29,852,109,44,372,27,127.24,39.96,18.04,43.87,37.21,118.47,141.4,128.0,11,1
|
| 105 |
+
LS Livingstone,1066,687,49,694,70,76,249,41,155.17,26.0,21.25,36.24,21.76,130.32,145.74,219.01,7,0
|
| 106 |
+
JM Sharma,1053,690,53,692,82,65,256,45,152.61,23.4,21.3,37.1,19.87,84.62,145.07,181.95,1,0
|
| 107 |
+
TH David,1029,590,51,592,66,75,184,28,174.41,36.75,23.9,31.19,20.18,,134.29,202.9,2,0
|
| 108 |
+
LRPL Taylor,1017,818,54,822,66,46,307,41,124.33,24.8,13.69,37.53,18.83,126.45,113.07,165.93,3,0
|
| 109 |
+
KP Pietersen,1001,742,36,743,91,40,275,28,134.91,35.75,17.65,37.06,27.81,130.19,129.14,200.0,4,1
|
| 110 |
+
MC Henriques,1000,785,54,788,87,28,269,38,127.39,26.32,14.65,34.27,18.52,123.76,110.05,175.76,5,0
|
| 111 |
+
SM Curran,997,731,53,735,85,41,256,41,136.39,24.32,17.24,35.02,18.81,110.06,121.07,186.8,6,0
|
| 112 |
+
Y Venugopal Rao,985,832,52,836,77,37,324,42,118.39,23.45,13.7,38.94,18.94,82.64,111.67,157.87,3,0
|
| 113 |
+
JA Morkel,975,683,67,687,61,55,226,40,142.75,24.38,16.98,33.09,14.55,121.74,120.13,164.55,3,0
|
| 114 |
+
A Symonds,974,745,36,750,74,41,273,26,130.74,37.46,15.44,36.64,27.06,104.58,126.69,168.31,5,1
|
| 115 |
+
CL White,971,757,45,760,76,38,260,35,128.27,27.74,15.06,34.35,21.58,89.17,121.24,191.22,6,0
|
| 116 |
+
BA Stokes,935,695,43,698,81,32,231,41,134.53,22.8,16.26,33.24,21.74,129.13,133.91,150.59,2,2
|
| 117 |
+
Dhruv Jurel,928,619,44,619,76,48,199,30,149.92,30.93,20.03,32.15,21.09,140.74,131.0,178.39,7,0
|
| 118 |
+
T Stubbs,912,585,37,586,66,44,144,20,155.9,45.6,18.8,24.62,24.65,121.88,118.67,216.74,5,0
|
| 119 |
+
C Green,903,593,36,596,78,42,181,26,152.28,34.73,20.24,30.52,25.08,146.31,149.65,170.75,3,1
|
| 120 |
+
HH Gibbs,886,805,36,807,83,31,378,32,110.06,27.69,14.16,46.96,24.61,103.93,112.54,174.29,6,0
|
| 121 |
+
STR Binny,880,682,66,683,66,35,251,44,129.03,20.0,14.81,36.8,13.33,69.39,120.57,160.0,0,0
|
| 122 |
+
Shashank Singh,843,539,38,539,62,47,159,20,156.4,42.15,20.22,29.5,22.18,137.14,123.13,197.03,5,0
|
| 123 |
+
Harbhajan Singh,833,599,88,604,79,42,251,56,139.07,14.88,20.2,41.9,9.47,114.06,106.55,158.31,1,0
|
| 124 |
+
R Ashwin,833,704,93,705,64,29,257,62,118.32,13.44,13.21,36.51,8.96,102.38,106.19,134.5,1,0
|
| 125 |
+
Priyansh Arya,828,430,25,430,81,57,155,25,192.56,33.12,32.09,36.05,33.12,189.62,200.89,,5,1
|
| 126 |
+
Abdul Samad,815,558,56,561,52,51,196,46,146.06,17.72,18.46,35.13,14.55,120.0,120.96,174.43,0,0
|
| 127 |
+
MS Bisla,798,700,39,702,93,23,339,37,114.0,21.57,16.57,48.43,20.46,106.33,128.11,160.0,4,0
|
| 128 |
+
Shakib Al Hasan,795,635,52,639,73,21,212,39,125.2,20.38,14.8,33.39,15.29,88.46,118.45,150.55,2,0
|
| 129 |
+
N Wadhera,784,566,36,566,64,43,217,31,138.52,25.29,18.9,38.34,21.78,115.25,139.35,152.0,4,0
|
| 130 |
+
ST Jayasuriya,768,529,30,532,84,39,251,29,145.18,26.48,23.25,47.45,25.6,139.85,160.74,,4,1
|
| 131 |
+
M Shahrukh Khan,767,521,52,521,48,52,187,32,147.22,23.97,19.19,35.89,14.75,112.12,133.33,171.84,2,0
|
| 132 |
+
SN Khan,746,544,43,548,86,20,194,36,137.13,20.72,19.49,35.66,17.35,137.78,110.61,184.83,2,0
|
| 133 |
+
GC Smith,739,664,29,668,94,9,295,30,111.3,24.63,15.51,44.43,25.48,95.59,137.91,163.64,4,0
|
| 134 |
+
AD Mathews,724,573,41,575,44,29,183,31,126.35,23.35,12.74,31.94,17.66,68.75,114.46,154.07,1,0
|
| 135 |
+
Abishek Porel,691,479,30,480,68,27,162,29,144.26,23.83,19.83,33.82,23.03,143.15,136.84,206.9,3,0
|
| 136 |
+
TL Suman,676,573,39,575,55,26,241,30,117.98,22.53,14.14,42.06,17.33,102.5,125.0,131.51,2,0
|
| 137 |
+
AM Nayar,672,573,50,577,55,20,223,39,117.28,17.23,13.09,38.92,13.44,84.04,108.53,161.15,0,0
|
| 138 |
+
A Raghuvanshi,672,477,26,477,70,23,160,23,140.88,29.22,19.5,33.54,25.85,140.88,140.08,144.44,4,0
|
| 139 |
+
Washington Sundar,668,521,51,522,60,20,178,37,128.21,18.05,15.36,34.17,13.1,117.65,111.81,153.27,1,0
|
| 140 |
+
GJ Bailey,663,541,36,544,59,19,198,29,122.55,22.86,14.42,36.6,18.42,99.38,95.13,187.58,2,0
|
| 141 |
+
Nithish Kumar Reddy,657,478,29,478,40,39,167,24,137.45,27.38,16.53,34.94,22.66,89.0,141.16,182.14,3,0
|
| 142 |
+
E Lewis,654,477,26,477,62,36,212,24,137.11,27.25,20.55,44.44,25.15,140.26,128.57,160.0,4,0
|
| 143 |
+
V Suryavanshi,652,303,16,303,52,61,116,16,215.18,40.75,37.29,38.28,40.75,218.4,207.69,,3,2
|
| 144 |
+
PP Chawla,624,561,86,563,56,20,245,57,111.23,10.95,13.55,43.67,7.26,114.29,91.52,124.77,0,0
|
| 145 |
+
CH Morris,618,397,49,398,41,35,119,29,155.67,21.31,19.14,29.97,12.61,211.11,113.6,173.76,2,0
|
| 146 |
+
JJ Roy,614,441,21,443,75,21,178,18,139.23,34.11,21.77,40.36,29.24,131.17,155.75,170.0,4,0
|
| 147 |
+
Rashid Khan,613,389,69,395,44,41,155,45,157.58,13.62,21.85,39.85,8.88,,130.0,165.89,1,0
|
| 148 |
+
PJ Cummins,612,400,48,402,39,41,154,33,153.0,18.55,20.0,38.5,12.75,20.0,145.88,161.33,3,0
|
| 149 |
+
JD Ryder,604,455,29,458,69,19,191,29,132.75,20.83,19.34,41.98,20.83,132.28,131.46,147.37,4,0
|
| 150 |
+
HM Amla,577,406,16,407,60,21,139,13,142.12,44.38,19.95,34.24,36.06,124.89,150.35,213.16,3,2
|
| 151 |
+
Shahbaz Ahmed,560,462,39,464,30,25,160,30,121.21,18.67,11.9,34.63,14.36,80.56,107.86,156.85,1,0
|
| 152 |
+
Naman Dhir,546,324,26,325,52,29,101,20,168.52,27.3,25.0,31.17,21.0,151.14,152.88,192.42,2,0
|
| 153 |
+
CJ Anderson,538,421,29,423,40,31,185,22,127.79,24.45,16.86,43.94,18.55,79.27,123.97,197.22,3,0
|
| 154 |
+
RS Bopara,531,453,22,453,39,16,160,19,117.22,27.95,12.14,35.32,24.14,94.44,118.31,161.54,3,0
|
| 155 |
+
JP Faulkner,527,385,45,390,36,23,127,28,136.88,18.82,15.32,32.99,11.71,70.0,93.94,166.95,0,0
|
| 156 |
+
MK Lomror,527,372,35,373,33,30,120,29,141.67,18.17,16.94,32.26,15.06,80.85,156.48,138.53,1,0
|
| 157 |
+
RD Rickelton,525,355,19,355,56,29,157,18,147.89,29.17,23.94,44.23,27.63,149.61,145.45,50.0,4,0
|
| 158 |
+
D Brevis,519,359,20,359,35,37,146,20,144.57,25.95,20.06,40.67,25.95,108.89,148.33,224.14,2,0
|
| 159 |
+
M Manhas,514,470,38,470,43,10,181,24,109.36,21.42,11.28,38.51,13.53,86.11,99.6,136.91,0,0
|
| 160 |
+
Gurkeerat Singh,511,422,32,422,55,11,156,27,121.09,18.93,15.64,36.97,15.97,90.57,107.38,160.8,2,0
|
| 161 |
+
OA Shah,506,388,22,389,34,23,133,13,130.41,38.92,14.69,34.28,23.0,107.14,120.7,151.88,4,0
|
| 162 |
+
PC Valthaty,505,414,23,418,61,20,215,22,121.98,22.95,19.57,51.93,21.96,109.76,146.15,207.69,2,1
|
| 163 |
+
SW Billings,503,385,27,388,40,20,139,26,130.65,19.35,15.58,36.1,18.63,125.64,126.13,165.22,3,0
|
| 164 |
+
SE Rutherford,500,368,26,368,29,37,156,22,135.87,22.73,17.93,42.39,19.23,26.32,136.02,148.47,1,0
|
| 165 |
+
R Powell,486,347,28,347,31,35,147,24,140.06,20.25,19.02,42.36,17.36,115.38,109.5,188.06,1,0
|
| 166 |
+
RR Rossouw,473,306,22,308,45,25,115,21,154.58,22.52,22.88,37.58,21.5,130.43,161.82,215.38,2,0
|
| 167 |
+
WG Jacks,463,303,19,304,38,29,111,16,152.81,28.94,22.11,36.63,24.37,144.44,160.76,100.0,2,1
|
| 168 |
+
DT Christian,460,394,41,398,23,19,134,28,116.75,16.43,10.66,34.01,11.22,35.71,100.52,139.57,0,0
|
| 169 |
+
A Mhatre,441,250,13,250,51,23,89,12,176.4,36.75,29.6,35.6,33.92,179.74,180.46,90.0,3,0
|
| 170 |
+
Ashutosh Sharma,426,270,20,273,27,30,95,17,157.78,25.06,21.11,35.19,21.3,,139.29,170.89,2,0
|
| 171 |
+
NLTC Perera,424,306,30,309,23,26,112,24,138.56,17.67,16.01,36.6,14.13,137.5,116.15,166.67,0,0
|
| 172 |
+
SA Asnodkar,423,337,19,339,56,10,149,19,125.52,22.26,19.58,44.21,22.26,128.21,119.42,,2,0
|
| 173 |
+
JR Hopes,417,305,19,306,49,11,111,17,136.72,24.53,19.67,36.39,21.95,126.0,148.31,143.24,4,0
|
| 174 |
+
R Ravindra,413,289,18,290,40,16,99,16,142.91,25.81,19.38,34.26,22.94,136.19,147.14,266.67,2,0
|
| 175 |
+
J Botha,409,358,28,359,39,5,133,22,114.25,18.59,12.29,37.15,14.61,80.28,114.81,137.76,1,0
|
| 176 |
+
LR Shukla,405,350,33,350,33,16,144,29,115.71,13.97,14.0,41.14,12.27,58.33,100.97,144.27,0,0
|
| 177 |
+
AL Menaria,401,354,23,356,24,18,140,22,113.28,18.23,11.86,39.55,17.43,88.0,111.52,131.67,0,0
|
| 178 |
+
MV Boucher,394,307,23,309,32,13,107,15,128.34,26.27,14.66,34.85,17.13,93.1,110.59,165.74,1,0
|
| 179 |
+
CA Pujara,390,390,22,391,50,4,187,18,100.0,21.67,13.85,47.95,17.73,93.78,103.33,137.93,1,0
|
| 180 |
+
Azhar Mahmood,388,303,21,303,39,13,116,19,128.05,20.42,17.16,38.28,18.48,90.91,126.57,152.38,2,0
|
| 181 |
+
J Fraser-McGurk,385,192,15,194,39,30,83,14,200.52,27.5,35.94,43.23,25.67,213.16,152.5,,4,0
|
| 182 |
+
Sameer Rizvi,381,273,16,273,30,22,110,13,139.56,29.31,19.05,40.29,23.81,56.25,141.05,186.27,3,0
|
| 183 |
+
A Mishra,381,417,55,419,31,5,177,30,91.37,12.7,8.63,42.45,6.93,83.33,68.37,113.4,0,0
|
| 184 |
+
KR Mayers,379,258,13,263,38,22,124,13,146.9,29.15,23.26,48.06,29.15,141.98,169.57,,4,0
|
| 185 |
+
DB Ravi Teja,375,315,25,317,35,9,116,20,119.05,18.75,13.97,36.83,15.0,94.2,118.24,140.23,1,0
|
| 186 |
+
S Sohal,368,289,20,292,34,18,136,18,127.34,20.44,17.99,47.06,18.4,128.45,137.5,44.44,2,0
|
| 187 |
+
P Negi,365,288,35,289,27,16,112,26,126.74,14.04,14.93,38.89,10.43,62.5,108.94,143.95,0,0
|
| 188 |
+
Rahmanullah Gurbaz,363,270,18,271,34,22,134,17,134.44,21.35,20.74,49.63,20.17,127.88,156.45,,2,0
|
| 189 |
+
KV Sharma,352,295,40,295,20,17,113,25,119.32,14.08,12.54,38.31,8.8,71.43,95.0,141.61,0,0
|
| 190 |
+
DJ Mitchell,351,267,15,267,28,10,75,13,131.46,27.0,14.23,28.09,23.4,137.76,127.14,131.03,2,0
|
| 191 |
+
R Bhatia,342,284,47,284,24,13,104,29,120.42,11.79,13.03,36.62,7.28,100.0,82.35,155.78,0,0
|
| 192 |
+
P Kumar,340,312,57,314,22,17,148,34,108.97,10.0,12.5,47.44,5.96,75.0,100.0,112.45,0,0
|
| 193 |
+
AP Tare,339,272,27,273,40,11,129,24,124.63,14.12,18.75,47.43,12.56,114.62,158.97,161.9,1,0
|
| 194 |
+
SN Thakur,339,256,42,257,31,13,96,28,132.42,12.11,17.19,37.5,8.07,0.0,128.7,139.42,1,0
|
| 195 |
+
B Kumar,332,361,73,362,32,3,166,37,91.97,8.97,9.7,45.98,4.55,,64.56,99.65,0,0
|
| 196 |
+
JEC Franklin,327,300,16,301,25,9,115,11,109.0,29.73,11.33,38.33,20.44,84.31,110.88,152.94,1,0
|
| 197 |
+
RN ten Doeschate,326,235,21,235,26,15,77,17,138.72,19.18,17.45,32.77,15.52,85.71,110.0,173.87,1,0
|
| 198 |
+
Anuj Rawat,318,267,21,267,26,14,114,14,119.1,22.71,14.98,42.7,15.14,97.92,93.27,189.55,1,0
|
| 199 |
+
R Vinay Kumar,310,274,42,274,21,9,103,26,113.14,11.92,10.95,37.59,7.38,,91.03,121.94,0,0
|
| 200 |
+
Aniket Verma,309,197,19,197,17,25,76,14,156.85,22.07,21.32,38.58,16.26,100.0,147.52,181.01,1,0
|
| 201 |
+
Lalit Yadav,305,285,21,290,27,7,116,15,107.02,20.33,11.93,40.7,14.52,70.45,109.6,125.0,0,0
|
| 202 |
+
DB Das,304,260,22,261,23,16,117,12,116.92,25.33,15.0,45.0,13.82,115.79,108.2,130.86,0,0
|
| 203 |
+
C de Grandhomme,303,224,21,225,18,18,82,15,135.27,20.2,16.07,36.61,14.43,11.11,141.88,138.78,0,0
|
| 204 |
+
LA Pomersbach,302,243,16,246,25,13,102,11,124.28,27.45,15.64,41.98,18.88,133.33,104.1,173.53,1,0
|
| 205 |
+
UBT Chand,300,299,20,300,32,9,155,20,100.33,15.0,13.71,51.84,15.0,94.8,109.32,87.5,1,0
|
| 206 |
+
Ramandeep Singh,299,206,26,208,17,19,71,16,145.15,18.69,17.48,34.47,11.5,80.0,115.93,186.36,0,0
|
| 207 |
+
DJG Sammy,295,241,20,241,15,18,98,15,122.41,19.67,13.69,40.66,14.75,155.56,105.62,155.56,1,0
|
| 208 |
+
SP Goswami,293,293,21,295,32,3,131,20,100.0,14.65,11.95,44.71,13.95,97.3,108.51,78.57,1,0
|
| 209 |
+
A Manohar,292,236,20,236,23,14,92,19,123.73,15.37,15.68,38.98,14.6,66.67,110.61,166.23,0,0
|
| 210 |
+
Y Nagar,285,259,20,259,20,9,101,15,110.04,19.0,11.2,39.0,14.25,45.45,90.34,144.66,0,0
|
| 211 |
+
GH Vihari,284,319,23,321,23,1,136,20,89.03,14.2,7.52,42.63,12.35,71.03,95.62,105.77,0,0
|
| 212 |
+
VVS Laxman,282,266,20,267,33,5,119,16,106.02,17.62,14.29,44.74,14.1,100.0,130.0,50.0,1,0
|
| 213 |
+
JO Holder,282,219,28,221,14,20,92,21,128.77,13.43,15.53,42.01,10.07,61.9,126.67,141.46,0,0
|
| 214 |
+
A Ashish Reddy,280,193,23,193,16,15,58,15,145.08,18.67,16.06,30.05,12.17,83.33,138.33,151.18,0,0
|
| 215 |
+
B Chipli,280,250,21,251,28,7,104,16,112.0,17.5,14.0,41.6,13.33,77.65,112.4,177.27,1,0
|
| 216 |
+
JP Inglis,278,177,11,177,26,16,69,10,157.06,27.8,23.73,38.98,25.27,162.03,154.43,147.37,1,0
|
| 217 |
+
MJ Lumb,278,191,12,194,45,6,89,10,145.55,27.8,26.7,46.6,23.17,147.62,130.43,,1,0
|
| 218 |
+
PBB Rajapaksa,277,190,13,191,22,15,70,12,145.79,23.08,19.47,36.84,21.31,158.11,141.07,50.0,1,0
|
| 219 |
+
JC Archer,275,191,34,195,15,18,71,20,143.98,13.75,17.28,37.17,8.09,0.0,119.15,156.43,0,0
|
| 220 |
+
HV Patel,274,234,43,234,17,15,99,28,117.09,9.79,13.68,42.31,6.37,,95.6,130.77,0,0
|
| 221 |
+
PK Garg,273,238,19,241,16,9,86,19,114.71,14.37,10.5,36.13,14.37,98.31,107.38,183.33,1,0
|
| 222 |
+
MJ Guptill,271,196,13,197,24,15,88,12,138.27,22.58,19.9,44.9,20.85,138.46,137.04,,1,0
|
| 223 |
+
C Connolly,270,165,7,165,24,18,61,6,163.64,45.0,25.45,36.97,38.57,115.0,189.36,209.09,2,0
|
| 224 |
+
R Sathish,270,230,24,231,22,6,87,16,117.39,16.88,12.17,37.83,11.25,0.0,102.42,144.44,0,0
|
| 225 |
+
Atharva Taide,260,179,10,179,30,8,65,9,145.25,28.89,21.23,36.31,26.0,153.39,129.51,,2,0
|
| 226 |
+
M Kaif,259,249,22,250,22,6,111,16,104.02,16.19,11.24,44.58,11.77,69.39,111.83,116.13,0,0
|
| 227 |
+
K Rabada,250,232,32,233,19,11,106,19,107.76,13.16,12.93,45.69,7.81,60.0,75.27,132.09,0,0
|
| 228 |
+
K Gowtham,247,148,27,148,15,17,51,18,166.89,13.72,21.62,34.46,9.15,114.29,142.62,190.0,0,0
|
| 229 |
+
Harpreet Brar,244,203,26,203,19,10,82,13,120.2,18.77,14.29,40.39,9.38,,87.5,138.17,0,0
|
| 230 |
+
SM Katich,241,185,11,186,26,8,80,10,130.27,24.1,18.38,43.24,21.91,129.75,131.37,130.77,2,0
|
| 231 |
+
BCJ Cutting,238,141,17,141,15,19,53,11,168.79,21.64,24.11,37.59,14.0,50.0,96.67,190.83,0,0
|
| 232 |
+
MD Mishra,237,206,17,208,24,8,97,15,115.05,15.8,15.53,47.09,13.94,108.27,120.69,153.33,0,0
|
| 233 |
+
R Shepherd,224,112,16,113,15,19,35,10,200.0,22.4,30.36,31.25,14.0,,135.71,238.57,1,0
|
| 234 |
+
Mohammad Nabi,221,151,19,152,18,12,55,17,146.36,13.0,19.87,36.42,11.63,164.71,140.0,147.3,0,0
|
| 235 |
+
K Goel,218,231,16,231,17,9,122,13,94.37,16.77,11.26,52.81,13.62,97.62,73.17,109.09,0,0
|
| 236 |
+
AA Jhunjhunwala,217,209,15,210,19,5,89,14,103.83,15.5,11.48,42.58,14.47,59.62,111.76,139.47,1,0
|
| 237 |
+
R Dhawan,210,187,22,187,18,7,84,10,112.3,21.0,13.37,44.92,9.55,,81.4,138.61,0,0
|
| 238 |
+
Kuldeep Yadav,210,255,41,255,18,3,128,15,82.35,14.0,8.24,50.2,5.12,,60.61,89.95,0,0
|
| 239 |
+
UT Yadav,208,201,48,201,16,9,96,20,103.48,10.4,12.44,47.76,4.33,,60.0,114.29,0,0
|
| 240 |
+
CA Ingram,205,179,15,180,22,5,74,12,114.53,17.08,15.08,41.34,13.67,70.37,113.68,151.43,0,0
|
| 241 |
+
PD Collingwood,203,156,7,156,9,13,57,4,130.13,50.75,14.1,36.54,29.0,116.13,114.77,178.38,3,0
|
| 242 |
+
JD Unadkat,201,169,28,169,16,7,67,14,118.93,14.36,13.61,39.64,7.18,,96.08,128.81,0,0
|
| 243 |
+
KS Bharat,199,161,8,163,12,8,56,7,123.6,28.43,12.42,34.78,24.88,110.26,124.29,200.0,1,0
|
| 244 |
+
SK Warne,198,213,27,214,14,6,100,19,92.96,10.42,9.39,46.95,7.33,,82.0,102.65,0,0
|
| 245 |
+
SP Fleming,196,162,10,165,27,3,78,9,120.99,21.78,18.52,48.15,19.6,116.0,137.84,,0,0
|
| 246 |
+
AS Raut,194,167,16,167,13,7,62,11,116.17,17.64,11.98,37.13,12.12,83.33,97.47,140.79,0,0
|
| 247 |
+
Salman Butt,193,160,7,161,30,2,75,7,120.62,27.57,20.0,46.88,27.57,110.28,139.22,200.0,1,0
|
| 248 |
+
BJ Rohrer,193,141,8,141,21,5,52,7,136.88,27.57,18.44,36.88,24.12,50.0,109.17,243.33,1,0
|
| 249 |
+
YV Takawale,192,177,10,178,26,3,95,8,108.47,24.0,16.38,53.67,19.2,92.14,136.0,241.67,0,0
|
| 250 |
+
D Ferreira,191,132,9,132,19,10,55,8,144.7,23.88,21.97,41.67,21.22,116.67,148.61,145.83,2,0
|
| 251 |
+
HC Brook,190,153,11,154,23,4,65,9,124.18,21.11,17.65,42.48,17.27,109.78,146.34,145.0,0,1
|
| 252 |
+
SB Dubey,189,109,13,109,15,12,31,7,173.39,27.0,24.77,28.44,14.54,233.33,114.29,198.53,0,0
|
| 253 |
+
Bipul Sharma,187,123,17,123,11,9,33,6,152.03,31.17,16.26,26.83,11.0,,134.62,156.7,0,0
|
| 254 |
+
MS Wade,183,177,14,177,23,2,85,13,103.39,14.08,14.12,48.02,13.07,110.81,90.91,,0,0
|
| 255 |
+
SD Hope,183,122,9,122,12,12,45,8,150.0,22.88,19.67,36.89,20.33,138.57,175.56,100.0,0,0
|
| 256 |
+
FY Fazal,183,172,11,173,22,1,67,9,106.4,20.33,13.37,38.95,16.64,98.86,111.11,120.0,0,0
|
| 257 |
+
Sikandar Raza,182,136,9,136,12,8,52,7,133.82,26.0,14.71,38.24,20.22,129.41,136.96,125.93,1,0
|
| 258 |
+
CR Brathwaite,181,110,14,111,10,16,44,14,164.55,12.93,23.64,40.0,12.93,,100.0,201.43,0,0
|
| 259 |
+
AC Voges,181,143,7,143,15,3,44,6,126.57,30.17,12.59,30.77,25.86,84.62,120.93,150.0,0,0
|
| 260 |
+
S Gopal,180,169,22,169,19,2,67,13,106.51,13.85,12.43,39.64,8.18,42.86,78.38,135.23,0,0
|
| 261 |
+
AB Agarkar,179,151,18,154,13,5,53,8,118.54,22.38,11.92,35.1,9.94,153.85,84.75,137.97,0,0
|
| 262 |
+
MF Maharoof,177,123,14,123,12,9,43,10,143.9,17.7,17.07,34.96,12.64,50.0,104.26,171.62,0,0
|
| 263 |
+
C Munro,177,141,11,141,19,8,65,9,125.53,19.67,19.15,46.1,16.09,132.38,109.68,80.0,0,0
|
| 264 |
+
DH Yagnik,170,133,17,137,23,2,55,9,127.82,18.89,18.8,41.35,10.0,0.0,120.0,139.39,0,0
|
| 265 |
+
CM Gautam,169,149,13,150,17,6,75,9,113.42,18.78,15.44,50.34,13.0,111.94,108.89,121.62,0,0
|
| 266 |
+
MG Johnson,167,163,28,164,10,7,76,14,102.45,11.93,10.43,46.63,5.96,,69.23,108.76,0,0
|
| 267 |
+
MN van Wyk,167,131,5,132,19,1,41,3,127.48,55.67,15.27,31.3,33.4,110.34,120.9,154.29,1,0
|
| 268 |
+
DW Steyn,167,160,33,160,14,3,69,22,104.38,7.59,10.62,43.12,5.06,,39.13,115.33,0,0
|
| 269 |
+
PA Reddy,164,160,10,160,15,2,65,10,102.5,16.4,10.62,40.62,16.4,96.49,109.09,300.0,0,0
|
| 270 |
+
N Jagadeesan,162,147,10,147,21,2,65,9,110.2,18.0,15.65,44.22,16.2,104.0,122.95,81.82,0,0
|
| 271 |
+
MN Samuels,161,172,14,172,9,7,84,12,93.6,13.42,9.3,48.84,11.5,37.84,104.07,158.33,0,0
|
| 272 |
+
RE van der Merwe,159,141,15,141,11,8,63,11,112.77,14.45,13.48,44.68,10.6,102.56,109.09,130.56,0,0
|
| 273 |
+
R McLaren,159,171,13,171,14,1,69,8,92.98,19.88,8.77,40.35,12.23,73.91,86.14,117.02,1,0
|
| 274 |
+
MD Choudhary,156,109,8,109,9,12,44,5,143.12,31.2,19.27,40.37,19.5,,128.95,150.7,1,0
|
| 275 |
+
V Nigam,154,89,9,89,18,8,32,6,173.03,25.67,29.21,35.96,17.11,250.0,155.88,172.34,0,0
|
| 276 |
+
MW Short,153,131,8,131,18,4,60,8,116.79,19.12,16.79,45.8,19.12,123.16,102.86,0.0,0,0
|
| 277 |
+
J Overton,151,98,8,98,14,7,33,5,154.08,30.2,21.43,33.67,18.88,,151.61,155.22,0,0
|
| 278 |
+
M Jansen,151,144,22,144,8,7,60,13,104.86,11.62,10.42,41.67,6.86,100.0,107.5,103.88,0,0
|
| 279 |
+
AD Hales,148,117,6,118,13,6,47,6,126.5,24.67,16.24,40.17,24.67,135.23,100.0,,0,0
|
| 280 |
+
D Wiese,148,100,11,101,12,7,30,6,148.0,24.67,19.0,30.0,13.45,,125.81,157.97,0,0
|
| 281 |
+
P Nissanka,147,101,7,101,19,5,39,7,145.54,21.0,23.76,38.61,21.0,156.98,80.0,,0,0
|
| 282 |
+
SM Pollock,147,111,8,111,12,8,42,8,132.43,18.38,18.02,37.84,18.38,50.0,106.06,205.71,0,0
|
| 283 |
+
S Vidyut,145,109,8,109,21,3,49,8,133.03,18.12,22.02,44.95,18.12,131.71,137.04,,1,0
|
| 284 |
+
Sachin Baby,144,115,11,118,11,5,44,10,125.22,14.4,13.91,38.26,13.09,0.0,89.39,184.78,0,0
|
| 285 |
+
N Saini,140,140,10,141,16,0,65,11,100.0,12.73,11.43,46.43,14.0,94.68,112.5,100.0,1,0
|
| 286 |
+
Anmolpreet Singh,139,115,9,115,19,3,53,9,120.87,15.44,19.13,46.09,15.44,125.25,93.75,,0,0
|
| 287 |
+
S Anirudha,136,112,12,113,9,7,45,8,121.43,17.0,14.29,40.18,11.33,106.45,95.0,158.54,1,0
|
| 288 |
+
MJ Santner,136,125,21,126,9,6,53,8,108.8,17.0,12.0,42.4,6.48,83.33,91.43,127.27,0,0
|
| 289 |
+
GD Phillips,132,111,13,112,7,8,48,11,118.92,12.0,13.51,43.24,10.15,57.89,97.83,165.22,0,0
|
| 290 |
+
SB Styris,131,132,10,133,10,3,51,7,99.24,18.71,9.85,38.64,13.1,73.91,102.2,116.67,0,0
|
| 291 |
+
W Jaffer,130,121,8,121,14,3,56,7,107.44,18.57,14.05,46.28,16.25,86.46,188.0,,1,0
|
| 292 |
+
RD Chahar,129,124,22,124,13,5,67,16,104.03,8.06,14.52,54.03,5.86,,80.65,111.83,0,0
|
| 293 |
+
Kamran Akmal,128,77,6,78,13,8,33,4,166.23,32.0,27.27,42.86,21.33,124.39,237.5,166.67,1,0
|
| 294 |
+
P Dogra,127,138,12,138,4,5,60,12,92.03,10.58,6.52,43.48,10.58,,80.21,119.05,0,0
|
| 295 |
+
TK Curran,127,107,10,107,10,3,36,5,118.69,25.4,12.15,33.64,12.7,,109.52,131.82,1,0
|
| 296 |
+
UT Khawaja,127,99,6,100,14,3,37,5,128.28,25.4,17.17,37.37,21.17,137.5,89.47,,0,0
|
| 297 |
+
M Morkel,126,89,20,90,11,5,32,11,141.57,11.45,17.98,35.96,6.3,,71.43,154.67,0,0
|
| 298 |
+
SS Prabhudessai,126,105,10,106,11,4,48,9,120.0,14.0,14.29,45.71,12.6,87.5,132.26,121.05,0,0
|
| 299 |
+
MC Juneja,125,128,7,128,11,1,48,7,97.66,17.86,9.38,37.5,17.86,96.3,102.17,55.56,0,0
|
| 300 |
+
MM Sharma,125,136,30,136,9,4,67,17,91.91,7.35,9.56,49.26,4.17,,85.0,97.37,0,0
|
| 301 |
+
BB Samantray,125,113,8,113,13,2,45,5,110.62,25.0,13.27,39.82,15.62,84.62,114.29,129.17,1,0
|
| 302 |
+
B Lee,124,96,19,97,8,8,40,10,129.17,12.4,16.67,41.67,6.53,,90.91,140.54,0,0
|
| 303 |
+
AB McDonald,123,100,9,100,9,4,35,5,123.0,24.6,13.0,35.0,13.67,157.89,78.95,125.81,0,0
|
| 304 |
+
Harpreet Singh,123,118,8,119,10,3,49,6,104.24,20.5,11.02,41.53,15.38,97.06,115.79,88.89,0,0
|
| 305 |
+
DL Chahar,123,89,17,89,6,8,33,8,138.2,15.38,15.73,37.08,7.24,0.0,172.5,114.89,0,0
|
| 306 |
+
DL Vettori,121,112,16,113,11,2,40,7,108.04,17.29,11.61,35.71,7.56,,96.77,122.0,0,0
|
| 307 |
+
NK Patel,121,119,6,119,14,1,56,5,101.68,24.2,12.61,47.06,20.17,78.79,108.57,172.22,1,0
|
| 308 |
+
AC Blizzard,120,90,7,90,21,2,47,7,133.33,17.14,25.56,52.22,17.14,129.41,200.0,,1,0
|
| 309 |
+
TG Southee,120,106,19,107,8,4,45,11,113.21,10.91,11.32,42.45,6.32,,55.17,135.06,0,0
|
| 310 |
+
Arshad Khan,119,88,10,88,5,9,37,6,135.23,19.83,15.91,42.05,11.9,,120.59,144.44,1,0
|
| 311 |
+
RJ Harris,117,111,21,112,6,3,46,12,105.41,9.75,8.11,41.44,5.57,,81.58,117.81,0,0
|
| 312 |
+
Misbah-ul-Haq,117,81,8,81,10,6,30,9,144.44,13.0,19.75,37.04,14.62,131.82,109.09,266.67,0,0
|
| 313 |
+
Z Khan,117,140,27,141,11,2,74,15,83.57,7.8,9.29,52.86,4.33,0.0,40.0,104.12,0,0
|
| 314 |
+
KK Cooper,116,67,12,68,9,8,27,9,173.13,12.89,25.37,40.3,9.67,122.22,152.0,203.03,0,0
|
| 315 |
+
Aman Hakim Khan,115,104,10,104,8,6,50,9,110.58,12.78,13.46,48.08,11.5,80.0,101.43,137.93,1,0
|
| 316 |
+
DJM Short,115,99,7,99,11,5,45,7,116.16,16.43,16.16,45.45,16.43,83.82,187.1,,0,0
|
| 317 |
+
Mohammed Shami,115,112,33,112,9,5,55,18,102.68,6.39,12.5,49.11,3.48,,94.44,104.26,0,0
|
| 318 |
+
M Kartik,113,107,14,108,7,1,31,7,105.61,16.14,7.48,28.97,8.07,,110.26,102.94,0,0
|
| 319 |
+
Mohammed Siraj,112,126,22,128,10,4,70,11,88.89,10.18,11.11,55.56,5.09,,69.23,91.15,0,0
|
| 320 |
+
MA Starc,111,120,21,120,11,0,51,10,92.5,11.1,9.17,42.5,5.29,,100.0,88.31,0,0
|
| 321 |
+
DJ Harris,111,101,4,101,11,5,50,3,109.9,37.0,15.84,49.5,27.75,89.04,164.29,,0,0
|
| 322 |
+
LJ Wright,106,59,5,60,16,3,19,4,179.66,26.5,32.2,32.2,21.2,100.0,125.0,240.0,0,0
|
| 323 |
+
JDP Oram,106,107,11,108,6,5,47,8,99.07,13.25,10.28,43.93,9.64,,77.78,142.86,0,0
|
| 324 |
+
DS Kulkarni,104,108,20,108,7,2,45,9,96.3,11.56,8.33,41.67,5.2,,41.18,106.59,0,0
|
| 325 |
+
RJ Quiney,103,102,7,102,12,3,54,7,100.98,14.71,14.71,52.94,14.71,89.47,134.62,,1,0
|
| 326 |
+
JG Bethell,101,60,4,60,13,5,24,4,168.33,25.25,30.0,40.0,25.25,176.0,130.0,,1,0
|
| 327 |
+
SD Chitnis,99,88,8,89,10,2,35,7,112.5,14.14,13.64,39.77,12.38,58.33,117.39,126.67,0,0
|
| 328 |
+
Azmatullah Omarzai,99,76,9,76,8,5,29,8,130.26,12.38,17.11,38.16,11.0,,126.67,143.75,0,0
|
| 329 |
+
MS Gony,99,70,15,71,6,8,33,9,141.43,11.0,20.0,47.14,6.6,,90.91,164.58,0,0
|
| 330 |
+
CJ Ferguson,98,117,8,117,9,0,56,6,83.76,16.33,7.69,47.86,12.25,68.75,85.51,106.25,0,0
|
| 331 |
+
MJ Clarke,98,94,6,94,12,0,41,5,104.26,19.6,12.77,43.62,16.33,107.89,88.89,,0,0
|
| 332 |
+
PN Mankad,97,72,5,73,13,2,29,3,134.72,32.33,20.83,40.28,19.4,117.5,163.64,140.0,1,0
|
| 333 |
+
PHKD Mendis,92,72,5,72,7,2,25,4,127.78,23.0,12.5,34.72,18.4,55.56,164.86,100.0,0,0
|
| 334 |
+
PR Shah,92,90,9,91,9,2,44,8,102.22,11.5,12.22,48.89,10.22,97.3,100.0,118.75,0,0
|
| 335 |
+
JDS Neesham,92,93,10,93,6,2,40,8,98.92,11.5,8.6,43.01,9.2,,105.26,88.89,0,0
|
| 336 |
+
DJ Jacobs,92,98,7,98,10,4,59,7,93.88,13.14,14.29,60.2,13.14,90.32,160.0,,0,0
|
| 337 |
+
AJ Tye,91,75,13,76,6,5,35,8,121.33,11.38,14.67,46.67,7.0,,142.31,110.2,0,0
|
| 338 |
+
RT Ponting,91,128,9,128,5,2,68,8,71.09,11.38,5.47,53.12,10.11,67.05,80.0,,0,0
|
| 339 |
+
S Rana,91,79,8,81,9,1,32,5,115.19,18.2,12.66,40.51,11.38,87.5,64.29,148.78,0,0
|
| 340 |
+
AD Nath,90,98,10,98,7,2,44,10,91.84,9.0,9.18,44.9,9.0,76.47,96.83,88.89,0,0
|
| 341 |
+
Iqbal Abdulla,88,82,13,84,9,1,33,1,107.32,88.0,12.2,40.24,6.77,,90.62,118.0,0,0
|
| 342 |
+
SL Malinga,88,99,20,99,6,5,55,12,88.89,7.33,11.11,55.56,4.4,,80.0,89.89,0,0
|
| 343 |
+
AP Majumdar,87,76,4,76,7,2,27,4,114.47,21.75,11.84,35.53,21.75,126.32,110.53,,0,0
|
| 344 |
+
Ankit Sharma,87,67,10,67,7,4,27,7,129.85,12.43,16.42,40.3,8.7,116.67,186.67,110.71,0,0
|
| 345 |
+
TA Boult,86,84,24,84,5,3,37,9,102.38,9.56,9.52,44.05,3.58,,100.0,102.99,0,0
|
| 346 |
+
MJ McClenaghan,85,69,19,70,5,7,36,11,123.19,7.73,17.39,52.17,4.47,0.0,136.36,119.57,0,0
|
| 347 |
+
RE Levi,83,73,6,73,10,4,40,6,113.7,13.83,19.18,54.79,13.83,115.62,100.0,,1,0
|
| 348 |
+
NM Coulter-Nile,82,72,16,72,7,4,36,10,113.89,8.2,15.28,50.0,5.12,,73.68,128.3,0,0
|
| 349 |
+
FH Allen,81,44,5,44,13,4,22,5,184.09,16.2,38.64,50.0,16.2,184.09,,,0,0
|
| 350 |
+
Shahid Afridi,81,46,9,46,7,6,20,8,176.09,10.12,28.26,43.48,9.0,226.32,94.12,220.0,0,0
|
| 351 |
+
CJ Jordan,81,77,12,77,3,3,34,9,105.19,9.0,7.79,44.16,6.75,,60.0,121.05,0,0
|
| 352 |
+
PWH de Silva,81,88,19,88,7,1,41,15,92.05,5.4,9.09,46.59,4.26,,80.85,104.88,0,0
|
| 353 |
+
LA Carseldine,81,66,5,68,11,0,27,3,122.73,27.0,16.67,40.91,16.2,110.26,117.65,180.0,0,0
|
| 354 |
+
WPUJC Vaas,81,72,11,73,2,3,24,7,112.5,11.57,6.94,33.33,7.36,,108.33,114.58,0,0
|
| 355 |
+
RV Patel,80,73,7,73,6,2,26,5,109.59,16.0,10.96,35.62,11.43,,86.11,132.43,0,0
|
| 356 |
+
AD Mascarenhas,79,78,11,78,5,1,28,10,101.28,7.9,7.69,35.9,7.18,200.0,91.49,110.34,0,0
|
| 357 |
+
CR Woakes,78,77,12,77,7,2,33,5,101.3,15.6,11.69,42.86,6.5,,86.67,110.64,0,0
|
| 358 |
+
JR Philippe,78,77,5,77,9,1,35,4,101.3,19.5,12.99,45.45,15.6,100.0,114.29,50.0,0,0
|
| 359 |
+
KA Jamieson,77,74,10,74,6,4,40,4,104.05,19.25,13.51,54.05,7.7,,76.19,140.62,0,0
|
| 360 |
+
IR Jaggi,76,97,7,97,6,0,48,5,78.35,15.2,6.19,49.48,10.86,61.7,94.59,92.31,0,0
|
| 361 |
+
B Akhil,76,55,11,55,5,5,24,7,138.18,10.86,18.18,43.64,6.91,,108.0,163.33,0,0
|
| 362 |
+
TR Birt,75,57,5,58,9,2,25,5,131.58,15.0,19.3,43.86,15.0,20.0,95.83,182.14,0,0
|
| 363 |
+
JJ Bumrah,75,86,29,87,6,1,39,8,87.21,9.38,8.14,45.35,2.59,,137.5,82.05,0,0
|
| 364 |
+
RR Sarwan,73,75,4,75,6,1,31,3,97.33,24.33,9.33,41.33,18.25,106.38,82.14,,0,0
|
| 365 |
+
M Klinger,73,75,4,77,9,0,34,4,97.33,18.25,12.0,45.33,18.25,96.61,100.0,,0,0
|
| 366 |
+
LH Ferguson,72,46,8,47,7,2,12,4,156.52,18.0,19.57,26.09,9.0,,60.0,168.29,0,0
|
| 367 |
+
Urvil Patel,72,37,4,37,6,6,15,4,194.59,18.0,32.43,40.54,18.0,176.92,236.36,,0,0
|
| 368 |
+
SK Rasheed,71,67,5,67,9,2,38,5,105.97,14.2,16.42,56.72,14.2,107.81,66.67,,0,0
|
| 369 |
+
J Suchith,70,61,9,61,6,3,29,4,114.75,17.5,14.75,47.54,7.78,,68.57,176.92,0,0
|
| 370 |
+
AA Bilakhia,69,84,7,85,5,0,39,5,82.14,13.8,5.95,46.43,9.86,71.05,42.11,125.93,0,0
|
| 371 |
+
Vivrant Sharma,69,47,1,47,9,2,16,1,146.81,69.0,23.4,34.04,69.0,111.54,190.48,,1,0
|
| 372 |
+
Avesh Khan,68,46,16,46,7,4,22,3,147.83,22.67,23.91,47.83,4.25,,300.0,133.33,0,0
|
| 373 |
+
RR Powar,67,64,9,64,6,1,27,3,104.69,22.33,10.94,42.19,7.44,,27.27,120.75,0,0
|
| 374 |
+
HR Shokeen,66,65,5,65,9,0,31,3,101.54,22.0,13.85,47.69,13.2,12.5,111.9,120.0,0,0
|
| 375 |
+
R Sharma,66,75,19,75,5,3,46,11,88.0,6.0,10.67,61.33,3.47,,150.0,80.6,0,0
|
| 376 |
+
WD Parnell,65,80,13,80,4,1,37,10,81.25,6.5,6.25,46.25,5.0,78.57,76.47,83.67,0,0
|
| 377 |
+
AS Roy,65,53,12,53,5,2,20,7,122.64,9.29,13.21,37.74,5.42,80.0,72.22,160.0,0,0
|
| 378 |
+
Mohammad Hafeez,64,83,8,83,7,2,50,8,77.11,8.0,10.84,60.24,8.0,75.68,73.81,125.0,0,0
|
| 379 |
+
S Arora,63,45,6,45,4,5,19,5,140.0,12.6,20.0,42.22,10.5,,136.36,141.18,0,0
|
| 380 |
+
Anirudh Singh,63,66,4,66,6,1,31,4,95.45,15.75,10.61,46.97,15.75,90.0,97.3,100.0,0,0
|
| 381 |
+
A Flintoff,62,53,3,53,5,2,20,2,116.98,31.0,13.21,37.74,20.67,107.14,96.15,169.23,0,0
|
| 382 |
+
SP Jackson,61,57,8,57,5,1,20,6,107.02,10.17,10.53,35.09,7.62,111.11,114.29,95.0,0,0
|
| 383 |
+
Sandeep Sharma,60,75,26,76,4,0,31,5,80.0,12.0,5.33,41.33,2.31,,80.0,80.0,0,0
|
| 384 |
+
S Aravind,59,57,10,57,7,0,24,3,103.51,19.67,12.28,42.11,5.9,,81.25,112.2,0,0
|
| 385 |
+
Harshit Rana,59,57,10,57,5,3,33,7,103.51,8.43,14.04,57.89,5.9,,131.82,85.71,0,0
|
| 386 |
+
C Bosch,58,36,3,36,5,3,12,2,161.11,29.0,22.22,33.33,19.33,,40.0,180.65,0,0
|
| 387 |
+
Kartik Sharma,58,51,5,51,3,4,26,5,113.73,11.6,13.73,50.98,11.6,225.0,100.0,115.38,0,0
|
| 388 |
+
MG Bracewell,58,47,4,47,6,1,15,2,123.4,29.0,14.89,31.91,14.5,66.67,143.33,100.0,0,0
|
| 389 |
+
I Sharma,57,69,21,69,4,2,37,7,82.61,8.14,8.7,53.62,2.71,,81.25,83.02,0,0
|
| 390 |
+
Vishnu Vinod,56,56,6,57,3,3,26,6,100.0,9.33,10.71,46.43,9.33,47.62,127.59,150.0,0,0
|
| 391 |
+
WA Mota,56,75,8,75,2,0,29,5,74.67,11.2,2.67,38.67,7.0,,70.49,92.86,0,0
|
| 392 |
+
A Kamboj,55,47,9,47,4,2,17,2,117.02,27.5,12.77,36.17,6.11,,100.0,117.78,0,0
|
| 393 |
+
M Rawat,55,69,11,69,4,1,33,5,79.71,11.0,7.25,47.83,5.0,0.0,66.67,94.59,0,0
|
| 394 |
+
DJ Willey,53,62,5,62,7,0,34,3,85.48,17.67,11.29,54.84,10.6,64.29,74.19,123.53,0,0
|
| 395 |
+
A Chopra,53,71,6,71,7,0,41,5,74.65,10.6,9.86,57.75,8.83,67.44,85.71,,0,0
|
| 396 |
+
PVD Chameera,53,45,11,45,3,3,19,3,117.78,17.67,13.33,42.22,4.82,,100.0,120.0,0,0
|
| 397 |
+
TU Deshpande,53,34,9,34,2,4,12,3,155.88,17.67,17.65,35.29,5.89,,,155.88,0,0
|
| 398 |
+
RP Singh,52,76,28,76,2,1,39,15,68.42,3.47,3.95,51.32,1.86,,20.0,75.76,0,0
|
| 399 |
+
Shoaib Malik,52,46,5,47,5,0,14,4,113.04,13.0,10.87,30.43,10.4,116.67,120.83,50.0,0,0
|
| 400 |
+
Swapnil Singh,51,45,9,45,3,3,20,5,113.33,10.2,13.33,44.44,5.67,,96.15,136.84,0,0
|
| 401 |
+
Shivam Mavi,51,56,11,56,4,2,30,9,91.07,5.67,10.71,53.57,4.64,,33.33,102.13,0,0
|
| 402 |
+
KB Arun Karthik,51,51,8,51,4,1,22,5,100.0,10.2,9.8,43.14,6.38,,118.18,86.21,0,0
|
| 403 |
+
OF Smith,51,44,6,44,1,5,23,3,115.91,17.0,13.64,52.27,8.5,,41.67,143.75,0,0
|
| 404 |
+
R Rampaul,51,49,7,50,3,2,24,5,104.08,10.2,10.2,48.98,7.29,,104.76,103.57,0,0
|
| 405 |
+
RV Gomez,50,51,9,51,5,1,25,7,98.04,7.14,11.76,49.02,5.56,0.0,40.0,125.71,0,0
|
| 406 |
+
VR Aaron,50,71,12,72,2,2,42,4,70.42,12.5,5.63,59.15,4.17,,20.0,74.24,0,0
|
| 407 |
+
SB Bangar,49,58,7,58,1,3,28,6,84.48,8.17,6.9,48.28,7.0,,48.78,170.59,0,0
|
| 408 |
+
A Nortje,49,50,14,50,6,0,24,6,98.0,8.17,12.0,48.0,3.5,,50.0,104.55,0,0
|
| 409 |
+
PR Veer,49,36,2,36,7,1,13,1,136.11,49.0,22.22,36.11,24.5,,153.57,75.0,0,0
|
| 410 |
+
AG Paunikar,49,55,5,58,9,0,36,5,89.09,9.8,16.36,65.45,9.8,89.09,,,0,0
|
| 411 |
+
AS Yadav,49,39,6,39,5,2,17,7,125.64,7.0,17.95,43.59,8.17,,100.0,134.48,0,0
|
| 412 |
+
T Kohler-Cadmore,48,54,3,54,7,1,33,3,88.89,16.0,14.81,61.11,16.0,90.57,0.0,,0,0
|
| 413 |
+
M Markande,48,42,10,42,5,1,18,3,114.29,16.0,14.29,42.86,4.8,,42.86,128.57,0,0
|
| 414 |
+
Yashpal Singh,47,65,4,66,5,0,37,4,72.31,11.75,7.69,56.92,11.75,48.65,100.0,110.0,0,0
|
| 415 |
+
Ravi Bishnoi,45,69,18,69,2,2,44,11,65.22,4.09,5.8,63.77,2.5,,62.5,66.67,0,0
|
| 416 |
+
TL Seifert,45,41,6,41,6,1,22,6,109.76,7.5,17.07,53.66,7.5,116.22,,50.0,0,0
|
| 417 |
+
DR Sams,44,44,13,44,1,3,22,10,100.0,4.4,9.09,50.0,3.38,16.67,95.0,133.33,0,0
|
| 418 |
+
Sunny Singh,43,31,5,31,6,1,12,4,138.71,10.75,22.58,38.71,8.6,160.0,166.67,77.78,0,0
|
| 419 |
+
AB Barath,42,42,3,42,5,1,21,2,100.0,21.0,14.29,50.0,14.0,111.11,105.26,40.0,0,0
|
| 420 |
+
SK Trivedi,42,58,14,59,3,1,34,8,72.41,5.25,6.9,58.62,3.0,,40.0,75.47,0,0
|
| 421 |
+
A Nehra,41,60,17,62,3,1,36,8,68.33,5.12,6.67,60.0,2.41,,166.67,63.16,0,0
|
| 422 |
+
J Yadav,40,36,4,36,2,1,12,2,111.11,20.0,8.33,33.33,10.0,,125.0,104.17,0,0
|
| 423 |
+
Rasikh Salam,40,40,6,40,5,0,19,5,100.0,8.0,12.5,47.5,6.67,,61.9,142.11,0,0
|
| 424 |
+
BR Dunk,40,35,3,35,7,0,19,3,114.29,13.33,20.0,54.29,13.33,114.29,,,0,0
|
| 425 |
+
DJ Thornely,39,53,4,53,2,2,30,3,73.58,13.0,7.55,56.6,9.75,28.57,124.0,,0,0
|
| 426 |
+
MM Patel,39,41,12,41,5,0,18,5,95.12,7.8,12.2,43.9,3.25,,0.0,105.41,0,0
|
| 427 |
+
S Nadeem,39,87,20,87,2,0,57,16,44.83,2.44,2.3,65.52,1.95,,45.71,44.23,0,0
|
| 428 |
+
YS Chahal,37,86,16,86,0,0,54,6,43.02,6.17,0.0,62.79,2.31,,20.0,52.46,0,0
|
| 429 |
+
Anureet Singh,36,47,8,47,2,1,22,4,76.6,9.0,6.38,46.81,4.5,,58.33,82.86,0,0
|
| 430 |
+
Joginder Sharma,36,30,5,30,1,2,10,4,120.0,9.0,10.0,33.33,7.2,,100.0,126.09,0,0
|
| 431 |
+
L Balaji,36,49,13,49,2,1,28,7,73.47,5.14,6.12,57.14,2.77,,44.44,80.0,0,0
|
| 432 |
+
KW Richardson,36,39,4,39,2,1,17,3,92.31,12.0,7.69,43.59,9.0,,104.35,75.0,0,0
|
| 433 |
+
M Ashwin,35,50,12,50,2,1,27,8,70.0,4.38,6.0,54.0,2.92,,38.89,87.5,0,0
|
| 434 |
+
B Sumanth,35,37,4,37,3,0,14,1,94.59,35.0,8.11,37.84,8.75,,75.0,109.52,0,0
|
| 435 |
+
A Kumble,35,47,15,47,3,0,22,2,74.47,17.5,6.38,46.81,2.33,,75.0,74.36,0,0
|
| 436 |
+
L Ronchi,34,34,5,34,6,1,23,3,100.0,11.33,20.59,67.65,6.8,100.0,,,0,0
|
| 437 |
+
S Sreesanth,34,55,12,55,6,0,41,3,61.82,11.33,10.91,74.55,2.83,,0.0,62.96,0,0
|
| 438 |
+
Imran Tahir,33,37,8,37,5,0,21,4,89.19,8.25,13.51,56.76,4.12,,40.0,107.41,0,0
|
| 439 |
+
Navdeep Saini,33,37,7,37,3,0,16,4,89.19,8.25,8.11,43.24,4.71,0.0,50.0,112.5,0,0
|
| 440 |
+
Basil Thampi,32,35,7,35,1,1,14,2,91.43,16.0,5.71,40.0,4.57,,50.0,100.0,0,0
|
| 441 |
+
RJ Peterson,32,30,5,30,3,1,13,3,106.67,10.67,13.33,43.33,6.4,,93.33,120.0,0,0
|
| 442 |
+
S Sriram,31,36,2,36,3,0,16,2,86.11,15.5,8.33,44.44,15.5,116.67,70.83,,0,0
|
| 443 |
+
Arshdeep Singh,31,46,13,46,4,0,31,6,67.39,5.17,8.7,67.39,2.38,,66.67,67.5,0,0
|
| 444 |
+
NS Naik,31,50,4,50,2,0,28,4,62.0,7.75,4.0,56.0,7.75,43.75,72.22,68.75,0,0
|
| 445 |
+
G Coetzee,31,33,7,33,2,2,18,6,93.94,5.17,12.12,54.55,4.43,,83.33,100.0,0,0
|
| 446 |
+
Noor Ahmad,30,54,14,54,2,1,37,10,55.56,3.0,5.56,68.52,2.14,,18.75,71.05,0,0
|
| 447 |
+
AS Joseph,27,32,5,32,3,0,16,1,84.38,27.0,9.38,50.0,5.4,,110.0,72.73,0,0
|
| 448 |
+
AS Rajpoot,26,41,7,41,2,1,27,4,63.41,6.5,7.32,65.85,3.71,,16.67,71.43,0,0
|
| 449 |
+
PJ Sangwan,26,44,14,44,1,0,24,8,59.09,3.25,2.27,54.55,1.86,,44.44,62.86,0,0
|
| 450 |
+
AB Dinda,26,48,16,48,2,0,29,9,54.17,2.89,4.17,60.42,1.62,,72.73,48.65,0,0
|
| 451 |
+
CV Varun,26,48,12,48,2,0,29,3,54.17,8.67,4.17,60.42,2.17,,11.11,64.1,0,0
|
| 452 |
+
S Chanderpaul,25,31,3,31,4,0,18,3,80.65,8.33,12.9,58.06,8.33,80.65,,,0,0
|
| 453 |
+
Tanush Kotian,24,31,1,31,3,0,17,1,77.42,24.0,9.68,54.84,24.0,76.0,83.33,,0,0
|
| 454 |
+
P Dubey,23,33,2,33,2,0,17,1,69.7,23.0,6.06,51.52,11.5,,84.21,50.0,0,0
|
| 455 |
+
KL Nagarkoti,22,33,7,33,1,0,16,4,66.67,5.5,3.03,48.48,3.14,,46.67,83.33,0,0
|
| 456 |
+
B Indrajith,21,30,3,30,2,0,17,3,70.0,7.0,6.67,56.67,7.0,72.41,0.0,,0,0
|
| 457 |
+
S Kaul,20,36,9,36,1,0,23,3,55.56,6.67,2.78,63.89,2.22,,40.0,58.06,0,0
|
| 458 |
+
C Sakariya,20,30,7,31,3,0,20,5,66.67,4.0,10.0,66.67,2.86,,20.0,76.0,0,0
|
| 459 |
+
PV Tambe,18,38,6,39,1,0,23,1,47.37,18.0,2.63,60.53,3.0,,60.0,42.86,0,0
|
| 460 |
+
M Theekshana,17,34,6,34,0,1,22,3,50.0,5.67,2.94,64.71,2.83,,16.67,68.18,0,0
|
| 461 |
+
PP Ojha,16,44,19,45,0,0,29,10,36.36,1.6,0.0,65.91,0.84,,0.0,39.02,0,0
|
data/processed/bowling_features.csv
ADDED
|
@@ -0,0 +1,403 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
bowler,balls_bowled,runs_conceded,wickets,dot_balls,wides,no_balls,matches_bowled,fours_conceded,sixes_conceded,economy_rate,bowling_average,bowling_sr,dot_ball_pct,wickets_per_match,economy_powerplay,economy_middle,economy_death,three_wicket_haul,five_wicket_haul
|
| 2 |
+
YS Chahal,3961,5355,237,1370,98,9,179,308,264,8.11,22.59,16.71,34.59,1.32,7.52,8.02,9.91,25,1
|
| 3 |
+
B Kumar,4422,5780,228,1937,138,12,198,579,177,7.84,25.35,19.39,43.8,1.15,6.7,8.42,9.66,21,2
|
| 4 |
+
SP Narine,4521,5213,221,1794,61,4,194,331,196,6.92,23.59,20.46,39.68,1.14,6.71,6.69,7.96,18,3
|
| 5 |
+
DJ Bravo,3120,4436,207,1054,167,9,158,349,155,8.53,21.43,15.07,33.78,1.31,7.53,7.82,9.91,21,0
|
| 6 |
+
JJ Bumrah,3531,4374,206,1501,77,33,152,384,130,7.43,21.23,17.14,42.51,1.36,6.89,6.82,8.47,31,2
|
| 7 |
+
R Ashwin,4713,5721,205,1666,151,4,217,334,221,7.28,27.91,22.99,35.35,0.94,6.93,7.26,9.06,10,1
|
| 8 |
+
PP Chawla,3850,5179,201,1358,43,2,191,374,222,8.07,25.77,19.15,35.27,1.05,7.68,7.99,10.02,15,0
|
| 9 |
+
SL Malinga,2828,3486,188,1218,128,18,122,314,86,7.4,18.54,15.04,43.07,1.54,6.51,7.74,8.19,24,2
|
| 10 |
+
RA Jadeja,4177,5385,185,1381,61,5,232,320,229,7.74,29.11,22.58,33.06,0.8,7.32,7.66,9.2,18,1
|
| 11 |
+
A Mishra,3371,4193,183,1220,52,21,162,239,184,7.46,22.91,18.42,36.19,1.13,6.88,7.31,9.85,20,1
|
| 12 |
+
Rashid Khan,3387,4126,174,1273,29,0,144,261,175,7.31,23.71,19.47,37.58,1.21,7.15,7.14,8.59,18,1
|
| 13 |
+
Sandeep Sharma,3174,4316,169,1268,91,12,141,408,153,8.16,25.54,18.78,39.95,1.2,7.11,8.29,10.71,17,1
|
| 14 |
+
HV Patel,2495,3747,168,874,106,16,119,317,148,9.01,22.3,14.85,35.03,1.41,8.87,8.32,10.32,20,2
|
| 15 |
+
UT Yadav,3057,4442,163,1262,110,23,147,473,151,8.72,27.25,18.75,41.28,1.11,7.95,8.4,11.11,21,0
|
| 16 |
+
Harbhajan Singh,3416,4101,161,1312,76,4,160,296,145,7.2,25.47,21.22,38.41,1.01,6.81,7.27,8.75,15,1
|
| 17 |
+
Mohammed Shami,2823,4090,157,1208,79,7,127,423,154,8.69,26.05,17.98,42.79,1.24,7.78,8.78,11.05,15,0
|
| 18 |
+
TA Boult,2758,3916,152,1176,85,2,122,435,134,8.52,25.76,18.14,42.64,1.25,7.43,9.26,10.72,13,0
|
| 19 |
+
MM Sharma,2416,3537,149,847,48,7,119,342,131,8.78,23.74,16.21,35.06,1.25,8.03,8.17,10.38,19,2
|
| 20 |
+
AR Patel,3471,4342,144,1178,47,0,168,274,179,7.51,30.15,24.1,33.94,0.86,7.38,7.45,8.58,4,0
|
| 21 |
+
K Rabada,2111,3112,141,873,67,11,92,284,136,8.85,22.07,14.97,41.35,1.53,8.56,8.38,9.82,17,0
|
| 22 |
+
AD Russell,1811,2909,133,648,64,10,121,274,130,9.64,21.87,13.62,35.78,1.1,8.48,9.41,11.14,14,2
|
| 23 |
+
R Vinay Kumar,2127,3041,127,801,48,11,104,296,100,8.58,23.94,16.75,37.66,1.22,7.3,8.45,10.7,15,1
|
| 24 |
+
JD Unadkat,2355,3541,125,788,62,1,115,295,158,9.02,28.33,18.84,33.46,1.09,7.93,8.48,11.57,14,2
|
| 25 |
+
Mohammed Siraj,2505,3670,121,1121,115,8,116,363,157,8.79,30.33,20.7,44.75,1.04,8.21,8.37,10.33,11,0
|
| 26 |
+
SN Thakur,2190,3474,121,782,103,10,107,331,138,9.52,28.71,18.1,35.71,1.13,9.28,8.65,11.02,10,0
|
| 27 |
+
A Nehra,1908,2537,121,828,57,9,88,279,76,7.98,20.97,15.77,43.4,1.38,7.57,7.97,9.06,18,1
|
| 28 |
+
Z Khan,2200,2860,119,929,74,2,99,312,64,7.8,24.03,18.49,42.23,1.2,6.88,9.26,9.08,12,0
|
| 29 |
+
Arshdeep Singh,1931,2954,114,735,84,5,89,318,92,9.18,25.91,16.94,38.06,1.28,8.79,9.22,9.79,13,1
|
| 30 |
+
Kuldeep Yadav,2211,3043,113,690,38,2,103,155,164,8.26,26.93,19.57,31.21,1.1,7.67,8.29,8.54,13,0
|
| 31 |
+
CV Varun,2028,2619,109,776,28,6,89,180,119,7.75,24.03,18.61,38.26,1.22,7.88,7.43,9.41,10,1
|
| 32 |
+
SR Watson,2029,2742,107,850,95,13,105,293,74,8.11,25.63,18.96,41.89,1.02,7.19,7.6,10.35,12,0
|
| 33 |
+
CH Morris,1726,2377,107,708,70,5,81,222,79,8.26,22.21,16.13,41.02,1.32,7.81,8.26,8.83,12,1
|
| 34 |
+
KH Pandya,2571,3265,106,845,58,3,140,219,117,7.62,30.8,24.25,32.87,0.76,7.57,7.55,8.83,11,0
|
| 35 |
+
DW Steyn,2182,2583,105,1064,93,7,95,284,55,7.1,24.6,20.78,48.76,1.11,6.43,6.72,8.93,11,0
|
| 36 |
+
P Kumar,2524,3342,102,1147,112,1,119,338,104,7.94,32.76,24.75,45.44,0.86,6.88,9.33,10.44,6,0
|
| 37 |
+
RP Singh,1775,2417,100,790,86,13,82,254,70,8.17,24.17,17.75,44.51,1.22,7.38,8.74,9.55,12,1
|
| 38 |
+
I Sharma,2426,3465,100,1077,97,23,117,391,102,8.57,34.65,24.26,44.39,0.85,7.58,9.63,11.46,6,1
|
| 39 |
+
IK Pathan,2043,2711,99,885,69,1,101,293,82,7.96,27.38,20.64,43.32,0.98,7.21,8.14,9.56,8,0
|
| 40 |
+
Avesh Khan,1733,2672,99,638,51,4,80,266,109,9.25,26.99,17.51,36.81,1.24,9.35,8.22,10.07,12,0
|
| 41 |
+
PP Ojha,1899,2399,99,708,44,2,90,146,97,7.58,24.23,19.18,37.28,1.1,7.26,7.44,9.42,8,0
|
| 42 |
+
KK Ahmed,1672,2521,96,735,64,5,76,255,113,9.05,26.26,17.42,43.96,1.26,8.33,8.58,11.23,12,0
|
| 43 |
+
JA Morkel,1723,2409,96,683,71,13,87,264,56,8.39,25.09,17.95,39.64,1.1,8.62,7.15,9.64,10,0
|
| 44 |
+
M Prasidh Krishna,1678,2516,94,709,63,16,73,265,94,9.0,26.77,17.85,42.25,1.29,8.3,8.14,11.04,10,1
|
| 45 |
+
DL Chahar,1974,2708,92,866,72,5,98,311,81,8.23,29.43,21.46,43.87,0.94,8.0,8.47,10.08,7,1
|
| 46 |
+
DS Kulkarni,1787,2513,91,765,82,7,92,272,81,8.44,27.62,19.64,42.81,0.99,7.64,8.92,10.94,9,0
|
| 47 |
+
KV Sharma,1586,2263,89,540,25,0,87,125,132,8.56,25.43,17.82,34.05,1.02,7.0,8.79,10.88,9,1
|
| 48 |
+
Ravi Bishnoi,1796,2494,89,634,44,5,84,181,114,8.33,28.02,20.18,35.3,1.06,7.73,8.18,11.13,6,1
|
| 49 |
+
M Morkel,1629,2136,88,738,57,13,70,230,61,7.87,24.27,18.51,45.3,1.26,7.4,7.56,9.48,8,0
|
| 50 |
+
HH Pandya,1747,2732,87,630,62,5,113,243,123,9.38,31.4,20.08,36.06,0.77,9.5,8.58,12.49,9,1
|
| 51 |
+
Imran Tahir,1316,1729,86,451,23,1,59,97,83,7.88,20.1,15.3,34.27,1.46,8.04,7.7,8.61,13,0
|
| 52 |
+
L Balaji,1512,2083,85,582,58,4,73,188,69,8.27,24.51,17.79,38.49,1.16,7.05,7.68,10.52,8,1
|
| 53 |
+
PJ Cummins,1655,2463,83,640,50,1,73,228,101,8.93,29.67,19.94,38.67,1.14,8.74,7.9,10.79,8,0
|
| 54 |
+
R Bhatia,1636,2059,82,467,23,2,91,120,68,7.55,25.11,19.95,28.55,0.9,7.19,7.43,8.83,8,0
|
| 55 |
+
MM Patel,1355,1733,82,612,16,11,63,188,53,7.67,21.13,16.52,45.17,1.3,6.91,6.97,11.04,9,1
|
| 56 |
+
T Natarajan,1525,2317,82,493,63,1,71,206,90,9.12,28.26,18.6,32.33,1.15,8.34,8.53,10.36,9,0
|
| 57 |
+
AB Dinda,1516,2103,82,648,59,14,75,232,58,8.32,25.65,18.49,42.74,1.09,7.4,6.91,11.3,9,0
|
| 58 |
+
KA Pollard,1488,2200,81,422,90,8,107,169,78,8.87,27.16,18.37,28.36,0.76,7.65,8.49,11.43,3,0
|
| 59 |
+
MA Starc,1076,1588,78,460,45,3,50,174,45,8.86,20.36,13.79,42.75,1.56,8.96,7.65,9.28,12,1
|
| 60 |
+
JC Archer,1443,1934,77,677,34,6,61,177,83,8.04,25.12,18.74,46.92,1.26,6.78,7.52,10.23,8,0
|
| 61 |
+
JP Faulkner,1238,1849,76,440,44,5,60,160,67,8.96,24.33,16.29,35.54,1.27,7.93,8.76,10.33,9,2
|
| 62 |
+
RD Chahar,1695,2220,76,597,32,1,79,143,101,7.86,29.21,22.3,35.22,0.96,7.18,7.9,9.09,6,0
|
| 63 |
+
MJ McClenaghan,1274,1839,75,534,63,9,56,181,72,8.66,24.52,16.99,41.92,1.34,8.04,8.57,10.18,9,0
|
| 64 |
+
JH Kallis,1742,2348,74,640,48,9,89,236,58,8.09,31.73,23.54,36.74,0.83,7.53,7.8,10.02,4,0
|
| 65 |
+
Mustafizur Rahman,1365,1879,74,512,47,7,60,171,61,8.26,25.39,18.45,37.51,1.23,7.22,7.61,9.67,10,0
|
| 66 |
+
SK Trivedi,1506,1944,73,528,42,9,75,154,51,7.75,26.63,20.63,35.06,0.97,7.68,7.35,9.76,7,0
|
| 67 |
+
Shakib Al Hasan,1484,1864,71,523,31,0,70,120,78,7.54,26.25,20.9,35.24,1.01,7.08,7.44,10.22,3,0
|
| 68 |
+
M Muralitharan,1528,1765,67,643,51,2,66,105,67,6.93,26.34,22.81,42.08,1.02,6.23,6.86,8.75,5,0
|
| 69 |
+
MG Johnson,1235,1740,66,557,57,9,54,196,55,8.45,26.36,18.71,45.1,1.22,8.02,8.31,9.69,3,0
|
| 70 |
+
JR Hazlewood,992,1377,66,453,17,2,44,138,63,8.33,20.86,15.03,45.67,1.5,7.52,8.14,10.21,10,0
|
| 71 |
+
LH Ferguson,1059,1615,63,418,35,9,50,153,71,9.15,25.63,16.81,39.47,1.26,8.77,8.24,10.98,8,0
|
| 72 |
+
A Nortje,1126,1740,63,459,35,8,49,164,78,9.27,27.62,17.87,40.76,1.29,8.58,8.76,10.6,5,0
|
| 73 |
+
SM Curran,1255,2059,63,416,46,7,63,197,89,9.84,32.68,19.92,33.15,1.0,8.37,10.81,11.39,7,0
|
| 74 |
+
S Kaul,1209,1772,63,410,23,6,55,166,65,8.79,28.13,19.19,33.91,1.15,9.2,8.04,9.26,5,0
|
| 75 |
+
SK Warne,1194,1465,60,442,29,0,54,91,56,7.36,24.42,19.9,37.02,1.11,7.16,7.01,10.05,5,0
|
| 76 |
+
JO Holder,1044,1547,60,364,51,3,48,137,57,8.89,25.78,17.4,34.87,1.25,8.65,8.37,10.18,10,0
|
| 77 |
+
TU Deshpande,1065,1770,59,411,51,6,50,177,76,9.97,30.0,18.05,38.59,1.18,8.9,10.17,11.59,6,0
|
| 78 |
+
TG Southee,1206,1774,57,475,52,4,54,175,62,8.83,31.12,21.16,39.39,1.06,8.11,7.92,10.85,8,1
|
| 79 |
+
Noor Ahmad,987,1355,56,353,20,1,45,90,59,8.24,24.2,17.62,35.76,1.24,8.5,8.14,8.58,6,0
|
| 80 |
+
S Nadeem,1415,1800,54,469,25,4,70,114,73,7.63,33.33,26.2,33.14,0.77,7.63,7.39,12.0,2,0
|
| 81 |
+
M Pathirana,735,1047,53,293,51,1,32,72,39,8.55,19.75,13.87,39.86,1.66,,7.99,9.11,7,0
|
| 82 |
+
S Gopal,991,1358,53,326,8,1,51,77,74,8.22,25.62,18.7,32.9,1.04,7.33,8.56,7.58,5,0
|
| 83 |
+
NM Coulter-Nile,857,1125,52,387,26,9,38,123,34,7.88,21.63,16.48,45.16,1.37,7.24,7.34,9.56,8,0
|
| 84 |
+
Mukesh Kumar,817,1397,51,300,17,4,39,144,66,10.26,27.39,16.02,36.72,1.31,9.27,9.76,12.12,5,0
|
| 85 |
+
SB Jakati,1085,1474,50,355,14,2,57,97,60,8.15,29.48,21.7,32.72,0.88,7.26,8.09,12.68,3,0
|
| 86 |
+
A Kumble,965,1089,49,397,13,5,42,72,35,6.77,22.22,19.69,41.14,1.17,5.43,6.94,8.38,5,2
|
| 87 |
+
VG Arora,834,1321,49,333,25,9,39,142,53,9.5,26.96,17.02,39.93,1.26,8.81,12.15,10.25,3,0
|
| 88 |
+
S Aravind,760,1057,48,302,27,1,38,105,38,8.34,22.02,15.83,39.74,1.26,7.64,8.97,9.86,5,0
|
| 89 |
+
AJ Tye,685,1005,48,225,27,2,30,90,33,8.8,20.94,14.27,32.85,1.6,8.12,8.25,10.06,7,2
|
| 90 |
+
PWH de Silva,803,1134,47,281,5,0,37,65,70,8.47,24.13,17.09,34.99,1.27,7.87,8.58,8.32,3,1
|
| 91 |
+
RJ Harris,832,1085,47,390,32,1,37,119,27,7.82,23.09,17.7,46.88,1.27,6.84,8.08,9.41,7,0
|
| 92 |
+
YK Pathan,1147,1443,46,419,37,0,82,99,57,7.55,31.37,24.93,36.53,0.56,6.7,7.86,12.2,3,0
|
| 93 |
+
VR Aaron,994,1527,46,415,63,8,50,159,52,9.22,33.2,21.61,41.75,0.92,8.65,8.67,12.04,1,0
|
| 94 |
+
MC Henriques,950,1302,46,315,28,1,60,123,38,8.22,28.3,20.65,33.16,0.77,7.59,8.39,10.36,3,0
|
| 95 |
+
MM Ali,857,1036,46,305,11,1,57,43,57,7.25,22.52,18.63,35.59,0.81,5.5,7.6,6.6,4,0
|
| 96 |
+
MP Stoinis,909,1505,46,271,27,1,73,116,76,9.93,32.72,19.76,29.81,0.63,8.31,9.69,13.27,4,0
|
| 97 |
+
GJ Maxwell,1026,1422,45,341,21,0,85,79,80,8.32,31.6,22.8,33.24,0.53,8.21,8.36,8.54,0,0
|
| 98 |
+
Yash Dayal,883,1412,45,329,32,5,43,139,58,9.59,31.38,19.62,37.26,1.05,9.45,8.18,11.32,3,0
|
| 99 |
+
Iqbal Abdulla,920,1125,45,346,23,0,48,88,37,7.34,25.0,20.44,37.61,0.94,6.47,7.61,9.51,5,0
|
| 100 |
+
PJ Sangwan,856,1267,44,338,43,6,42,127,43,8.88,28.8,19.45,39.49,1.05,8.8,8.29,11.36,4,0
|
| 101 |
+
M Jansen,920,1442,43,374,29,7,42,130,67,9.4,33.53,21.4,40.65,1.02,9.07,9.44,10.57,3,0
|
| 102 |
+
P Awana,747,1046,43,307,23,4,33,107,35,8.4,24.33,17.37,41.1,1.3,8.17,7.13,11.22,4,0
|
| 103 |
+
DE Bollinger,576,716,43,270,22,2,27,73,19,7.46,16.65,13.4,46.88,1.59,7.48,6.29,7.66,6,0
|
| 104 |
+
S Sreesanth,880,1221,43,416,44,23,44,130,39,8.33,28.4,20.47,47.27,0.98,7.65,8.35,12.0,2,0
|
| 105 |
+
Harshit Rana,661,1047,42,272,16,2,32,99,56,9.5,24.93,15.74,41.15,1.31,9.43,9.28,9.99,4,0
|
| 106 |
+
Washington Sundar,1152,1498,42,392,8,2,66,99,69,7.8,35.67,27.43,34.03,0.64,8.08,7.34,11.48,4,0
|
| 107 |
+
R Sharma,928,1100,42,344,7,0,44,70,45,7.11,26.19,22.1,37.07,0.95,6.58,7.0,9.15,1,0
|
| 108 |
+
L Ngidi,520,747,40,205,16,2,22,65,34,8.62,18.68,13.0,39.42,1.82,7.99,8.53,9.4,7,0
|
| 109 |
+
DT Christian,883,1218,40,316,36,3,49,103,39,8.28,30.45,22.08,35.79,0.82,8.03,7.22,11.78,0,0
|
| 110 |
+
WD Parnell,723,968,40,312,29,6,33,102,24,8.03,24.2,18.08,43.15,1.21,7.9,7.78,8.51,5,0
|
| 111 |
+
MS Gony,888,1317,39,366,32,5,44,135,53,8.9,33.77,22.77,41.22,0.89,8.79,8.33,11.69,3,0
|
| 112 |
+
M Kartik,1149,1418,39,405,28,5,55,97,41,7.4,36.36,29.46,35.25,0.71,6.68,7.56,8.32,1,0
|
| 113 |
+
Yuvraj Singh,869,1091,39,269,12,1,73,59,41,7.53,27.97,22.28,30.96,0.53,6.6,7.54,8.69,5,0
|
| 114 |
+
DP Nannes,646,815,38,306,39,4,29,89,15,7.57,21.45,17.0,47.37,1.31,6.57,8.79,8.71,5,0
|
| 115 |
+
P Negi,716,954,38,249,17,0,42,57,47,7.99,25.11,18.84,34.78,0.9,7.25,8.02,10.19,3,0
|
| 116 |
+
MR Marsh,560,803,37,189,30,3,34,72,28,8.6,21.7,15.14,33.75,1.09,7.71,7.83,12.49,3,0
|
| 117 |
+
NLTC Perera,698,1031,37,238,14,3,36,113,28,8.86,27.86,18.86,34.1,1.03,7.28,8.41,11.49,5,0
|
| 118 |
+
M Markande,751,1157,37,224,16,1,40,78,66,9.24,31.27,20.3,29.83,0.92,8.27,9.46,9.2,3,0
|
| 119 |
+
KK Cooper,576,789,36,209,23,1,25,59,23,8.22,21.92,16.0,36.28,1.44,7.11,7.81,9.07,5,0
|
| 120 |
+
CJ Jordan,674,1111,36,225,38,5,34,96,46,9.89,30.86,18.72,33.38,1.06,9.48,7.88,12.22,5,0
|
| 121 |
+
Mohsin Khan,584,806,36,263,21,0,27,67,41,8.28,22.39,16.22,45.03,1.33,8.0,6.9,10.08,4,1
|
| 122 |
+
R Tewatia,843,1117,36,270,21,2,52,54,61,7.95,31.03,23.42,32.03,0.69,6.53,8.24,6.46,4,0
|
| 123 |
+
M Theekshana,895,1226,36,292,7,0,38,93,45,8.22,34.06,24.86,32.63,0.95,8.56,7.9,8.54,2,0
|
| 124 |
+
Harpreet Brar,837,1122,35,288,13,0,47,76,49,8.04,32.06,23.91,34.41,0.74,8.38,7.6,11.39,4,0
|
| 125 |
+
M Ashwin,870,1182,35,298,25,3,44,82,50,8.15,33.77,24.86,34.25,0.8,7.65,8.33,7.92,2,0
|
| 126 |
+
DL Vettori,777,894,34,283,8,0,34,67,24,6.9,26.29,22.85,36.42,1.0,5.92,6.79,9.1,3,1
|
| 127 |
+
MF Maharoof,420,532,33,177,16,5,20,46,16,7.6,16.12,12.73,42.14,1.65,7.55,6.35,9.79,5,0
|
| 128 |
+
AB Agarkar,782,1174,33,273,36,2,42,113,41,9.01,35.58,23.7,34.91,0.79,8.88,8.64,10.1,3,0
|
| 129 |
+
Shivam Mavi,649,958,33,267,32,6,32,92,38,8.86,29.03,19.67,41.14,1.03,8.13,7.73,11.41,1,0
|
| 130 |
+
R Sai Kishore,448,655,32,141,5,0,25,35,40,8.77,20.47,14.0,31.47,1.28,7.83,8.39,11.07,2,0
|
| 131 |
+
A Zampa,469,656,32,145,6,0,22,36,35,8.39,20.5,14.66,30.92,1.45,7.14,7.64,13.52,3,1
|
| 132 |
+
BA Stokes,689,1023,31,250,30,4,38,99,33,8.91,33.0,22.23,36.28,0.82,8.64,8.24,10.56,3,0
|
| 133 |
+
Harmeet Singh,549,747,31,213,21,4,28,69,22,8.16,24.1,17.71,38.8,1.11,8.74,7.82,8.67,3,0
|
| 134 |
+
CR Woakes,440,674,31,173,22,1,21,68,28,9.19,21.74,14.19,39.32,1.48,8.52,7.41,11.21,3,0
|
| 135 |
+
Umran Malik,494,785,31,218,22,3,26,93,29,9.53,25.32,15.94,44.13,1.19,12.92,8.66,10.75,4,2
|
| 136 |
+
A Singh,473,639,31,200,12,1,23,67,17,8.11,20.61,15.26,42.28,1.35,7.0,7.5,10.31,3,0
|
| 137 |
+
MJ Santner,700,870,31,261,3,1,35,74,28,7.46,28.06,22.58,37.29,0.89,8.27,7.02,8.8,1,0
|
| 138 |
+
Azhar Mahmood,537,707,31,206,10,5,23,73,18,7.9,22.81,17.32,38.36,1.35,6.76,7.09,9.96,5,0
|
| 139 |
+
B Lee,875,1126,30,400,28,13,38,123,25,7.72,37.53,29.17,45.71,0.79,7.12,7.19,9.06,1,0
|
| 140 |
+
SK Raina,908,1139,30,299,22,0,69,71,44,7.53,37.97,30.27,32.93,0.43,6.76,7.46,8.97,0,0
|
| 141 |
+
E Malinga,343,501,29,138,0,0,15,47,21,8.76,17.28,11.83,40.23,1.93,10.12,7.79,9.0,5,0
|
| 142 |
+
Yash Thakur,447,782,28,153,25,3,21,64,43,10.5,27.93,15.96,34.23,1.33,9.79,10.46,11.04,4,1
|
| 143 |
+
Vijaykumar Vyshak,471,797,28,149,11,1,22,62,43,10.15,28.46,16.82,31.63,1.27,11.33,9.12,12.0,3,0
|
| 144 |
+
AD Mathews,791,1095,28,237,15,1,44,98,29,8.31,39.11,28.25,29.96,0.64,8.43,8.09,8.88,2,0
|
| 145 |
+
STR Binny,594,763,28,204,16,1,63,76,14,7.71,27.25,21.21,34.34,0.44,7.41,7.59,10.14,1,0
|
| 146 |
+
PV Tambe,660,866,28,215,14,0,33,64,28,7.87,30.93,23.57,32.58,0.85,7.82,7.55,12.5,2,0
|
| 147 |
+
J Botha,694,818,27,268,15,0,34,60,24,7.07,30.3,25.7,38.62,0.79,7.57,6.54,8.57,2,0
|
| 148 |
+
DR Smith,539,825,27,179,14,4,46,75,33,9.18,30.56,19.96,33.21,0.59,10.22,8.51,12.88,2,0
|
| 149 |
+
R Dhawan,662,922,27,218,28,3,36,71,27,8.36,34.15,24.52,32.93,0.75,8.14,7.94,11.11,0,0
|
| 150 |
+
Naveen-ul-Haq,388,602,26,141,15,4,17,54,24,9.31,23.15,14.92,36.34,1.53,9.67,7.56,10.32,4,0
|
| 151 |
+
Navdeep Saini,671,1006,26,291,21,9,32,108,39,9.0,38.69,25.81,43.37,0.81,8.6,9.23,9.51,1,0
|
| 152 |
+
Akash Madhwal,359,598,26,119,10,7,17,55,25,9.99,23.0,13.81,33.15,1.53,7.79,10.97,10.29,5,1
|
| 153 |
+
Basil Thampi,521,862,26,163,17,1,25,75,41,9.93,33.15,20.04,31.29,1.04,9.24,9.03,11.81,2,0
|
| 154 |
+
SW Tait,473,668,26,222,52,9,21,71,12,8.47,25.69,18.19,46.93,1.24,8.12,9.03,8.67,4,0
|
| 155 |
+
Suyash Sharma,723,1043,26,255,5,1,34,87,46,8.66,40.12,27.81,35.27,0.76,8.0,8.77,8.05,4,0
|
| 156 |
+
Kartik Tyagi,592,985,25,223,28,8,27,97,44,9.98,39.4,23.68,37.67,0.93,10.97,9.14,10.2,1,0
|
| 157 |
+
RE van der Merwe,443,515,25,159,12,0,21,25,17,6.98,20.6,17.72,35.89,1.19,8.89,6.31,8.95,2,0
|
| 158 |
+
GB Hogg,458,585,25,170,7,1,21,40,21,7.66,23.4,18.32,37.12,1.19,6.54,7.76,8.4,2,0
|
| 159 |
+
Sohail Tanvir,247,275,24,130,17,1,11,27,7,6.68,11.46,10.29,52.63,2.18,6.61,6.0,6.88,6,1
|
| 160 |
+
A Kamboj,364,527,24,160,6,2,19,58,22,8.69,21.96,15.17,43.96,1.26,8.94,8.95,7.7,3,0
|
| 161 |
+
AS Rajpoot,530,844,24,214,28,9,29,89,31,9.55,35.17,22.08,40.38,0.83,9.19,8.61,12.27,2,1
|
| 162 |
+
BW Hilfenhaus,372,497,23,184,15,3,17,48,21,8.02,21.61,16.17,49.46,1.35,6.5,9.75,11.36,1,0
|
| 163 |
+
JP Duminy,678,847,23,242,23,0,49,53,33,7.5,36.83,29.48,35.69,0.47,7.32,7.27,11.17,1,0
|
| 164 |
+
A Symonds,527,694,23,206,12,1,30,44,33,7.9,30.17,22.91,39.09,0.77,6.19,8.09,11.77,1,0
|
| 165 |
+
Shahbaz Ahmed,599,969,22,165,10,2,46,65,53,9.71,44.05,27.23,27.55,0.48,9.9,9.72,8.28,2,0
|
| 166 |
+
WPUJC Vaas,282,364,22,134,4,2,13,40,13,7.74,16.55,12.82,47.52,1.69,6.39,9.5,12.0,3,0
|
| 167 |
+
AS Joseph,434,707,22,172,19,1,22,53,43,9.77,32.14,19.73,39.63,1.0,9.83,9.18,10.96,1,1
|
| 168 |
+
VY Mahesh,339,511,22,127,13,7,17,47,20,9.04,23.23,15.41,37.46,1.29,11.0,7.9,9.29,2,1
|
| 169 |
+
JP Behrendorff,366,563,22,146,13,0,17,55,26,9.23,25.59,16.64,39.89,1.29,8.43,9.46,12.88,3,0
|
| 170 |
+
K Gowtham,588,825,22,216,11,0,35,68,37,8.42,37.5,26.73,36.73,0.63,8.49,8.09,14.5,0,0
|
| 171 |
+
C Green,494,773,22,185,22,1,33,64,39,9.39,35.14,22.45,37.45,0.67,9.57,8.66,12.87,0,0
|
| 172 |
+
Bipul Sharma,426,581,22,139,10,0,28,28,31,8.18,26.41,19.36,32.63,0.79,7.08,8.02,19.5,0,0
|
| 173 |
+
KW Richardson,335,479,21,136,10,0,15,40,23,8.58,22.81,15.95,40.6,1.4,6.9,9.33,11.26,1,0
|
| 174 |
+
RP Meredith,388,621,21,156,25,2,18,63,26,9.6,29.57,18.48,40.21,1.17,8.42,8.97,12.0,1,0
|
| 175 |
+
Prince Yadav,337,476,21,139,0,0,14,49,17,8.47,22.67,16.05,41.25,1.5,7.59,7.48,10.82,3,0
|
| 176 |
+
Mujeeb Ur Rahman,447,626,21,157,18,0,20,42,26,8.4,29.81,21.29,35.12,1.05,7.97,7.99,11.88,1,0
|
| 177 |
+
Anureet Singh,412,636,21,152,11,7,22,65,22,9.26,30.29,19.62,36.89,0.95,7.66,9.9,11.04,2,0
|
| 178 |
+
BB Sran,483,767,20,175,30,3,24,73,29,9.53,38.35,24.15,36.23,0.83,9.25,9.86,9.65,1,0
|
| 179 |
+
C Sakariya,445,649,20,155,29,5,20,53,23,8.75,32.45,22.25,34.83,1.0,6.84,9.33,11.65,2,0
|
| 180 |
+
J Suchith,420,604,20,142,14,0,21,47,26,8.63,30.2,21.0,33.81,0.95,8.05,8.7,13.5,0,0
|
| 181 |
+
Mukesh Choudhary,354,576,20,152,18,1,18,67,24,9.76,28.8,17.7,42.94,1.11,9.02,10.38,13.18,3,0
|
| 182 |
+
NT Ellis,379,553,20,125,8,3,17,46,21,8.75,27.65,18.95,32.98,1.18,6.74,8.48,11.42,2,0
|
| 183 |
+
IC Pandey,462,609,19,223,5,2,24,77,17,7.91,32.05,24.32,48.27,0.79,7.75,7.43,12.5,0,0
|
| 184 |
+
CH Gayle,554,755,19,196,27,3,38,49,27,8.18,39.74,29.16,35.38,0.5,8.45,7.6,9.49,1,0
|
| 185 |
+
A Ashish Reddy,262,400,19,83,6,2,20,26,20,9.16,21.05,13.79,31.68,0.95,15.0,8.28,10.39,1,0
|
| 186 |
+
AD Mascarenhas,308,365,19,130,2,0,13,34,8,7.11,19.21,16.21,42.21,1.46,7.22,6.47,10.29,2,1
|
| 187 |
+
CRD Fernando,234,306,19,107,11,4,10,30,9,7.85,16.11,12.32,45.73,1.9,7.14,6.62,10.0,2,1
|
| 188 |
+
BJ Hodge,234,310,18,79,4,0,20,17,14,7.95,17.22,13.0,33.76,0.9,9.11,7.48,11.0,2,1
|
| 189 |
+
R Rampaul,268,319,17,137,8,2,12,25,14,7.14,18.76,15.76,51.12,1.42,6.28,6.38,11.22,1,0
|
| 190 |
+
Ashwani Kumar,183,295,17,71,0,0,9,27,16,9.67,17.35,10.76,38.8,1.89,10.86,7.45,12.94,2,0
|
| 191 |
+
LR Shukla,314,458,17,117,10,2,27,39,16,8.75,26.94,18.47,37.26,0.63,9.63,8.3,9.69,2,0
|
| 192 |
+
DS Rathi,469,661,17,147,0,0,19,52,25,8.46,38.88,27.59,31.34,0.89,8.03,8.06,10.52,0,0
|
| 193 |
+
D Wiese,296,447,17,86,10,1,15,47,11,9.06,26.29,17.41,29.05,1.13,8.12,9.48,9.6,2,0
|
| 194 |
+
Rasikh Salam,331,549,17,107,10,2,18,48,28,9.95,32.29,19.47,32.33,0.94,8.95,10.64,10.12,3,0
|
| 195 |
+
ST Jayasuriya,294,396,16,86,7,0,21,22,16,8.08,24.75,18.38,29.25,0.76,11.5,7.45,10.71,3,0
|
| 196 |
+
CR Brathwaite,254,384,16,78,9,3,16,37,12,9.07,24.0,15.88,30.71,1.0,6.0,9.34,10.5,2,0
|
| 197 |
+
AC Thomas,315,416,16,133,10,2,15,41,11,7.92,26.0,19.69,42.22,1.07,6.53,8.83,10.12,1,0
|
| 198 |
+
RG Sharma,339,462,16,94,10,0,32,29,14,8.18,28.88,21.19,27.73,0.5,7.62,8.07,10.4,2,0
|
| 199 |
+
VRV Singh,360,549,16,121,7,4,18,58,16,9.15,34.31,22.5,33.61,0.89,9.67,8.82,9.24,2,0
|
| 200 |
+
N Burger,289,468,16,138,3,0,14,44,24,9.72,29.25,18.06,47.75,1.14,10.04,9.84,8.3,0,0
|
| 201 |
+
G Coetzee,277,490,15,106,14,1,14,41,26,10.61,32.67,18.47,38.27,1.07,10.91,10.76,10.11,2,0
|
| 202 |
+
DR Sams,360,528,15,144,27,2,16,41,25,8.8,35.2,24.0,40.0,0.94,7.15,10.42,11.75,2,0
|
| 203 |
+
YA Abdulla,209,311,15,92,12,1,11,32,13,8.93,20.73,13.93,44.02,1.36,6.82,10.67,11.21,3,0
|
| 204 |
+
SJ Srivastava,282,444,15,106,23,1,14,50,13,9.45,29.6,18.8,37.59,1.07,9.59,8.5,11.43,0,0
|
| 205 |
+
Mohammad Nabi,417,527,15,153,2,0,23,33,26,7.58,35.13,27.8,36.69,0.65,6.45,8.5,10.0,1,0
|
| 206 |
+
R Shepherd,292,591,15,89,7,0,22,42,43,12.14,39.4,19.47,30.48,0.68,7.8,11.87,14.7,2,0
|
| 207 |
+
RR Powar,426,538,15,174,16,1,26,41,18,7.58,35.87,28.4,40.85,0.58,7.27,7.72,10.0,0,0
|
| 208 |
+
AN Ahmed,344,515,15,131,13,5,17,43,20,8.98,34.33,22.93,38.08,0.88,8.08,8.13,12.0,1,0
|
| 209 |
+
KA Jamieson,280,460,15,114,8,3,14,44,26,9.86,30.67,18.67,40.71,1.07,9.34,8.73,13.47,2,0
|
| 210 |
+
PVD Chameera,405,658,15,165,13,2,20,67,31,9.75,43.87,27.0,40.74,0.75,9.56,8.05,11.58,1,0
|
| 211 |
+
Umar Gul,135,198,14,59,12,6,6,17,5,8.8,14.14,9.64,43.7,2.33,6.43,8.78,11.38,2,0
|
| 212 |
+
Kamran Khan,166,248,14,71,10,1,9,25,10,8.96,17.71,11.86,42.77,1.56,9.33,7.0,10.41,2,0
|
| 213 |
+
GD McGrath,324,366,14,162,4,1,14,41,10,6.78,26.14,23.14,50.0,1.0,5.97,7.0,9.45,1,0
|
| 214 |
+
S Lamichhane,210,297,14,77,1,0,9,21,17,8.49,21.21,15.0,36.67,1.56,8.29,8.1,19.0,2,0
|
| 215 |
+
AB McDonald,186,263,14,52,2,0,10,20,11,8.48,18.79,13.29,27.96,1.4,8.8,7.75,10.2,2,0
|
| 216 |
+
Arshad Khan,296,546,14,119,19,0,19,60,27,11.07,39.0,21.14,40.2,0.74,10.08,11.17,13.91,1,0
|
| 217 |
+
V Nigam,289,444,14,97,0,0,17,30,25,9.22,31.71,20.64,33.56,0.82,8.74,10.07,5.69,0,0
|
| 218 |
+
Karanveer Singh,204,323,14,66,9,0,9,19,19,9.5,23.07,14.57,32.35,1.56,8.67,9.32,12.67,2,0
|
| 219 |
+
R McLaren,354,558,14,128,15,3,18,69,11,9.46,39.86,25.29,36.16,0.78,8.61,9.58,11.25,1,0
|
| 220 |
+
JR Hopes,360,562,14,119,9,0,20,44,28,9.37,40.14,25.71,33.06,0.7,6.29,9.18,11.43,0,0
|
| 221 |
+
KR Sen,241,396,14,89,12,2,12,41,16,9.86,28.29,17.21,36.93,1.17,9.1,8.68,13.96,2,0
|
| 222 |
+
DJG Sammy,236,354,14,75,6,2,19,33,12,9.0,25.29,16.86,31.78,0.74,8.78,8.62,11.77,2,1
|
| 223 |
+
CJ Anderson,297,525,14,86,18,0,22,52,23,10.61,37.5,21.21,28.96,0.64,9.82,9.23,14.91,1,0
|
| 224 |
+
BA Bhatt,296,408,13,98,6,1,15,35,13,8.27,31.38,22.77,33.11,0.87,7.06,8.94,9.07,1,0
|
| 225 |
+
TK Curran,238,432,13,59,11,3,13,33,23,10.89,33.23,18.31,24.79,1.0,9.57,8.97,13.61,1,0
|
| 226 |
+
CK Langeveldt,156,199,13,75,8,1,7,17,8,7.65,15.31,12.0,48.08,1.86,7.07,8.8,8.0,1,0
|
| 227 |
+
SM Pollock,276,307,13,132,4,0,13,30,9,6.67,23.62,21.23,47.83,1.0,6.51,7.33,,1,0
|
| 228 |
+
Harsh Dubey,168,242,13,57,0,0,9,16,13,8.64,18.62,12.92,33.93,1.44,9.48,8.87,6.0,2,0
|
| 229 |
+
AS Roy,264,360,13,98,6,0,16,24,18,8.18,27.69,20.31,37.12,0.81,8.67,7.63,9.0,0,0
|
| 230 |
+
JDP Oram,237,362,13,86,6,1,14,34,14,9.16,27.85,18.23,36.29,0.93,9.37,9.12,8.88,1,0
|
| 231 |
+
J Theron,221,311,13,75,12,2,10,28,9,8.44,23.92,17.0,33.94,1.3,9.21,7.1,8.73,1,0
|
| 232 |
+
J Little,228,341,13,84,8,0,11,30,16,8.97,26.23,17.54,36.84,1.18,9.2,7.87,10.62,2,0
|
| 233 |
+
Joginder Sharma,256,421,13,73,9,7,15,38,17,9.87,32.38,19.69,28.52,0.87,11.25,8.96,11.61,0,0
|
| 234 |
+
RS Bopara,206,301,13,66,7,0,14,25,10,8.77,23.15,15.85,32.04,0.93,8.0,8.51,10.17,1,0
|
| 235 |
+
Nithish Kumar Reddy,264,454,13,83,7,2,20,33,26,10.32,34.92,20.31,31.44,0.65,10.16,9.98,13.3,1,0
|
| 236 |
+
LS Livingstone,312,471,13,82,9,0,27,38,19,9.06,36.23,24.0,26.28,0.48,6.8,9.45,7.0,1,0
|
| 237 |
+
AG Murtaza,264,322,12,106,5,0,12,22,14,7.32,26.83,22.0,40.15,1.0,5.13,7.93,15.5,3,0
|
| 238 |
+
Ankit Sharma,367,453,12,139,8,0,21,28,18,7.41,37.75,30.58,37.87,0.57,5.86,8.31,19.71,0,0
|
| 239 |
+
V Shankar,238,344,12,80,15,5,22,29,12,8.67,28.67,19.83,33.61,0.55,9.0,8.81,7.64,0,0
|
| 240 |
+
V Pratap Singh,204,300,12,75,7,0,9,31,10,8.82,25.0,17.0,36.76,1.33,8.47,9.27,9.0,1,0
|
| 241 |
+
Simarjeet Singh,243,411,12,109,12,1,14,36,25,10.15,34.25,20.25,44.86,0.86,9.88,9.77,13.0,1,0
|
| 242 |
+
SC Ganguly,276,370,12,82,3,1,20,25,14,8.04,30.83,23.0,29.71,0.6,8.17,7.59,25.0,2,0
|
| 243 |
+
BCJ Cutting,281,430,12,78,7,0,17,44,15,9.18,35.83,23.42,27.76,0.71,9.22,7.95,12.72,0,0
|
| 244 |
+
Azmatullah Omarzai,295,476,12,110,5,0,15,51,18,9.68,39.67,24.58,37.29,0.8,9.56,8.49,12.0,0,0
|
| 245 |
+
K Kartikeya,283,412,12,91,7,0,16,25,23,8.73,34.33,23.58,32.16,0.75,8.83,8.36,13.33,0,0
|
| 246 |
+
A Chandila,234,245,11,105,0,0,12,17,10,6.28,22.27,21.27,44.87,0.92,5.79,7.89,6.0,1,0
|
| 247 |
+
TS Mills,209,349,11,75,9,0,10,37,14,10.02,31.73,19.0,35.89,1.1,8.83,10.57,10.75,1,0
|
| 248 |
+
BE Hendricks,150,239,11,55,6,1,7,24,7,9.56,21.73,13.64,36.67,1.57,10.73,7.71,9.57,2,0
|
| 249 |
+
S Badree,258,329,11,114,5,0,12,28,14,7.65,29.91,23.45,44.19,0.92,7.68,7.6,,1,0
|
| 250 |
+
JL Pattinson,213,321,11,78,9,0,10,34,10,9.04,29.18,19.36,36.62,1.1,8.76,8.86,10.67,0,0
|
| 251 |
+
JD Ryder,236,314,11,84,5,0,16,21,13,7.98,28.55,21.45,35.59,0.69,6.0,7.87,12.0,1,0
|
| 252 |
+
Pankaj Singh,300,472,11,115,10,1,17,52,17,9.44,42.91,27.27,38.33,0.65,7.9,10.23,14.57,0,0
|
| 253 |
+
Lalit Yadav,288,430,11,86,5,1,19,26,24,8.96,39.09,26.18,29.86,0.58,9.28,8.61,11.0,0,0
|
| 254 |
+
R Parag,328,516,11,80,6,0,34,32,25,9.44,46.91,29.82,24.39,0.32,8.0,9.57,12.4,0,0
|
| 255 |
+
KP Appanna,216,291,11,70,6,0,13,20,11,8.08,26.45,19.64,32.41,0.85,9.33,7.97,,1,0
|
| 256 |
+
Akash Deep,291,554,11,105,7,4,14,48,33,11.42,50.36,26.45,36.08,0.79,10.35,11.49,14.79,1,0
|
| 257 |
+
OC McCoy,162,255,11,51,17,1,8,20,9,9.44,23.18,14.73,31.48,1.38,6.0,11.01,8.95,1,0
|
| 258 |
+
Abhishek Sharma,354,544,11,101,7,1,35,38,27,9.22,49.45,32.18,28.53,0.31,9.65,9.01,9.82,0,0
|
| 259 |
+
MA Wood,120,192,11,54,6,1,5,13,12,9.6,17.45,10.91,45.0,2.2,8.2,7.38,13.14,2,1
|
| 260 |
+
N Rana,218,326,11,68,5,0,27,31,13,8.97,29.64,19.82,31.19,0.41,9.55,9.1,7.04,0,0
|
| 261 |
+
MP Yadav,151,244,10,72,2,1,7,22,15,9.7,24.4,15.1,47.68,1.43,11.18,8.51,11.43,2,0
|
| 262 |
+
T Thushara,135,164,10,60,7,2,6,15,4,7.29,16.4,13.5,44.44,1.67,5.73,5.2,11.54,1,0
|
| 263 |
+
B Laughlin,168,284,10,44,10,1,9,26,10,10.14,28.4,16.8,26.19,1.11,10.17,7.64,13.22,0,0
|
| 264 |
+
KMA Paul,163,239,10,54,12,5,8,18,8,8.8,23.9,16.3,33.13,1.25,16.5,7.21,11.19,2,0
|
| 265 |
+
J Syed Mohammad,192,286,10,50,4,0,11,18,12,8.94,28.6,19.2,26.04,0.91,5.25,9.59,6.0,0,0
|
| 266 |
+
MN Samuels,214,285,10,80,5,0,11,23,12,7.99,28.5,21.4,37.38,0.91,6.23,7.8,11.35,1,0
|
| 267 |
+
Anand Rajan,149,206,10,62,12,1,8,17,8,8.3,20.6,14.9,41.61,1.25,6.44,7.18,14.28,1,0
|
| 268 |
+
DJ Hooda,380,550,10,107,11,0,34,40,23,8.68,55.0,38.0,28.16,0.29,7.24,9.08,12.0,0,0
|
| 269 |
+
DJ Hussey,317,485,10,92,6,0,26,30,25,9.18,48.5,31.7,29.02,0.38,10.25,7.9,16.29,0,0
|
| 270 |
+
P Parameswaran,154,226,9,66,4,1,8,23,10,8.81,25.11,17.11,42.86,1.12,9.75,7.4,10.55,1,0
|
| 271 |
+
Akash Singh,205,326,9,73,3,0,10,39,13,9.54,36.22,22.78,35.61,0.9,9.18,10.62,10.0,0,0
|
| 272 |
+
J Overton,161,272,9,58,0,0,10,18,17,10.14,30.22,17.89,36.02,0.9,13.03,9.07,9.78,2,0
|
| 273 |
+
J Yadav,390,447,9,155,6,2,20,31,15,6.88,49.67,43.33,39.74,0.45,7.48,6.32,,0,0
|
| 274 |
+
JEC Franklin,151,225,9,41,2,2,15,21,6,8.94,25.0,16.78,27.15,0.6,10.0,8.31,19.0,0,0
|
| 275 |
+
KP Pietersen,174,218,9,57,6,0,13,10,9,7.52,24.22,19.33,32.76,0.69,6.0,7.74,9.67,0,0
|
| 276 |
+
SE Bond,186,225,9,76,5,0,8,27,3,7.26,25.0,20.67,40.86,1.12,6.33,6.14,9.67,0,0
|
| 277 |
+
SB Styris,216,278,9,85,6,0,11,19,14,7.72,30.89,24.0,39.35,0.82,6.09,7.78,10.14,1,0
|
| 278 |
+
Shahid Afridi,180,237,9,65,4,1,10,19,7,7.9,26.33,20.0,36.11,0.9,7.0,8.35,7.0,1,0
|
| 279 |
+
SMSM Senanayake,192,211,9,75,3,0,8,17,5,6.59,23.44,21.33,39.06,1.12,5.29,9.44,7.5,0,0
|
| 280 |
+
IS Sodhi,181,204,9,66,1,0,8,9,8,6.76,22.67,20.11,36.46,1.12,6.38,6.68,36.0,1,0
|
| 281 |
+
BAW Mendis,244,306,9,79,3,1,10,17,12,7.52,34.0,27.11,32.38,0.9,6.79,7.55,9.0,0,0
|
| 282 |
+
AM Nayar,229,323,9,70,10,0,19,22,13,8.46,35.89,25.44,30.57,0.47,7.25,8.59,9.0,1,0
|
| 283 |
+
AF Milne,207,339,9,77,9,1,10,35,13,9.83,37.67,23.0,37.2,0.9,9.89,9.62,9.88,2,0
|
| 284 |
+
Mohammad Asif,192,307,9,71,6,1,8,37,8,9.59,34.11,21.33,36.98,1.12,9.8,7.67,11.38,0,0
|
| 285 |
+
N Thushara,182,289,9,63,14,2,8,28,10,9.53,32.11,20.22,34.62,1.12,9.22,8.8,10.47,2,0
|
| 286 |
+
S Sandeep Warrier,168,257,8,75,6,2,10,25,14,9.18,32.12,21.0,44.64,0.8,9.46,7.5,,1,0
|
| 287 |
+
S Randiv,174,223,8,60,6,0,8,20,5,7.69,27.88,21.75,34.48,1.0,7.2,7.5,11.0,0,0
|
| 288 |
+
A Mithun,288,477,8,95,15,9,16,42,21,9.94,59.62,36.0,32.99,0.5,9.06,9.32,11.92,0,0
|
| 289 |
+
AA Chavan,248,339,8,110,7,0,13,28,16,8.2,42.38,31.0,44.35,0.62,7.39,9.17,16.5,0,0
|
| 290 |
+
AM Ghazanfar,104,146,8,38,0,0,5,10,8,8.42,18.25,13.0,36.54,1.6,8.9,8.87,1.0,0,0
|
| 291 |
+
WG Jacks,144,221,8,49,1,0,13,17,11,9.21,27.62,18.0,34.03,0.62,10.53,8.39,10.29,0,0
|
| 292 |
+
GC Viljoen,138,229,8,47,8,0,6,25,6,9.96,28.62,17.25,34.06,1.33,9.17,8.0,15.6,1,0
|
| 293 |
+
Zeeshan Ansari,209,334,8,54,0,0,10,24,17,9.59,41.75,26.12,25.84,0.8,,9.26,12.0,1,0
|
| 294 |
+
KC Cariappa,216,349,8,62,6,2,11,23,19,9.69,43.62,27.0,28.7,0.73,11.0,8.96,11.0,0,0
|
| 295 |
+
I Udana,174,286,8,49,8,0,10,26,11,9.86,35.75,21.75,28.16,0.8,11.0,8.8,9.78,0,0
|
| 296 |
+
Yudhvir Singh,143,257,8,61,2,0,9,28,13,10.78,32.12,17.88,42.66,0.89,10.33,10.67,14.5,1,0
|
| 297 |
+
JDS Neesham,216,342,8,68,6,0,13,32,14,9.5,42.75,27.0,31.48,0.62,9.64,9.08,18.0,1,0
|
| 298 |
+
M Ntini,210,257,8,108,1,2,9,29,8,7.34,32.12,26.25,51.43,0.89,7.0,6.75,9.6,1,0
|
| 299 |
+
TL Suman,150,198,7,44,0,2,11,8,10,7.92,28.29,21.43,29.33,0.64,7.0,7.17,12.0,0,0
|
| 300 |
+
C de Grandhomme,216,323,7,62,12,2,19,22,13,8.97,46.14,30.86,28.7,0.37,6.0,9.33,9.75,1,0
|
| 301 |
+
Y Venugopal Rao,216,338,7,60,6,0,20,30,13,9.39,48.29,30.86,27.78,0.35,9.57,8.81,14.0,0,0
|
| 302 |
+
AM Salvi,150,205,7,61,6,0,7,18,7,8.2,29.29,21.43,40.67,1.0,8.08,7.71,9.2,0,0
|
| 303 |
+
HF Gurney,162,239,7,51,6,1,8,23,7,8.85,34.14,23.14,31.48,0.88,6.0,8.12,13.5,0,0
|
| 304 |
+
DJ Willey,216,277,7,84,5,0,11,28,8,7.69,39.57,30.86,38.89,0.64,6.71,9.12,10.75,0,0
|
| 305 |
+
B Akhil,188,246,7,64,4,1,13,18,9,7.85,35.14,26.86,34.04,0.54,7.5,7.21,12.9,0,0
|
| 306 |
+
Sakib Hussain,106,147,7,43,0,0,4,12,6,8.32,21.0,15.14,40.57,1.75,7.71,9.41,7.33,1,0
|
| 307 |
+
Shivang Kumar,133,210,7,39,0,0,7,21,9,9.47,30.0,19.0,29.32,1.0,,9.47,,1,0
|
| 308 |
+
P Amarnath,132,241,7,34,0,0,6,29,7,10.95,34.43,18.86,25.76,1.17,11.0,10.42,21.0,0,0
|
| 309 |
+
XC Bartlett,221,394,7,73,0,0,11,46,16,10.7,56.29,31.57,33.03,0.64,10.58,12.0,9.86,0,0
|
| 310 |
+
M Siddharth,166,238,7,59,1,2,8,17,11,8.6,34.0,23.71,35.54,0.88,7.78,8.38,12.63,0,0
|
| 311 |
+
S Dube,144,260,7,33,5,0,17,19,12,10.83,37.14,20.57,22.92,0.41,,10.36,12.35,1,0
|
| 312 |
+
RR Raje,139,214,7,41,4,1,10,23,4,9.24,30.57,19.86,29.5,0.7,11.33,7.89,12.21,0,0
|
| 313 |
+
Ramandeep Singh,61,95,7,19,5,0,6,6,4,9.34,13.57,8.71,31.15,1.17,,10.5,8.07,1,0
|
| 314 |
+
KM Asif,134,232,7,47,8,1,7,16,14,10.39,33.14,19.14,35.07,1.0,9.67,9.91,15.43,0,0
|
| 315 |
+
R Shukla,120,217,7,44,7,3,7,21,9,10.85,31.0,17.14,36.67,1.0,8.8,11.29,16.67,0,0
|
| 316 |
+
OF Smith,90,179,7,36,4,1,6,12,16,11.93,25.57,12.86,40.0,1.17,7.75,12.75,15.33,1,0
|
| 317 |
+
PC Valthaty,151,207,7,46,2,0,10,15,7,8.23,29.57,21.57,30.46,0.7,9.0,8.09,9.23,1,0
|
| 318 |
+
Brijesh Sharma,126,180,7,48,0,0,6,22,4,8.57,25.71,18.0,38.1,1.17,7.91,8.04,9.5,0,0
|
| 319 |
+
Swapnil Singh,162,241,7,39,2,1,14,14,12,8.93,34.43,23.14,24.07,0.5,8.54,9.29,,0,0
|
| 320 |
+
AJ Hosein,108,150,7,40,0,0,5,8,10,8.33,21.43,15.43,37.04,1.4,7.93,8.5,12.0,1,0
|
| 321 |
+
D Pretorius,150,242,7,46,16,0,7,14,11,9.68,34.57,21.43,30.67,1.0,,7.21,12.82,0,0
|
| 322 |
+
B Stanlake,144,200,7,64,6,0,6,19,9,8.33,28.57,20.57,44.44,1.17,7.93,8.67,11.0,0,0
|
| 323 |
+
V Sehwag,136,236,6,45,1,1,15,19,16,10.41,39.33,22.67,33.09,0.4,18.67,8.83,12.6,0,0
|
| 324 |
+
S Tyagi,209,304,6,99,8,3,14,34,12,8.73,50.67,34.83,47.37,0.43,8.38,7.25,17.45,0,0
|
| 325 |
+
SB Bangar,150,221,6,57,3,0,9,24,7,8.84,36.83,25.0,38.0,0.67,5.0,9.44,13.33,0,0
|
| 326 |
+
DG Nalkande,84,150,6,24,4,1,6,10,8,10.71,25.0,14.0,28.57,1.0,11.0,10.3,12.5,0,0
|
| 327 |
+
W O'Rourke,64,132,6,17,0,0,3,16,6,12.38,22.0,10.67,26.56,2.0,12.48,12.0,12.86,1,0
|
| 328 |
+
AK Markram,224,344,6,59,1,1,23,18,21,9.21,57.33,37.33,26.34,0.26,7.97,9.82,8.73,0,0
|
| 329 |
+
SS Cottrell,120,177,6,59,11,0,6,19,8,8.85,29.5,20.0,49.17,1.0,7.71,7.0,16.0,0,0
|
| 330 |
+
Fazalhaq Farooqi,256,440,6,85,10,0,12,55,12,10.31,73.33,42.67,33.2,0.5,8.82,9.92,14.88,0,0
|
| 331 |
+
Ashok Sharma,136,233,6,63,0,0,6,21,14,10.28,38.83,22.67,46.32,1.0,14.64,7.97,10.75,0,0
|
| 332 |
+
VS Malik,205,268,6,88,5,2,13,30,6,7.84,44.67,34.17,42.93,0.46,7.8,7.62,10.29,0,0
|
| 333 |
+
V Puthur,73,109,6,25,0,0,5,4,9,8.96,18.17,12.17,34.25,1.2,,8.5,11.08,1,0
|
| 334 |
+
KMDN Kulasekara,102,122,6,47,5,0,5,16,0,7.18,20.33,17.0,46.08,1.2,7.45,8.0,6.4,0,0
|
| 335 |
+
R Sathish,139,233,6,31,5,0,14,18,10,10.06,38.83,23.17,22.3,0.43,4.0,9.45,18.46,0,0
|
| 336 |
+
M de Lange,108,171,6,41,6,2,5,21,4,9.5,28.5,18.0,37.96,1.2,8.2,9.67,12.0,1,0
|
| 337 |
+
MG Bracewell,66,95,6,26,0,0,5,7,6,8.64,15.83,11.0,39.39,1.2,5.4,11.33,,0,0
|
| 338 |
+
K Khejroliya,140,250,6,41,6,2,8,17,15,10.71,41.67,23.33,29.29,0.75,12.0,8.87,12.97,0,0
|
| 339 |
+
PP Hinge,79,145,6,36,0,0,3,11,11,11.01,24.17,13.17,45.57,2.0,12.3,10.62,9.23,1,0
|
| 340 |
+
RV Gomez,96,130,6,38,1,0,9,10,7,8.12,21.67,16.0,39.58,0.67,4.0,7.57,20.0,0,0
|
| 341 |
+
JE Taylor,117,167,6,54,4,1,5,10,9,8.56,27.83,19.5,46.15,1.2,6.38,6.67,11.29,1,0
|
| 342 |
+
Jaskaran Singh,102,174,6,42,5,4,7,23,4,10.24,29.0,17.0,41.18,0.86,8.33,10.0,14.75,0,0
|
| 343 |
+
S Narwal,106,203,6,38,7,0,6,17,13,11.49,33.83,17.67,35.85,1.0,9.08,16.64,16.5,1,0
|
| 344 |
+
S Kaushik,204,304,6,72,5,1,10,25,14,8.94,50.67,34.0,35.29,0.6,8.75,8.0,16.67,1,0
|
| 345 |
+
JA Duffy,80,139,6,37,0,0,3,8,12,10.42,23.17,13.33,46.25,2.0,10.59,6.46,13.12,1,0
|
| 346 |
+
FH Edwards,140,160,6,75,9,1,6,20,2,6.86,26.67,23.33,53.57,1.0,4.69,8.0,10.23,0,0
|
| 347 |
+
V Kohli,251,371,5,55,7,6,26,25,11,8.87,74.2,50.2,21.91,0.19,6.21,8.73,16.29,0,0
|
| 348 |
+
RJW Topley,120,222,5,44,5,0,6,23,13,11.1,44.4,24.0,36.67,0.83,8.73,13.8,14.25,0,0
|
| 349 |
+
SH Johnson,169,289,5,66,3,0,9,30,15,10.26,57.8,33.8,39.05,0.56,10.21,11.45,9.07,0,0
|
| 350 |
+
SB Wagh,102,147,5,50,6,0,8,21,2,8.65,29.4,20.4,49.02,0.62,8.0,,13.5,1,0
|
| 351 |
+
O Thomas,60,85,5,22,1,2,4,9,1,8.5,17.0,12.0,36.67,1.25,9.67,4.5,9.0,0,0
|
| 352 |
+
PD Collingwood,89,101,5,24,1,0,6,4,3,6.81,20.2,17.8,26.97,0.83,,7.25,4.94,0,0
|
| 353 |
+
MJ Henry,163,314,5,44,3,0,9,26,18,11.56,62.8,32.6,26.99,0.56,10.95,13.95,10.0,0,0
|
| 354 |
+
S Ladda,138,225,5,49,2,1,9,12,17,9.78,45.0,27.6,35.51,0.56,10.83,9.15,10.25,0,0
|
| 355 |
+
TM Dilshan,271,368,5,81,4,0,25,27,15,8.15,73.6,54.2,29.89,0.2,7.15,8.33,11.54,0,0
|
| 356 |
+
HR Shokeen,204,320,5,82,7,2,13,20,20,9.41,64.0,40.8,40.2,0.38,8.15,10.19,,0,0
|
| 357 |
+
Shoaib Ahmed,102,154,5,35,1,0,7,14,7,9.06,30.8,20.4,34.31,0.71,10.5,7.1,20.0,0,0
|
| 358 |
+
A Choudhary,101,144,5,42,6,1,5,13,6,8.55,28.8,20.2,41.58,1.0,6.0,11.59,10.0,0,0
|
| 359 |
+
Gurkeerat Singh,78,97,5,26,4,0,6,6,3,7.46,19.4,15.6,33.33,0.83,7.67,7.4,,0,0
|
| 360 |
+
AP Dole,66,114,5,21,6,1,3,11,4,10.36,22.8,13.2,31.82,1.67,11.17,8.5,13.0,0,0
|
| 361 |
+
KL Nagarkoti,180,287,5,52,5,0,11,21,14,9.57,57.4,36.0,28.89,0.45,9.0,10.05,7.0,0,0
|
| 362 |
+
Ankit Soni,109,145,4,38,3,0,6,8,7,7.98,36.25,27.25,34.86,0.67,3.5,8.38,24.0,0,0
|
| 363 |
+
WA Mota,72,98,4,25,2,1,7,4,5,8.17,24.5,18.0,34.72,0.57,,6.1,18.5,0,0
|
| 364 |
+
Shashank Singh,61,91,4,16,1,0,6,8,3,8.95,22.75,15.25,26.23,0.67,,7.35,15.5,0,0
|
| 365 |
+
Y Nagar,66,125,4,16,2,4,8,11,6,11.36,31.25,16.5,24.24,0.5,10.0,11.5,,0,0
|
| 366 |
+
Shivam Sharma,114,165,4,37,0,0,5,9,10,8.68,41.25,28.5,32.46,0.8,2.0,9.2,8.33,0,0
|
| 367 |
+
DJ Muthuswami,84,108,4,47,0,0,6,14,3,7.71,27.0,21.0,55.95,0.67,8.25,8.0,1.0,0,0
|
| 368 |
+
Arjun Tendulkar,73,117,4,33,9,1,5,10,5,9.62,29.25,18.25,45.21,0.8,6.9,32.25,6.0,0,0
|
| 369 |
+
DP Vijaykumar,152,205,4,69,5,2,9,23,5,8.09,51.25,38.0,45.39,0.44,7.41,6.0,12.69,0,0
|
| 370 |
+
Parvez Rasool,198,273,4,62,2,0,11,22,11,8.27,68.25,49.5,31.31,0.36,8.23,8.3,,0,0
|
| 371 |
+
LE Plunkett,150,228,4,42,4,0,7,15,12,9.12,57.0,37.5,28.0,0.57,10.78,8.0,8.43,1,0
|
| 372 |
+
Sikandar Raza,85,146,3,23,3,0,7,15,4,10.31,48.67,28.33,27.06,0.43,14.0,9.7,,0,0
|
| 373 |
+
AL Menaria,110,144,3,40,3,0,12,15,4,7.85,48.0,36.67,36.36,0.25,6.7,8.21,12.5,0,0
|
| 374 |
+
SM Harwood,60,74,3,34,7,0,3,6,2,7.4,24.67,20.0,56.67,1.0,2.33,10.25,8.67,0,0
|
| 375 |
+
VR Iyer,81,145,3,17,2,1,9,12,7,10.74,48.33,27.0,20.99,0.33,,10.4,11.71,0,0
|
| 376 |
+
Abhinandan Singh,60,122,3,17,0,0,3,13,7,12.2,40.67,20.0,28.33,1.0,17.25,8.54,9.6,0,0
|
| 377 |
+
GHS Garton,90,136,3,32,5,2,5,11,6,9.07,45.33,30.0,35.56,0.6,10.8,5.33,6.0,0,0
|
| 378 |
+
Gagandeep Singh,84,142,3,26,0,0,4,14,6,10.14,47.33,28.0,30.95,0.75,7.0,7.9,18.67,0,0
|
| 379 |
+
Gurjapneet Singh,88,139,3,31,0,0,5,9,9,9.48,46.33,29.33,35.23,0.6,11.0,9.36,9.38,0,0
|
| 380 |
+
T Shamsi,120,185,3,32,0,0,5,14,8,9.25,61.67,40.0,26.67,0.6,8.0,8.85,15.0,0,0
|
| 381 |
+
RN ten Doeschate,78,94,3,22,5,0,10,4,3,7.23,31.33,26.0,28.21,0.3,,6.83,12.0,0,0
|
| 382 |
+
P Sahu,105,152,3,27,2,0,5,11,5,8.69,50.67,35.0,25.71,0.6,9.33,8.55,,0,0
|
| 383 |
+
JA Richardson,90,162,3,32,4,0,4,12,10,10.8,54.0,30.0,35.56,0.75,10.8,10.12,13.5,0,0
|
| 384 |
+
JJ van der Wath,72,134,3,31,2,2,3,17,6,11.17,44.67,24.0,43.06,1.0,8.2,14.67,12.25,0,0
|
| 385 |
+
MJ Clarke,66,72,3,24,0,0,5,4,2,6.55,24.0,22.0,36.36,0.6,6.0,6.67,,0,0
|
| 386 |
+
A Flintoff,66,106,2,21,0,0,3,7,7,9.64,53.0,33.0,31.82,0.67,7.67,6.2,17.33,0,0
|
| 387 |
+
MK Lomror,90,127,2,22,4,0,11,8,5,8.47,63.5,45.0,24.44,0.18,7.25,8.91,,0,0
|
| 388 |
+
DNT Zoysa,66,100,2,25,1,2,3,12,3,9.09,50.0,33.0,37.88,0.67,7.57,13.0,11.33,0,0
|
| 389 |
+
AU Rashid,60,91,2,20,0,0,3,4,7,9.1,45.5,30.0,33.33,0.67,9.67,8.86,,0,0
|
| 390 |
+
KT Maphaka,68,148,2,26,3,0,4,18,8,13.06,74.0,34.0,38.24,0.5,11.86,13.29,17.0,0,0
|
| 391 |
+
RJ Gleeson,69,111,2,26,3,1,3,14,3,9.65,55.5,34.5,37.68,0.67,9.6,8.75,10.8,0,0
|
| 392 |
+
Mayank Dagar,137,205,2,44,1,0,8,14,11,8.98,102.5,68.5,32.12,0.25,11.5,8.28,12.0,0,0
|
| 393 |
+
LJ Wright,71,125,2,15,4,0,6,5,9,10.56,62.5,35.5,21.13,0.33,12.0,9.7,19.2,0,0
|
| 394 |
+
P Suyal,96,154,2,39,7,4,5,16,5,9.62,77.0,48.0,40.62,0.4,10.0,6.33,12.5,0,0
|
| 395 |
+
KJ Abbott,96,182,2,30,5,1,5,24,4,11.38,91.0,48.0,31.25,0.4,10.43,12.0,12.33,0,0
|
| 396 |
+
C Bosch,65,95,2,34,0,0,3,7,7,8.77,47.5,32.5,52.31,0.67,11.0,10.74,4.57,0,0
|
| 397 |
+
FA Allen,90,136,2,26,1,0,4,11,7,9.07,68.0,45.0,28.89,0.5,9.75,8.82,,0,0
|
| 398 |
+
Mohammad Hafeez,60,71,2,25,2,1,4,5,2,7.1,35.5,30.0,41.67,0.5,8.0,7.0,,0,0
|
| 399 |
+
P Dubey,78,112,2,24,1,0,5,10,5,8.62,56.0,39.0,30.77,0.4,4.0,9.45,,0,0
|
| 400 |
+
V Viyaskanth,60,90,1,19,0,0,3,4,6,9.0,90.0,60.0,31.67,0.33,5.5,9.88,,0,0
|
| 401 |
+
AA Jhunjhunwala,85,130,1,28,3,0,10,10,5,9.18,130.0,85.0,32.94,0.1,8.17,9.88,12.0,0,0
|
| 402 |
+
TP Sudhindra,70,137,1,19,3,1,3,9,9,11.74,137.0,70.0,27.14,0.33,10.0,11.6,14.62,0,0
|
| 403 |
+
K Goel,66,94,0,20,1,0,6,9,2,8.55,,,30.3,0.0,5.0,8.9,,0,0
|
data/processed/charts/01_wins_per_season.html
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<html>
|
| 2 |
+
<head><meta charset="utf-8" /></head>
|
| 3 |
+
<body>
|
| 4 |
+
<div> <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
|
| 5 |
+
<script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script> <div id="15df0f3e-68aa-4809-87d9-74c71f73c38b" class="plotly-graph-div" style="height:480px; width:100%;"></div> <script> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("15df0f3e-68aa-4809-87d9-74c71f73c38b")) { Plotly.newPlot( "15df0f3e-68aa-4809-87d9-74c71f73c38b", [{"alignmentgroup":"True","hovertemplate":"team=Chennai Super Kings\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Chennai Super Kings","marker":{"color":"#F9CD05","pattern":{"shape":""},"line":{"width":0}},"name":"Chennai Super Kings","offsetgroup":"Chennai Super Kings","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"2AfZB9oH2wfcB90H3gffB+IH4wfkB+UH5gfnB+gH6QfqBw=="},"xaxis":"x","y":{"dtype":"i1","bdata":"CQgJCwoMCgoLCgYLBAoHBAM="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Deccan Chargers\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Deccan Chargers","marker":{"color":"#888780","pattern":{"shape":""},"line":{"width":0}},"name":"Deccan Chargers","offsetgroup":"Deccan Chargers","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"2AfZB9oH2wfcBw=="},"xaxis":"x","y":{"dtype":"i1","bdata":"AgkIBgQ="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Delhi Capitals\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Delhi Capitals","marker":{"color":"#0078BC","pattern":{"shape":""},"line":{"width":0}},"name":"Delhi Capitals","offsetgroup":"Delhi Capitals","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"2AfZB9oH2wfcB90H3gffB+AH4QfiB+MH5AflB+YH5wfoB+kH6gc="},"xaxis":"x","y":{"dtype":"i1","bdata":"BwoHBAsDAgUHBgUKCQoHBQcGAw=="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Kings XI Punjab\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Kings XI Punjab","marker":{"color":"#888780","pattern":{"shape":""},"line":{"width":0}},"name":"Kings XI Punjab","offsetgroup":"Kings XI Punjab","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"2AfZB9oH2wfcB90H3gffB+AH4QfiB+MH5Ac="},"xaxis":"x","y":{"dtype":"i1","bdata":"CgcEBwgIDAMEBwYGBg=="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Kolkata Knight Riders\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Kolkata Knight Riders","marker":{"color":"#3A225D","pattern":{"shape":""},"line":{"width":0}},"name":"Kolkata Knight Riders","offsetgroup":"Kolkata Knight Riders","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"2AfZB9oH2wfcB90H3gffB+AH4QfiB+MH5AflB+YH5wfoB+kH6gc="},"xaxis":"x","y":{"dtype":"i1","bdata":"BgMHCAwGCwcICQkGBwkGBgsFAQ=="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Mumbai Indians\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Mumbai Indians","marker":{"color":"#004BA0","pattern":{"shape":""},"line":{"width":0}},"name":"Mumbai Indians","offsetgroup":"Mumbai Indians","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"2AfZB9oH2wfcB90H3gffB+AH4QfiB+MH5AflB+YH5wfoB+kH6gc="},"xaxis":"x","y":{"dtype":"i1","bdata":"BwULCgoNBwoHDAYLCwcECQQJAg=="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Rajasthan Royals\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Rajasthan Royals","marker":{"color":"#254AA5","pattern":{"shape":""},"line":{"width":0}},"name":"Rajasthan Royals","offsetgroup":"Rajasthan Royals","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"2AfZB9oH2wfcB90H3gffB+IH4wfkB+UH5gfnB+gH6QfqBw=="},"xaxis":"x","y":{"dtype":"i1","bdata":"DQYGBgcLBwcHBQYFCgcJBAY="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Royal Challengers Bangalore\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Royal Challengers Bangalore","marker":{"color":"#EC1C24","pattern":{"shape":""},"line":{"width":0}},"name":"Royal Challengers Bangalore","offsetgroup":"Royal Challengers Bangalore","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"2AfZB9oH2wfcB90H3gffB+AH4QfiB+MH5AflB+YH5wfoB+kH6gc="},"xaxis":"x","y":{"dtype":"i1","bdata":"BAkICggJBQgJAwYFBwkJBwcLBg=="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Pune Warriors India\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Pune Warriors India","marker":{"color":"#888780","pattern":{"shape":""},"line":{"width":0}},"name":"Pune Warriors India","offsetgroup":"Pune Warriors India","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"2wfcB90H"},"xaxis":"x","y":{"dtype":"i1","bdata":"BAQE"},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Sunrisers Hyderabad\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Sunrisers Hyderabad","marker":{"color":"#F7A721","pattern":{"shape":""},"line":{"width":0}},"name":"Sunrisers Hyderabad","offsetgroup":"Sunrisers Hyderabad","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"3QfeB98H4AfhB+IH4wfkB+UH5gfnB+gH6QfqBw=="},"xaxis":"x","y":{"dtype":"i1","bdata":"CgYHCwgKBggDBgQJBgU="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Gujarat Lions\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Gujarat Lions","marker":{"color":"#888780","pattern":{"shape":""},"line":{"width":0}},"name":"Gujarat Lions","offsetgroup":"Gujarat Lions","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"4AfhBw=="},"xaxis":"x","y":{"dtype":"i1","bdata":"CQQ="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Rising Pune Supergiants\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Rising Pune Supergiants","marker":{"color":"#888780","pattern":{"shape":""},"line":{"width":0}},"name":"Rising Pune Supergiants","offsetgroup":"Rising Pune Supergiants","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"4AfhBw=="},"xaxis":"x","y":{"dtype":"i1","bdata":"BQo="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Punjab Kings\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Punjab Kings","marker":{"color":"#ED1B24","pattern":{"shape":""},"line":{"width":0}},"name":"Punjab Kings","offsetgroup":"Punjab Kings","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"5QfmB+cH6AfpB+oH"},"xaxis":"x","y":{"dtype":"i1","bdata":"BgcGBQoG"},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Gujarat Titans\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Gujarat Titans","marker":{"color":"#1C4E80","pattern":{"shape":""},"line":{"width":0}},"name":"Gujarat Titans","offsetgroup":"Gujarat Titans","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"5gfnB+gH6QfqBw=="},"xaxis":"x","y":{"dtype":"i1","bdata":"DAsFCQQ="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"team=Lucknow Super Giants\u003cbr\u003eseason=%{x}\u003cbr\u003ematches won=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Lucknow Super Giants","marker":{"color":"#A72056","pattern":{"shape":""},"line":{"width":0}},"name":"Lucknow Super Giants","offsetgroup":"Lucknow Super Giants","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"5gfnB+gH6QfqBw=="},"xaxis":"x","y":{"dtype":"i1","bdata":"CQgHBgI="},"yaxis":"y","type":"bar"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{"text":"season"},"tickmode":"linear","dtick":1,"tickangle":45},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"matches won"}},"legend":{"title":{"text":"team"},"tracegroupgap":0},"title":{"text":"IPL wins per team per season (2008-2026)"},"barmode":"group","height":480,"font":{"family":"Arial"},"plot_bgcolor":"white","paper_bgcolor":"white","bargap":0.15}, {"responsive": true} ) }; </script> </div>
|
| 6 |
+
</body>
|
| 7 |
+
</html>
|
data/processed/charts/02_venue_heatmap.html
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<html>
|
| 2 |
+
<head><meta charset="utf-8" /></head>
|
| 3 |
+
<body>
|
| 4 |
+
<div> <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
|
| 5 |
+
<script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script> <div id="d1b2b117-e816-4414-a4a2-cc353a0ccc13" class="plotly-graph-div" style="height:460px; width:100%;"></div> <script> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("d1b2b117-e816-4414-a4a2-cc353a0ccc13")) { Plotly.newPlot( "d1b2b117-e816-4414-a4a2-cc353a0ccc13", [{"colorbar":{"ticksuffix":"%","title":{"text":"win %"}},"colorscale":[[0.0,"#FCEBEB"],[0.4,"#F09595"],[0.6,"#9FE1CB"],[1.0,"#085041"]],"hoverongaps":false,"text":[["75%","64%","54%","67%","46%","65%","0%","50%","50%","50%","38%","52%"],["33%","0%","0%","0%","0%","0%","0%","0%","0%","0%","17%","0%"],["50%","47%","20%","42%","43%","38%","67%","14%","33%","33%","54%","32%"],["0%","0%","0%","0%","0%","0%","54%","0%","0%","0%","0%","67%"],["0%","62%","27%","46%","42%","33%","0%","54%","17%","33%","40%","46%"],["50%","43%","56%","46%","67%","35%","60%","50%","50%","54%","67%","26%"],["0%","0%","60%","0%","0%","0%","0%","0%","0%","0%","0%","50%"],["54%","30%","71%","47%","69%","50%","17%","56%","29%","67%","64%","60%"],["29%","0%","0%","0%","0%","0%","0%","0%","0%","0%","0%","0%"],["0%","0%","0%","0%","0%","83%","57%","20%","0%","0%","0%","56%"],["33%","20%","29%","43%","40%","20%","67%","43%","68%","75%","30%","50%"],["50%","67%","43%","67%","50%","43%","50%","62%","43%","33%","33%","50%"],["0%","54%","33%","69%","30%","23%","0%","67%","0%","33%","61%","14%"]],"textfont":{"size":10},"texttemplate":"%{text}","x":["DY Patil","Dubai International Cricket","Eden Gardens","Feroz Shah Kotla","M Chinnaswamy","MA Chidambaram","Motera","PCA","Sawai Mansingh","Sheikh Zayed","Uppal","Wankhede"],"y":["Chennai Super Kings","Deccan Chargers","Delhi Capitals","Gujarat Titans","Kings XI Punjab","Kolkata Knight Riders","Lucknow Super Giants","Mumbai Indians","Pune Warriors India","Punjab Kings","Rajasthan Royals","Royal Challengers Bangalore","Sunrisers Hyderabad"],"z":{"dtype":"f8","bdata":"AAAAAADAUkAzMzMzMxNQQGZmZmZm5kpAzczMzMysUECamZmZmRlHQJqZmZmZWVBAAAAAAAAAAAAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAMBCQDMzMzMz80lAZmZmZmamQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMzM7MwQAAAAAAAAAAAAAAAAAAASUCamZmZmVlHQAAAAAAAADRAZmZmZmbmREAzMzMzM3NFQAAAAAAAQENAzczMzMysUECamZmZmZksQGZmZmZmpkBAZmZmZmamQEAAAAAAAEBLQJqZmZmZmT9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZmZmZmbmSkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MzMzMrFBAAAAAAAAAAAAAAAAAAEBPQM3MzMzMTDtAAAAAAADARkCamZmZmdlEQGZmZmZmpkBAAAAAAAAAAADNzMzMzMxKQDMzMzMzszBAZmZmZmamQEAAAAAAAABEQAAAAAAAwEZAAAAAAAAASUAzMzMzM3NFQM3MzMzMzEtAmpmZmZkZR0DNzMzMzKxQQGZmZmZmpkFAAAAAAAAATkAAAAAAAABJQAAAAAAAAElAAAAAAABAS0DNzMzMzKxQQM3MzMzMTDpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElAAAAAAABAS0AAAAAAAAA+QJqZmZmZ2VFAzczMzMyMR0DNzMzMzExRQAAAAAAAAElAMzMzMzOzMEDNzMzMzMxLQJqZmZmZmTxAzczMzMysUEAzMzMzMxNQQDMzMzMzM05AmpmZmZmZPEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMzMz01RAzczMzMyMTEAAAAAAAAA0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MzMzMzEtAZmZmZmamQEAAAAAAAAA0QJqZmZmZmTxAMzMzMzNzRUAAAAAAAABEQAAAAAAAADRAzczMzMysUEAzMzMzM3NFQGZmZmZmBlFAAAAAAADAUkAAAAAAAAA+QAAAAAAAAElAAAAAAAAASUDNzMzMzKxQQDMzMzMzc0VAzczMzMysUEAAAAAAAABJQDMzMzMzc0VAAAAAAAAASUAAAAAAAEBPQDMzMzMzc0VAZmZmZmamQEBmZmZmZqZAQAAAAAAAAElAAAAAAAAAAABmZmZmZuZKQGZmZmZmpkBAzczMzMxMUUAAAAAAAAA+QJqZmZmZGTdAAAAAAAAAAADNzMzMzKxQQAAAAAAAAAAAZmZmZmamQECamZmZmZlOQJqZmZmZmSxA","shape":"13, 12"},"zmax":100,"zmin":0,"type":"heatmap"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"font":{"family":"Arial"},"xaxis":{"tickfont":{"size":11},"tickangle":-35},"yaxis":{"tickfont":{"size":11}},"margin":{"l":160,"b":140},"title":{"text":"Win % by team at each venue (Top 12 Venues, 5+ games played)"},"height":460,"plot_bgcolor":"white","paper_bgcolor":"white"}, {"responsive": true} ) }; </script> </div>
|
| 6 |
+
</body>
|
| 7 |
+
</html>
|
data/processed/charts/03_toss_impact.html
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<html>
|
| 2 |
+
<head><meta charset="utf-8" /></head>
|
| 3 |
+
<body>
|
| 4 |
+
<div> <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
|
| 5 |
+
<script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script> <div id="b0793189-3d34-4743-bd3f-599a66b7de8a" class="plotly-graph-div" style="height:450px; width:100%;"></div> <script> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("b0793189-3d34-4743-bd3f-599a66b7de8a")) { Plotly.newPlot( "b0793189-3d34-4743-bd3f-599a66b7de8a", [{"marker":{"color":"#7F77DD"},"name":"Chose to Bat","text":["46.1%"],"textposition":"auto","x":["Bat"],"y":[46.1],"type":"bar","xaxis":"x","yaxis":"y"},{"marker":{"color":"#1D9E75"},"name":"Chose to Field","text":["54.4%"],"textposition":"auto","x":["Field"],"y":[54.4],"type":"bar","xaxis":"x","yaxis":"y"},{"line":{"color":"#7F77DD","width":3},"marker":{"size":8,"symbol":"diamond"},"mode":"lines+markers","name":"Season Trend","x":{"dtype":"i2","bdata":"2AfZB9oH2wfcB90H3gffB+AH4QfiB+MH5AflB+YH5wfoB+kH6gc="},"y":{"dtype":"f8","bdata":"ZmZmZmYmSEAzMzMzM\u002fNMQJqZmZmZ2UlAZmZmZmZmSkDNzMzMzExGQDMzMzMzs0dAAAAAAAAASUDNzMzMzIxIQJqZmZmZWUxAzczMzMzMTEBmZmZmZqZKQAAAAAAAgE5AmpmZmZnZREBmZmZmZiZNQM3MzMzMTEhAzczMzMxMR0CamZmZmdlFQDMzMzMzs05AZmZmZmamS0A="},"type":"scatter","xaxis":"x2","yaxis":"y2"}], {"template":{"data":{"barpolar":[{"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"type":"carpet"}],"choropleth":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"choropleth"}],"contourcarpet":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"contourcarpet"}],"contour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"contour"}],"heatmap":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmap"}],"histogram2dcontour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2dcontour"}],"histogram2d":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2d"}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"mesh3d":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"mesh3d"}],"parcoords":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"parcoords"}],"pie":[{"automargin":true,"type":"pie"}],"scatter3d":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatter3d"}],"scattercarpet":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattercarpet"}],"scattergeo":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergeo"}],"scattergl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergl"}],"scattermapbox":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermapbox"}],"scattermap":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermap"}],"scatterpolargl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolargl"}],"scatterpolar":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolar"}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"scatterternary":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterternary"}],"surface":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"surface"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}]},"layout":{"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"autotypenumbers":"strict","coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]],"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]},"colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"geo":{"bgcolor":"white","lakecolor":"white","landcolor":"white","showlakes":true,"showland":true,"subunitcolor":"#C8D4E3"},"hoverlabel":{"align":"left"},"hovermode":"closest","mapbox":{"style":"light"},"paper_bgcolor":"white","plot_bgcolor":"white","polar":{"angularaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""},"bgcolor":"white","radialaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""}},"scene":{"xaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"yaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"zaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"ternary":{"aaxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"baxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"bgcolor":"white","caxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""}},"title":{"x":0.05},"xaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2},"yaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2}}},"xaxis":{"anchor":"y","domain":[0.0,0.45]},"yaxis":{"anchor":"x","domain":[0.0,1.0],"ticksuffix":"%","range":[0,100]},"xaxis2":{"anchor":"y2","domain":[0.55,1.0]},"yaxis2":{"anchor":"x2","domain":[0.0,1.0],"ticksuffix":"%","range":[0,100]},"annotations":[{"font":{"size":16},"showarrow":false,"text":"Win % Based on Toss Decision","x":0.225,"xanchor":"center","xref":"paper","y":1.0,"yanchor":"bottom","yref":"paper"},{"font":{"size":16},"showarrow":false,"text":"Toss Win\u002fMatch Win Correlation by Season","x":0.775,"xanchor":"center","xref":"paper","y":1.0,"yanchor":"bottom","yref":"paper"},{"showarrow":false,"text":"50% Threshold","x":1,"xanchor":"right","xref":"x2 domain","y":50,"yanchor":"bottom","yref":"y2"}],"shapes":[{"line":{"color":"#888780","dash":"dot"},"type":"line","x0":0,"x1":1,"xref":"x2 domain","y0":50,"y1":50,"yref":"y2"}],"title":{"text":"Toss Impact: Toss Winners have won the match 51.6% of the time overall"},"height":450,"showlegend":false}, {"responsive": true} ) }; </script> </div>
|
| 6 |
+
</body>
|
| 7 |
+
</html>
|
data/processed/charts/04_batting_scatter.html
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<html>
|
| 2 |
+
<head><meta charset="utf-8" /></head>
|
| 3 |
+
<body>
|
| 4 |
+
<div> <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
|
| 5 |
+
<script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script> <div id="a820a855-d84c-46ee-94dd-6745ee64e94e" class="plotly-graph-div" style="height:520px; width:100%;"></div> <script> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("a820a855-d84c-46ee-94dd-6745ee64e94e")) { Plotly.newPlot( "a820a855-d84c-46ee-94dd-6745ee64e94e", [{"customdata":[[9022,8,66,6743,"Elite (high SR + high avg)"],[7185,2,48,5417,"Elite (high SR + high avg)"],[6567,4,62,4682,"Elite (high SR + high avg)"],[5593,6,42,4048,"Elite (high SR + high avg)"],[5536,1,39,4025,"Elite (high SR + high avg)"],[5439,0,24,3944,"Elite (high SR + high avg)"],[5181,3,40,3400,"Elite (high SR + high avg)"],[5008,5,26,3556,"Elite (high SR + high avg)"],[4997,6,31,3331,"Elite (high SR + high avg)"],[4843,0,22,3570,"Elite (high SR + high avg)"],[4773,0,39,3515,"Elite (high SR + high avg)"],[4468,2,30,3017,"Elite (high SR + high avg)"],[4391,7,26,2937,"Elite (high SR + high avg)"],[4196,4,29,3025,"Elite (high SR + high avg)"],[4044,0,31,2993,"Elite (high SR + high avg)"],[3880,4,21,2801,"Elite (high SR + high avg)"],[3756,2,20,2567,"Elite (high SR + high avg)"],[3444,3,24,2557,"Elite (high SR + high avg)"],[3437,0,16,2315,"Elite (high SR + high avg)"],[3310,1,20,2347,"Elite (high SR + high avg)"],[3222,1,13,2233,"Elite (high SR + high avg)"],[3200,1,13,2309,"Elite (high SR + high avg)"],[3022,0,22,2205,"Elite (high SR + high avg)"],[2882,2,13,2176,"Elite (high SR + high avg)"],[2855,0,10,1949,"Elite (high SR + high avg)"],[2728,2,16,1740,"Elite (high SR + high avg)"],[2680,2,21,1970,"Elite (high SR + high avg)"],[2655,0,12,1518,"Elite (high SR + high avg)"],[2489,1,20,1866,"Elite (high SR + high avg)"],[2472,2,18,1627,"Elite (high SR + high avg)"],[2385,0,17,1755,"Elite (high SR + high avg)"],[2375,0,14,1488,"Elite (high SR + high avg)"],[2291,0,12,1655,"Elite (high SR + high avg)"],[2196,2,12,1325,"Elite (high SR + high avg)"],[2136,1,10,1452,"Elite (high SR + high avg)"],[2115,3,14,1447,"Elite (high SR + high avg)"],[2069,2,11,1483,"Elite (high SR + high avg)"],[2009,0,10,1428,"Elite (high SR + high avg)"],[1829,2,10,1124,"Elite (high SR + high avg)"],[1701,1,12,1095,"Elite (high SR + high avg)"],[1680,1,8,1157,"Elite (high SR + high avg)"],[1674,2,9,1145,"Elite (high SR + high avg)"],[1633,0,10,1208,"Elite (high SR + high avg)"],[1560,0,5,1056,"Elite (high SR + high avg)"],[1504,1,10,1087,"Elite (high SR + high avg)"],[1497,1,12,1089,"Elite (high SR + high avg)"],[1349,1,11,851,"Elite (high SR + high avg)"],[1332,1,8,825,"Elite (high SR + high avg)"],[1329,0,10,941,"Elite (high SR + high avg)"],[1318,0,6,920,"Elite (high SR + high avg)"],[1258,0,12,729,"Elite (high SR + high avg)"],[1107,0,8,799,"Elite (high SR + high avg)"],[1080,0,11,776,"Elite (high SR + high avg)"],[1066,0,7,687,"Elite (high SR + high avg)"],[1029,0,2,590,"Elite (high SR + high avg)"],[1001,1,4,742,"Elite (high SR + high avg)"],[928,0,7,619,"Elite (high SR + high avg)"],[912,0,5,585,"Elite (high SR + high avg)"],[903,1,3,593,"Elite (high SR + high avg)"],[843,0,5,539,"Elite (high SR + high avg)"],[828,1,5,430,"Elite (high SR + high avg)"],[768,1,4,529,"Elite (high SR + high avg)"],[672,0,4,477,"Elite (high SR + high avg)"],[657,0,3,478,"Elite (high SR + high avg)"],[654,0,4,477,"Elite (high SR + high avg)"],[652,2,3,303,"Elite (high SR + high avg)"],[614,0,4,441,"Elite (high SR + high avg)"],[577,2,3,406,"Elite (high SR + high avg)"],[546,0,2,324,"Elite (high SR + high avg)"],[525,0,4,355,"Elite (high SR + high avg)"],[519,0,2,359,"Elite (high SR + high avg)"],[463,1,2,303,"Elite (high SR + high avg)"],[441,0,3,250,"Elite (high SR + high avg)"],[413,0,2,289,"Elite (high SR + high avg)"],[381,0,3,273,"Elite (high SR + high avg)"],[379,0,4,258,"Elite (high SR + high avg)"]],"hovertemplate":"\u003cb\u003e%{hovertext}\u003c\u002fb\u003e\u003cbr\u003e\u003cbr\u003ebatting average=%{x}\u003cbr\u003estrike rate=%{y}\u003cbr\u003etotal_runs=%{customdata[0]}\u003cbr\u003ehundreds=%{customdata[1]}\u003cbr\u003efifties=%{customdata[2]}\u003cbr\u003eballs_faced=%{customdata[3]}\u003cextra\u003e\u003c\u002fextra\u003e","hovertext":["V Kohli","RG Sharma","DA Warner","KL Rahul","SK Raina","MS Dhoni","AB de Villiers","SV Samson","CH Gayle","KD Karthik","F du Plessis","SA Yadav","JC Buttler","Shubman Gill","SS Iyer","SR Watson","RR Pant","Q de Kock","KA Pollard","Ishan Kishan","YK Pathan","DA Miller","N Rana","BB McCullum","HH Pandya","V Sehwag","RD Gaikwad","AD Russell","SE Marsh","YBK Jaiswal","DR Smith","N Pooran","RA Tripathi","Abhishek Sharma","MP Stoinis","B Sai Sudharsan","AC Gilchrist","S Dube","H Klaasen","P Simran Singh","Tilak Varma","JM Bairstow","AK Markram","SO Hetmyer","MR Marsh","VR Iyer","RM Patidar","TM Head","CA Lynn","RK Singh","PD Salt","ML Hayden","DP Conway","LS Livingstone","TH David","KP Pietersen","Dhruv Jurel","T Stubbs","C Green","Shashank Singh","Priyansh Arya","ST Jayasuriya","A Raghuvanshi","Nithish Kumar Reddy","E Lewis","V Suryavanshi","JJ Roy","HM Amla","Naman Dhir","RD Rickelton","D Brevis","WG Jacks","A Mhatre","R Ravindra","Sameer Rizvi","KR Mayers"],"legendgroup":"Elite (high SR + high avg)","marker":{"color":"#085041","size":{"dtype":"i2","bdata":"PiMRHKcZ2RWgFT8VPRSQE4UT6xKlEnQRJxFkEMwPKA+sDnQNbQ3uDJYMgAzOC0ILJwuoCngKXwq5CagJUQlHCfMIlAhYCEMIFQjZByUHpQaQBooGYQYYBuAF2QVFBTQFMQUmBeoEUwQ4BCoEBQTpA6ADkAOHA0sDPAMAA6ACkQKOAowCZgJBAiICDQIHAs8BuQGdAX0BewE="},"sizemode":"area","sizeref":11.50765306122449,"symbol":"circle","line":{"color":"white","width":0.5}},"mode":"markers","name":"Elite (high SR + high avg)","orientation":"v","showlegend":true,"x":{"dtype":"f8","bdata":"KVyPwvUIQ0Bcj8L1KNw8QIXrUbgeBURAXI\u002fC9Si8RkAzMzMzM5NAQPYoXI\u002fCNUFAmpmZmZm5REBmZmZmZuY\u002fQM3MzMzMrENAZmZmZmbmOUCuR+F6FK5BQI\u002fC9ShcL0FAexSuR+GaQ0DNzMzMzCxEQD0K16Nw\u002fUBACtejcD0KP0AfhetRuJ5AQI\u002fC9ShcTz9ApHA9CtejOkBmZmZmZqY+QArXo3A9Sj1ApHA9CtdjQUC4HoXrUXg7QHE9CtejMDtAuB6F61G4O0DXo3A9Ctc7QBSuR+F6tENAXI\u002fC9SjcPECF61G4HiVDQArXo3A96kFAcT0K16NwPUAAAAAAAEA\u002fQKRwPQrXozpASOF6FK5HPUB7FK5H4Xo8QLgehetRmEhAuB6F61E4O0BxPQrXo3A+QKRwPQrXQ0VAFK5H4XpUPUDXo3A9ChdDQD0K16NwvUBAcT0K16OwPUBmZmZmZuY6QJqZmZmZ2TtAcT0K16PwPUCPwvUoXA9AQB+F61G4PkBACtejcD0KQUAzMzMzMxNAQK5H4XoUjkBAAAAAAACARECamZmZmZlFQAAAAAAAADpAAAAAAABgQkAAAAAAAOBBQK5H4XoU7j5AzczMzMzMRkA9CtejcF1BQDMzMzMzE0VAj8L1KFyPQEB7FK5H4Xo6QLgehetROD1A4XoUrkdhO0AAAAAAAEA7QAAAAAAAYERArkfhehQOQUBxPQrXozBGQM3MzMzMTDtA7FG4HoUrPUAzMzMzM\u002fM5QHE9Ctej8DxAAAAAAABgQkCPwvUoXM85QI\u002fC9ShcTz1AZmZmZmYmPUA="},"xaxis":"x","y":{"dtype":"f8","bdata":"mpmZmZm5YEAUrkfhepRgQLgehetRiGFAPQrXo3BFYUDhehSuRzFhQIXrUbgePWFAXI\u002fC9SgMY0DD9Shcj5phQHE9CtejwGJAhetRuB71YEDhehSuR\u002flgQHsUrkfhgmJAuB6F61GwYkAfhetRuFZhQKRwPQrX42BAcT0K16NQYUAK16NwPUpiQK5H4XoU1mBA16NwPQqPYkApXI\u002fC9aBhQOF6FK5HCWJAexSuR+FSYUCamZmZmSFhQK5H4XoUjmBASOF6FK5PYkApXI\u002fC9ZhjQOF6FK5HAWFAzczMzMzcZUAUrkfheqxgQK5H4XoU\u002fmJAzczMzMz8YEDsUbgehfNjQPYoXI\u002fCTWFASOF6FK63ZEDsUbgehWNiQIXrUbgeRWJAuB6F61FwYUCuR+F6FJZhQNejcD0KV2RAexSuR+FqY0BmZmZmZiZiQGZmZmZmRmJA9ihcj8LlYECPwvUoXHdiQOxRuB6FS2FA16NwPQovYUBxPQrXo9BjQGZmZmZmLmRAj8L1KFynYUC4HoXrUehhQArXo3A9kmVAmpmZmZlRYUD2KFyPwmVhQD0K16NwZWNAhetRuB7NZUCF61G4Ht1gQD0K16NwvWJAzczMzMx8Y0ApXI\u002fC9QhjQM3MzMzMjGNAUrgehesRaED2KFyPwiViQFyPwvUonGFAZmZmZmYuYUDsUbgehSNhQPYoXI\u002fC5WpAj8L1KFxnYUCkcD0K18NhQHE9CtejEGVAFK5H4Xp8YkAK16NwPRJiQFK4HoXrGWNAzczMzMwMZkCF61G4Ht1hQFK4HoXrcWFAzczMzMxcYkA="},"yaxis":"y","type":"scatter"},{"customdata":[[6769,2,51,5304,"Anchor (lower SR, high avg)"],[5194,2,34,4158,"Anchor (lower SR, high avg)"],[4954,0,27,3784,"Anchor (lower SR, high avg)"],[4348,1,22,3391,"Anchor (lower SR, high avg)"],[4217,0,36,3394,"Anchor (lower SR, high avg)"],[3951,1,22,3241,"Anchor (lower SR, high avg)"],[3392,0,5,2608,"Anchor (lower SR, high avg)"],[2619,2,13,2148,"Anchor (lower SR, high avg)"],[2495,1,11,1931,"Anchor (lower SR, high avg)"],[2427,0,17,2213,"Anchor (lower SR, high avg)"],[2334,1,13,1941,"Anchor (lower SR, high avg)"],[2174,0,11,1878,"Anchor (lower SR, high avg)"],[2132,0,18,1692,"Anchor (lower SR, high avg)"],[2048,1,14,1564,"Anchor (lower SR, high avg)"],[2029,0,14,1631,"Anchor (lower SR, high avg)"],[1977,1,15,1610,"Anchor (lower SR, high avg)"],[1808,1,10,1462,"Anchor (lower SR, high avg)"],[1695,0,7,1444,"Anchor (lower SR, high avg)"],[1494,0,8,1235,"Anchor (lower SR, high avg)"],[1441,0,11,1208,"Anchor (lower SR, high avg)"],[1400,0,6,1112,"Anchor (lower SR, high avg)"],[1322,0,5,1070,"Anchor (lower SR, high avg)"],[1233,0,7,952,"Anchor (lower SR, high avg)"],[1153,0,9,1001,"Anchor (lower SR, high avg)"],[1079,1,11,848,"Anchor (lower SR, high avg)"],[1000,0,5,785,"Anchor (lower SR, high avg)"],[974,1,5,745,"Anchor (lower SR, high avg)"],[971,0,6,757,"Anchor (lower SR, high avg)"],[886,0,6,805,"Anchor (lower SR, high avg)"],[531,0,3,453,"Anchor (lower SR, high avg)"],[506,0,4,388,"Anchor (lower SR, high avg)"],[394,0,1,307,"Anchor (lower SR, high avg)"],[351,0,2,267,"Anchor (lower SR, high avg)"],[327,0,1,300,"Anchor (lower SR, high avg)"],[302,0,1,243,"Anchor (lower SR, high avg)"]],"hovertemplate":"\u003cb\u003e%{hovertext}\u003c\u002fb\u003e\u003cbr\u003e\u003cbr\u003ebatting average=%{x}\u003cbr\u003estrike rate=%{y}\u003cbr\u003etotal_runs=%{customdata[0]}\u003cbr\u003ehundreds=%{customdata[1]}\u003cbr\u003efifties=%{customdata[2]}\u003cbr\u003eballs_faced=%{customdata[3]}\u003cextra\u003e\u003c\u002fextra\u003e","hovertext":["S Dhawan","AM Rahane","RV Uthappa","AT Rayudu","G Gambhir","MK Pandey","RA Jadeja","M Vijay","SPD Smith","JH Kallis","SR Tendulkar","R Dravid","KS Williamson","D Padikkal","JP Duminy","MEK Hussey","DPMD Jayawardene","MK Tiwary","SS Tiwary","S Badrinath","BJ Hodge","DJ Hussey","V Shankar","TM Dilshan","LMP Simmons","MC Henriques","A Symonds","CL White","HH Gibbs","RS Bopara","OA Shah","MV Boucher","DJ Mitchell","JEC Franklin","LA Pomersbach"],"legendgroup":"Anchor (lower SR, high avg)","marker":{"color":"#7F77DD","size":{"dtype":"i2","bdata":"cRpKFFoT\u002fBB5EG8PQA07Cr8JewkeCX4IVAgACO0HuQcQB58G1gWhBXgFKgXRBIEENwToA84DywN2AxMC+gGKAV8BRwEuAQ=="},"sizemode":"area","sizeref":11.50765306122449,"symbol":"circle","line":{"color":"white","width":0.5}},"mode":"markers","name":"Anchor (lower SR, high avg)","orientation":"v","showlegend":true,"x":{"dtype":"f8","bdata":"KVyPwvWIQUCamZmZmdk9QLgehetRODtAXI\u002fC9SicPEC4HoXrUXg\u002fQD0K16NwfT1ApHA9CtcjO0BI4XoUrkc7QD0K16Nw\u002fT9AhetRuB5FO0CPwvUoXG9AQHsUrkfhOjxAUrgehesRQkCamZmZmZk6QBSuR+F6tERAw\u002fUoXI8CQ0AAAAAAAEA8QAAAAAAAQDxAPQrXo3B9PkCF61G4HgU+QK5H4XoUbj5ACtejcD2KO0DNzMzMzMw6QB+F61G4HjxAexSuR+H6Q0BSuB6F61E6QHsUrkfhukJAPQrXo3C9O0BxPQrXo7A7QDMzMzMz8ztA9ihcj8J1Q0CF61G4HkU6QAAAAAAAADtAexSuR+G6PUAzMzMzM3M7QA=="},"xaxis":"x","y":{"dtype":"f8","bdata":"SOF6FK7nX0B7FK5H4TpfQD0K16NwXWBA16NwPQoHYEAAAAAAABBfQArXo3A9el5AUrgehetBYEDsUbgehXteQB+F61G4JmBAexSuR+FqW0AAAAAAABBeQHE9Ctej8FxAAAAAAACAX0BmZmZmZl5gQJqZmZmZGV9AMzMzMzOzXkB7FK5H4epeQLgehetRWF1ArkfhehQ+XkDD9Shcj9JdQJqZmZmZeV9AMzMzMzPjXkBxPQrXozBgQOxRuB6Fy1xAj8L1KFzPX0ApXI\u002fC9dhfQEjhehSuV2BAcT0K16MIYECkcD0K14NbQK5H4XoUTl1AhetRuB5NYEB7FK5H4QpgQB+F61G4bmBAAAAAAABAW0BSuB6F6xFfQA=="},"yaxis":"y","type":"scatter"},{"customdata":[[2934,1,13,2296,"Developing"],[2848,0,13,2350,"Developing"],[2754,0,13,2115,"Developing"],[2092,0,15,1626,"Developing"],[1792,0,2,1358,"Developing"],[1706,0,6,1385,"Developing"],[1699,0,11,1296,"Developing"],[1687,0,10,1385,"Developing"],[1560,0,5,1196,"Developing"],[1554,0,6,1308,"Developing"],[1497,0,8,1170,"Developing"],[1406,0,5,1147,"Developing"],[1349,0,7,1257,"Developing"],[1208,0,4,969,"Developing"],[1150,0,1,947,"Developing"],[1083,0,3,828,"Developing"],[1017,0,3,818,"Developing"],[985,0,3,832,"Developing"],[880,0,0,682,"Developing"],[833,0,1,704,"Developing"],[798,0,4,700,"Developing"],[795,0,2,635,"Developing"],[739,0,4,664,"Developing"],[724,0,1,573,"Developing"],[676,0,2,573,"Developing"],[672,0,0,573,"Developing"],[668,0,1,521,"Developing"],[663,0,2,541,"Developing"],[624,0,0,561,"Developing"],[560,0,1,462,"Developing"],[538,0,3,421,"Developing"],[514,0,0,470,"Developing"],[511,0,2,422,"Developing"],[505,1,2,414,"Developing"],[503,0,3,385,"Developing"],[460,0,0,394,"Developing"],[423,0,2,337,"Developing"],[409,0,1,358,"Developing"],[405,0,0,350,"Developing"],[401,0,0,354,"Developing"],[390,0,1,390,"Developing"],[388,0,2,303,"Developing"],[381,0,0,417,"Developing"],[375,0,1,315,"Developing"],[368,0,2,289,"Developing"],[365,0,0,288,"Developing"],[352,0,0,295,"Developing"],[342,0,0,284,"Developing"],[340,0,0,312,"Developing"],[339,0,1,272,"Developing"],[339,0,1,256,"Developing"],[318,0,1,267,"Developing"],[310,0,0,274,"Developing"],[305,0,0,285,"Developing"],[304,0,0,260,"Developing"],[300,0,1,299,"Developing"],[295,0,1,241,"Developing"],[293,0,1,293,"Developing"],[292,0,0,236,"Developing"],[285,0,0,259,"Developing"],[284,0,0,319,"Developing"],[282,0,1,266,"Developing"],[282,0,0,219,"Developing"],[280,0,1,250,"Developing"],[273,0,1,238,"Developing"],[270,0,0,230,"Developing"],[259,0,0,249,"Developing"],[250,0,0,232,"Developing"],[244,0,0,203,"Developing"],[237,0,0,206,"Developing"],[218,0,0,231,"Developing"],[217,0,1,209,"Developing"],[210,0,0,255,"Developing"],[208,0,0,201,"Developing"],[198,0,0,213,"Developing"]],"hovertemplate":"\u003cb\u003e%{hovertext}\u003c\u002fb\u003e\u003cbr\u003e\u003cbr\u003ebatting average=%{x}\u003cbr\u003estrike rate=%{y}\u003cbr\u003etotal_runs=%{customdata[0]}\u003cbr\u003ehundreds=%{customdata[1]}\u003cbr\u003efifties=%{customdata[2]}\u003cbr\u003eballs_faced=%{customdata[3]}\u003cextra\u003e\u003c\u002fextra\u003e","hovertext":["WP Saha","PA Patel","Yuvraj Singh","AJ Finch","KH Pandya","Mandeep Singh","KK Nair","KC Sangakkara","DJ Bravo","NV Ojha","DJ Hooda","EJG Morgan","SC Ganguly","KM Jadhav","IK Pathan","M Vohra","LRPL Taylor","Y Venugopal Rao","STR Binny","R Ashwin","MS Bisla","Shakib Al Hasan","GC Smith","AD Mathews","TL Suman","AM Nayar","Washington Sundar","GJ Bailey","PP Chawla","Shahbaz Ahmed","CJ Anderson","M Manhas","Gurkeerat Singh","PC Valthaty","SW Billings","DT Christian","SA Asnodkar","J Botha","LR Shukla","AL Menaria","CA Pujara","Azhar Mahmood","A Mishra","DB Ravi Teja","S Sohal","P Negi","KV Sharma","R Bhatia","P Kumar","AP Tare","SN Thakur","Anuj Rawat","R Vinay Kumar","Lalit Yadav","DB Das","UBT Chand","DJG Sammy","SP Goswami","A Manohar","Y Nagar","GH Vihari","VVS Laxman","JO Holder","B Chipli","PK Garg","R Sathish","M Kaif","K Rabada","Harpreet Brar","MD Mishra","K Goel","AA Jhunjhunwala","Kuldeep Yadav","UT Yadav","SK Warne"],"legendgroup":"Developing","marker":{"color":"#D3D1C7","size":{"dtype":"i2","bdata":"dgsgC8IKLAgAB6oGowaXBhgGEgbZBX4FRQW4BH4EOwT5A9kDcANBAx4DGwPjAtQCpAKgApwClwJwAjACGgICAv8B+QH3AcwBpwGZAZUBkQGGAYQBfQF3AXABbQFgAVYBVAFTAVMBPgE2ATEBMAEsAScBJQEkAR0BHAEaARoBGAERAQ4BAwH6APQA7QDaANkA0gDQAMYA"},"sizemode":"area","sizeref":11.50765306122449,"symbol":"circle","line":{"color":"white","width":0.5}},"mode":"markers","name":"Developing","orientation":"v","showlegend":true,"x":{"dtype":"f8","bdata":"XI\u002fC9SjcOECuR+F6FG42QIXrUbgeRTlAZmZmZmbmOECamZmZmdk1QI\u002fC9ShcTzRAhetRuB5FN0AzMzMzM3M4QFyPwvUonDZAAAAAAAAANUB7FK5H4XoyQM3MzMzMDDdAexSuR+H6OEAfhetRuF42QB+F61G4HjZAj8L1KFyPNkDNzMzMzMw4QDMzMzMzczdAAAAAAAAANEDhehSuR+EqQFK4HoXrkTVA4XoUrkdhNEDhehSuR6E4QJqZmZmZWTdASOF6FK6HNkB7FK5H4ToxQM3MzMzMDDJAXI\u002fC9SjcNkBmZmZmZuYlQOxRuB6FqzJAMzMzMzNzOEDsUbgehWs1QK5H4XoU7jJAMzMzMzPzNkCamZmZmVkzQK5H4XoUbjBAw\u002fUoXI9CNkDXo3A9CpcyQHE9Ctej8CtAexSuR+E6MkDsUbgehas1QOxRuB6FazRAZmZmZmZmKUAAAAAAAMAyQHE9CtejcDRAFK5H4XoULEApXI\u002fC9SgsQBSuR+F6lCdAAAAAAAAAJEA9CtejcD0sQLgehetROChA9ihcj8K1NkDXo3A9CtcnQBSuR+F6VDRAFK5H4XpUOUAAAAAAAAAuQOxRuB6FqzNAzczMzMxMLUA9CtejcL0uQAAAAAAAADNAZmZmZmZmLEAfhetRuJ4xQFyPwvUo3CpAAAAAAACAMUA9CtejcL0sQOF6FK5H4TBAcT0K16MwMEBSuB6F61EqQIXrUbgexTJAmpmZmZmZL0CF61G4HsUwQAAAAAAAAC9AAAAAAAAALEDNzMzMzMwkQNejcD0K1yRA"},"xaxis":"x","y":{"dtype":"f8","bdata":"w\u002fUoXI\u002fyX0Bcj8L1KExeQB+F61G4RmBAhetRuB4VYEAfhetRuH5gQOxRuB6Fy15AMzMzMzNjYECkcD0K13NeQPYoXI\u002fCTWBApHA9CtezXUDNzMzMzPxfQIXrUbgepV5AFK5H4XrUWkAK16NwPSpfQFyPwvUoXF5AmpmZmZlZYECF61G4HhVfQClcj8L1mF1AKVyPwvUgYEAUrkfhepRdQAAAAAAAgFxAzczMzMxMX0AzMzMzM9NbQGZmZmZmll9AH4XrUbh+XUBSuB6F61FdQB+F61G4BmBAMzMzMzOjXkAfhetRuM5bQD0K16NwTV5Aw\u002fUoXI\u002fyX0DXo3A9CldbQPYoXI\u002fCRV5AH4XrUbh+XkDNzMzMzFRgQAAAAAAAMF1A4XoUrkdhX0AAAAAAAJBcQD0K16Nw7VxAUrgehetRXEAAAAAAAABZQJqZmZmZAWBASOF6FK7XVkAzMzMzM8NdQPYoXI\u002fC1V9Aj8L1KFyvX0AUrkfhetRdQHsUrkfhGl5ArkfhehQ+W0C4HoXrUShfQD0K16NwjWBAZmZmZmbGXUApXI\u002fC9UhcQOF6FK5HwVpAexSuR+E6XUCF61G4HhVZQArXo3A9ml5AAAAAAAAAWUAfhetRuO5eQMP1KFyPgltAUrgehetBVkDhehSuR4FaQHE9CtejGGBAAAAAAAAAXEA9CtejcK1cQClcj8L1WF1A4XoUrkcBWkBxPQrXo\u002fBaQM3MzMzMDF5AMzMzMzPDXEBI4XoUrpdXQIXrUbge9VlAZmZmZmaWVEAfhetRuN5ZQD0K16NwPVdA"},"yaxis":"y","type":"scatter"},{"customdata":[[2820,0,18,1815,"Aggresive (high SR, lower avg)"],[2764,1,13,2055,"Aggresive (high SR, lower avg)"],[1947,0,3,1462,"Aggresive (high SR, lower avg)"],[1892,0,14,1280,"Aggresive (high SR, lower avg)"],[1820,1,7,1118,"Aggresive (high SR, lower avg)"],[1687,0,7,1209,"Aggresive (high SR, lower avg)"],[1167,0,6,834,"Aggresive (high SR, lower avg)"],[1161,0,1,857,"Aggresive (high SR, lower avg)"],[1135,0,7,832,"Aggresive (high SR, lower avg)"],[1053,0,1,690,"Aggresive (high SR, lower avg)"],[997,0,6,731,"Aggresive (high SR, lower avg)"],[975,0,3,683,"Aggresive (high SR, lower avg)"],[935,2,2,695,"Aggresive (high SR, lower avg)"],[833,0,1,599,"Aggresive (high SR, lower avg)"],[815,0,0,558,"Aggresive (high SR, lower avg)"],[784,0,4,566,"Aggresive (high SR, lower avg)"],[767,0,2,521,"Aggresive (high SR, lower avg)"],[746,0,2,544,"Aggresive (high SR, lower avg)"],[691,0,3,479,"Aggresive (high SR, lower avg)"],[618,0,2,397,"Aggresive (high SR, lower avg)"],[613,0,1,389,"Aggresive (high SR, lower avg)"],[612,0,3,400,"Aggresive (high SR, lower avg)"],[604,0,4,455,"Aggresive (high SR, lower avg)"],[527,0,0,385,"Aggresive (high SR, lower avg)"],[527,0,1,372,"Aggresive (high SR, lower avg)"],[500,0,1,368,"Aggresive (high SR, lower avg)"],[486,0,1,347,"Aggresive (high SR, lower avg)"],[473,0,2,306,"Aggresive (high SR, lower avg)"],[426,0,2,270,"Aggresive (high SR, lower avg)"],[424,0,0,306,"Aggresive (high SR, lower avg)"],[417,0,4,305,"Aggresive (high SR, lower avg)"],[363,0,2,270,"Aggresive (high SR, lower avg)"],[326,0,1,235,"Aggresive (high SR, lower avg)"],[303,0,0,224,"Aggresive (high SR, lower avg)"],[299,0,0,206,"Aggresive (high SR, lower avg)"]],"hovertemplate":"\u003cb\u003e%{hovertext}\u003c\u002fb\u003e\u003cbr\u003e\u003cbr\u003ebatting average=%{x}\u003cbr\u003estrike rate=%{y}\u003cbr\u003etotal_runs=%{customdata[0]}\u003cbr\u003ehundreds=%{customdata[1]}\u003cbr\u003efifties=%{customdata[2]}\u003cbr\u003eballs_faced=%{customdata[3]}\u003cextra\u003e\u003c\u002fextra\u003e","hovertext":["GJ Maxwell","MA Agarwal","AR Patel","PP Shaw","SP Narine","R Parag","MM Ali","R Tewatia","A Badoni","JM Sharma","SM Curran","JA Morkel","BA Stokes","Harbhajan Singh","Abdul Samad","N Wadhera","M Shahrukh Khan","SN Khan","Abishek Porel","CH Morris","Rashid Khan","PJ Cummins","JD Ryder","JP Faulkner","MK Lomror","SE Rutherford","R Powell","RR Rossouw","Ashutosh Sharma","NLTC Perera","JR Hopes","Rahmanullah Gurbaz","RN ten Doeschate","C de Grandhomme","Ramandeep Singh"],"legendgroup":"Aggresive (high SR, lower avg)","marker":{"color":"#1D9E75","size":{"dtype":"i2","bdata":"BAvMCpsHZAccB5cGjwSJBG8EHQTlA88DpwNBAy8DEAP\u002fAuoCswJqAmUCZAJcAg8CDwL0AeYB2QGqAagBoQFrAUYBLwErAQ=="},"sizemode":"area","sizeref":11.50765306122449,"symbol":"circle","line":{"color":"white","width":0.5}},"mode":"markers","name":"Aggresive (high SR, lower avg)","orientation":"v","showlegend":true,"x":{"dtype":"f8","bdata":"mpmZmZkZOEDsUbgehWs3QPYoXI\u002fCtTRAUrgeheuROEBSuB6F65EyQI\u002fC9ShczzhA16NwPQpXN0DD9Shcj8I2QM3MzMzMzDlAZmZmZmZmN0BSuB6F61E4QOF6FK5HYThAzczMzMzMNkDD9Shcj8ItQLgehetRuDFACtejcD1KOUC4HoXrUfg3QLgehetRuDRAFK5H4XrUN0CPwvUoXE81QD0K16NwPStAzczMzMyMMkAUrkfhetQ0QFK4HoXr0TJA7FG4HoUrMkB7FK5H4bo2QAAAAAAAQDRAhetRuB6FNkCPwvUoXA85QOxRuB6FqzFASOF6FK6HOECamZmZmVk1QK5H4XoULjNAMzMzMzMzNEBxPQrXo7AyQA=="},"xaxis":"x","y":{"dtype":"f8","bdata":"pHA9CtdrY0AAAAAAANBgQD0K16NwpWBAUrgehet5YkDhehSuR1lkQOF6FK5HcWFA9ihcj8J9YUDXo3A9Cu9gQD0K16NwDWFA7FG4HoUTY0AUrkfhegxhQAAAAAAA2GFAKVyPwvXQYEAK16NwPWJhQFK4HoXrQWJAcT0K16NQYUDXo3A9CmdiQFyPwvUoJGFAuB6F61EIYkA9CtejcHVjQMP1KFyPsmNAAAAAAAAgY0AAAAAAAJhgQFyPwvUoHGFAPQrXo3C1YUCkcD0K1\u002ftgQFK4HoXrgWFAw\u002fUoXI9SY0ApXI\u002fC9bhjQFK4HoXrUWFA16NwPQoXYUCuR+F6FM5gQNejcD0KV2FAcT0K16PoYEDNzMzMzCRiQA=="},"yaxis":"y","type":"scatter"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{"text":"batting average"}},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"strike rate"}},"legend":{"title":{"text":"player type"},"tracegroupgap":0,"itemsizing":"constant"},"title":{"text":"Batting average vs strike rate - top IPL batsman (200+ balls faced)."},"height":520,"shapes":[{"line":{"color":"#B4B2A9","dash":"dot"},"type":"line","x0":0,"x1":1,"xref":"x domain","y0":132.44,"y1":132.44,"yref":"y"},{"line":{"color":"#B4B2A9","dash":"dot"},"type":"line","x0":25.81,"x1":25.81,"xref":"x","y0":0,"y1":1,"yref":"y domain"}],"annotations":[{"showarrow":false,"text":"median SR 132","x":1,"xanchor":"left","xref":"x domain","y":132.44,"yanchor":"middle","yref":"y"},{"showarrow":false,"text":"median avg 132","x":25.81,"xanchor":"center","xref":"x","y":1,"yanchor":"bottom","yref":"y domain"}],"font":{"family":"Arial"},"plot_bgcolor":"white","paper_bgcolor":"white"}, {"responsive": true} ) }; </script> </div>
|
| 6 |
+
</body>
|
| 7 |
+
</html>
|
data/processed/charts/05_bowling_phase.html
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<html>
|
| 2 |
+
<head><meta charset="utf-8" /></head>
|
| 3 |
+
<body>
|
| 4 |
+
<div> <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
|
| 5 |
+
<script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script> <div id="b2eaffec-1989-4556-a1ba-a76ef5393bd7" class="plotly-graph-div" style="height:540px; width:100%;"></div> <script> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("b2eaffec-1989-4556-a1ba-a76ef5393bd7")) { Plotly.newPlot( "b2eaffec-1989-4556-a1ba-a76ef5393bd7", [{"hovertemplate":"phase=powerplay\u003cbr\u003eeconomy_rate=%{x}\u003cbr\u003e=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"powerplay","marker":{"color":"#7F77DD","pattern":{"shape":""}},"name":"powerplay","orientation":"h","showlegend":true,"textposition":"auto","x":{"dtype":"f8","bdata":"w\u002fUoXI\u002fCEkCF61G4HoUUQClcj8L1KBVAuB6F61G4FUAAAAAAAAAWQOxRuB6F6xZAKVyPwvUoF0BxPQrXo3AXQK5H4XoUrhdA4XoUrkfhF0AAAAAAAAAYQFyPwvUoXBhA"},"xaxis":"x","y":["FH Edwards","AG Murtaza","SMSM Senanayake","A Kumble","MM Ali","T Thushara","A Chandila","Ankit Sharma","DL Vettori","GD McGrath","HF Gurney","SB Styris"],"yaxis":"y","type":"bar"},{"hovertemplate":"phase=middle\u003cbr\u003eeconomy_rate=%{x}\u003cbr\u003e=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"middle","marker":{"color":"#1D9E75","pattern":{"shape":""}},"name":"middle","orientation":"h","showlegend":true,"textposition":"auto","x":{"dtype":"f8","bdata":"ZmZmZmZmGEA9CtejcD0ZQEjhehSuRxlAZmZmZmZmGUDhehSuR+EZQClcj8L1KBpAexSuR+F6GkC4HoXrUbgaQMP1KFyPwhpA4XoUrkfhGkApXI\u002fC9SgbQEjhehSuRxtA"},"xaxis":"x2","y":["WA Mota","RE van der Merwe","J Yadav","MF Maharoof","AD Mascarenhas","J Botha","CRD Fernando","IS Sodhi","SP Narine","DW Steyn","DL Vettori","JJ Bumrah"],"yaxis":"y2","type":"bar"},{"hovertemplate":"phase=death\u003cbr\u003eeconomy_rate=%{x}\u003cbr\u003e=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"death","marker":{"color":"#D85A30","pattern":{"shape":""}},"name":"death","orientation":"h","showlegend":true,"textposition":"auto","x":{"dtype":"f8","bdata":"hetRuB6FG0CkcD0K16MeQM3MzMzMzB5ArkfhehSuH0DXo3A9CtcfQJqZmZmZGSBA4XoUrkdhIECkcD0K16MgQKRwPQrXoyBAw\u002fUoXI\u002fCIEDNzMzMzMwgQHE9Ctej8CBA"},"xaxis":"x3","y":["Sohail Tanvir","DE Bollinger","A Kamboj","M Ashwin","SP Narine","Suyash Sharma","SL Malinga","M Kartik","PWH de Silva","A Kumble","GB Hogg","JJ Bumrah"],"yaxis":"y3","type":"bar"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,0.31999999999999995],"title":{"text":"economy_rate"},"showticklabels":true},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":""},"showticklabels":true,"categoryorder":"total ascending","ticksuffix":" "},"xaxis2":{"anchor":"y2","domain":[0.33999999999999997,0.6599999999999999],"matches":"x","title":{"text":"economy_rate"},"showticklabels":true},"yaxis2":{"anchor":"x2","domain":[0.0,1.0],"showticklabels":true,"categoryorder":"total ascending","ticksuffix":" "},"xaxis3":{"anchor":"y3","domain":[0.6799999999999999,0.9999999999999999],"matches":"x","title":{"text":"economy_rate"},"showticklabels":true},"yaxis3":{"anchor":"x3","domain":[0.0,1.0],"showticklabels":true,"categoryorder":"total ascending","ticksuffix":" "},"annotations":[{"font":{},"showarrow":false,"text":"powerplay","x":0.15999999999999998,"xanchor":"center","xref":"paper","y":1.0,"yanchor":"bottom","yref":"paper"},{"font":{},"showarrow":false,"text":"middle","x":0.49999999999999994,"xanchor":"center","xref":"paper","y":1.0,"yanchor":"bottom","yref":"paper"},{"font":{},"showarrow":false,"text":"death","x":0.8399999999999999,"xanchor":"center","xref":"paper","y":1.0,"yanchor":"bottom","yref":"paper"}],"legend":{"title":{"text":"phase"},"tracegroupgap":0},"title":{"text":"Most economical bowlers by match phase (min 60 legal deliveries)"},"barmode":"relative","height":540,"font":{"family":"Arial"},"margin":{"l":160,"r":20,"t":80,"b":50},"plot_bgcolor":"white","paper_bgcolor":"white","showlegend":false}, {"responsive": true} ) }; </script> </div>
|
| 6 |
+
</body>
|
| 7 |
+
</html>
|
data/processed/charts/06_head_to_head.html
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<html>
|
| 2 |
+
<head><meta charset="utf-8" /></head>
|
| 3 |
+
<body>
|
| 4 |
+
<div> <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
|
| 5 |
+
<script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script> <div id="5a5bc1de-ab9d-471b-be96-0be76c1a46f9" class="plotly-graph-div" style="height:480px; width:100%;"></div> <script> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("5a5bc1de-ab9d-471b-be96-0be76c1a46f9")) { Plotly.newPlot( "5a5bc1de-ab9d-471b-be96-0be76c1a46f9", [{"colorbar":{"ticksuffix":"%","title":{"text":"win %"}},"colorscale":[[0.0,"#FCEBEB"],[0.35,"#F09595"],[0.5,"#F1EFE8"],[0.65,"#9FE1CB"],[1.0,"#085041"]],"text":[["-","52%","54%","69%","60%","55%","49%","52%"],["48%","-","60%","66%","64%","62%","48%","50%"],["46%","40%","-","43%","46%","62%","51%","53%"],["31%","34%","57%","-","68%","56%","62%","55%"],["40%","36%","54%","32%","-","49%","57%","50%"],["45%","38%","38%","44%","51%","-","49%","48%"],["51%","52%","49%","38%","43%","51%","-","42%"],["48%","50%","47%","45%","50%","52%","58%","-"]],"textfont":{"size":12},"texttemplate":"%{text}","x":["MI","CSK","RCB","KKR","SRH","DC","PBKS","RR"],"y":["MI","CSK","RCB","KKR","SRH","DC","PBKS","RR"],"z":{"dtype":"f8","bdata":"AAAAAAAAAAAAAAAAAEBKQGZmZmZmJktAmpmZmZlZUUAAAAAAAABOQGZmZmZmpktAzczMzMxMSEDNzMzMzMxJQAAAAAAAwEdAAAAAAAAAAAAAAAAAAABOQGZmZmZmZlBAzczMzMzMT0AAAAAAAEBPQAAAAAAAQEhAAAAAAAAASUCamZmZmdlGQAAAAAAAAERAAAAAAAAAAAAzMzMzM3NFQDMzMzMz80ZAZmZmZmbmTkAzMzMzM7NJQM3MzMzMjEpAmpmZmZmZPkAzMzMzMzNBQM3MzMzMjExAAAAAAAAAAAAAAAAAAOBQQDMzMzMz80tAZmZmZmbmTkBmZmZmZmZLQAAAAAAAAERAMzMzMzMzQkDNzMzMzAxLQAAAAAAAQEBAAAAAAAAAAADNzMzMzExIQM3MzMzMjExAAAAAAAAASUCamZmZmVlGQAAAAAAAwEJAmpmZmZkZQ0DNzMzMzAxGQDMzMzMzs0lAAAAAAAAAAADNzMzMzExIQGZmZmZmJkhAMzMzMzOzSUAAAAAAAMBJQM3MzMzMTEhAmpmZmZkZQ0AzMzMzM3NFQDMzMzMzs0lAAAAAAAAAAAAzMzMzM\u002fNEQDMzMzMzM0hAAAAAAAAASUAzMzMzM3NHQJqZmZmZmUZAAAAAAAAASUCamZmZmdlJQM3MzMzMDE1AAAAAAAAAAAA=","shape":"8, 8"},"zmax":100,"zmin":0,"type":"heatmap"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"font":{"family":"Arial"},"xaxis":{"side":"top"},"margin":{"t":120},"title":{"text":"Head-to-head win % matrix - top 8 IPL franchises"},"height":480,"plot_bgcolor":"white","paper_bgcolor":"white"}, {"responsive": true} ) }; </script> </div>
|
| 6 |
+
</body>
|
| 7 |
+
</html>
|
data/processed/charts/07_runs_per_over.html
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<html>
|
| 2 |
+
<head><meta charset="utf-8" /></head>
|
| 3 |
+
<body>
|
| 4 |
+
<div> <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
|
| 5 |
+
<script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script> <div id="6b9e99b4-c6f1-4f87-8a72-c05ab9a197cd" class="plotly-graph-div" style="height:420px; width:100%;"></div> <script> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("6b9e99b4-c6f1-4f87-8a72-c05ab9a197cd")) { Plotly.newPlot( "6b9e99b4-c6f1-4f87-8a72-c05ab9a197cd", [{"hovertemplate":"over %{x}: %{y:.2f} runs\u003cextra\u003e\u003c\u002fextra\u003e","marker":{"color":"#B5D4F4"},"name":"avg runs\u002fover","x":{"dtype":"i1","bdata":"AAECAwQFBgcICQoLDA0ODxAREhMU"},"y":{"dtype":"f8","bdata":"XI\u002fC9Shc7z\u002fhehSuR+HyP0jhehSuR\u002fU\u002fFK5H4XoU9j9mZmZmZmb2Pz0K16NwPfY\u002fZmZmZmZm8j9cj8L1KFzzPylcj8L1KPQ\u002f16NwPQrX8z97FK5H4Xr0P\u002fYoXI\u002fC9fQ\u002fH4XrUbge9T\u002fD9Shcj8L1P4\u002fC9Shcj\u002fY\u002fCtejcD0K9z8pXI\u002fC9Sj4P0jhehSuR\u002fk\u002fj8L1KFyP+j9SuB6F61H8P7gehetRuP4\u002f"},"type":"bar"},{"line":{"color":"#185FA5","width":2.5},"mode":"lines","name":"smoothed trend","x":{"dtype":"i1","bdata":"AAECAwQFBgcICQoLDA0ODxAREhMU"},"y":{"dtype":"f8","bdata":"AAAAAAAA+H9I4XoUrkfxPwAAAAAAAPQ\u002fw\u002fUoXI\u002fC9T89CtejcD32P2ZmZmZmZvY\u002fUrgehetR9D\u002fhehSuR+HyP65H4XoUrvM\u002fAAAAAAAA9D8pXI\u002fC9Sj0P83MzMzMzPQ\u002fH4XrUbge9T9xPQrXo3D1PxSuR+F6FPY\u002fuB6F61G49j+uR+F6FK73P6RwPQrXo\u002fg\u002f7FG4HoXr+T+F61G4HoX7P3E9CtejcP0\u002f"},"type":"scatter"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"annotations":[{"font":{"color":"#444441","size":11},"showarrow":false,"text":"powerplay","x":3.5,"y":2.016},{"font":{"color":"#444441","size":11},"showarrow":false,"text":"middle","x":11,"y":2.016},{"font":{"color":"#444441","size":11},"showarrow":false,"text":"death","x":18,"y":2.016}],"xaxis":{"title":{"text":"over"},"tickmode":"linear","dtick":1},"font":{"family":"Ariel"},"legend":{"orientation":"h","y":0.2},"title":{"text":"Average runs per over - all IPL season combined"},"shapes":[{"fillcolor":"#EEEDFE","layer":"below","opacity":0.3,"type":"rect","x0":0.5,"x1":6.5,"xref":"x","y0":0,"y1":1,"yref":"paper","line":{"width":0}},{"fillcolor":"#E1F5EE","layer":"below","opacity":0.3,"type":"rect","x0":6.5,"x1":15.5,"xref":"x","y0":0,"y1":1,"yref":"paper","line":{"width":0}},{"fillcolor":"#FAECE7","layer":"below","opacity":0.3,"type":"rect","x0":15.5,"x1":20.5,"xref":"x","y0":0,"y1":1,"yref":"paper","line":{"width":0}}],"yaxis":{"title":{"text":"avg runs per over"}},"height":420,"plot_bgcolor":"white","paper_bgcolor":"white"}, {"responsive": true} ) }; </script> </div>
|
| 6 |
+
</body>
|
| 7 |
+
</html>
|
data/processed/charts/08_dismissal_types.html
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<html>
|
| 2 |
+
<head><meta charset="utf-8" /></head>
|
| 3 |
+
<body>
|
| 4 |
+
<div> <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
|
| 5 |
+
<script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script> <div id="e13689cd-100f-408f-b052-cc02fc9da30e" class="plotly-graph-div" style="height:420px; width:100%;"></div> <script> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("e13689cd-100f-408f-b052-cc02fc9da30e")) { Plotly.newPlot( "e13689cd-100f-408f-b052-cc02fc9da30e", [{"hole":0.45,"labels":["caught","bowled","run out","lbw","caught and bowled","stumped","retired hurt","hit wicket","retired out","obstructing the field"],"marker":{"colors":["#7F77DD","#1D9E75","#D85A30","#378ADD","#639922","#BA7517","#D4537E","#888780"]},"showlegend":false,"textfont":{"size":11},"textinfo":"label+percent","values":{"dtype":"i2","bdata":"RiNjCZcEZwOOAX4BEwASAAYABAA="},"type":"pie","domain":{"x":[0.0,0.45],"y":[0.0,1.0]}},{"hovertemplate":"%{x}: %{y} dismissals\u003cextra\u003e\u003c\u002fextra\u003e","marker":{"color":["#7F77DD","#1D9E75","#D85A30","#378ADD","#639922","#BA7517","#D4537E","#888780"]},"showlegend":false,"x":["caught","bowled","run out","lbw","caught and bowled","stumped","retired hurt","hit wicket","retired out","obstructing the field"],"y":{"dtype":"i2","bdata":"RiNjCZcEZwOOAX4BEwASAAYABAA="},"type":"bar","xaxis":"x","yaxis":"y"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.55,1.0],"tickangle":-30},"yaxis":{"anchor":"x","domain":[0.0,1.0]},"annotations":[{"font":{"size":16},"showarrow":false,"text":"Share of each dismissal type","x":0.225,"xanchor":"center","xref":"paper","y":1.0,"yanchor":"bottom","yref":"paper"},{"font":{"size":16},"showarrow":false,"text":"Count by dismissal type","x":0.775,"xanchor":"center","xref":"paper","y":1.0,"yanchor":"bottom","yref":"paper"}],"font":{"family":"Ariel"},"title":{"text":"How do batsmen get out in the IPL?"},"height":420,"plot_bgcolor":"white","paper_bgcolor":"white"}, {"responsive": true} ) }; </script> </div>
|
| 6 |
+
</body>
|
| 7 |
+
</html>
|
data/processed/deliveries_clean.csv
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:867816cb5b1bee3875db436236fc419a59c70a3434de9280a64cac092e492d3a
|
| 3 |
+
size 37423360
|
data/processed/ipl.db
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b17d6b6e626369696c6d0317784ac95a278f92f838d6d5a777f10866de5bf11a
|
| 3 |
+
size 36839424
|
data/processed/match_summary.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data/processed/matches_clean.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data/processed/models/auction_features.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
["total_runs", "batting_average", "strike_rate", "hundreds", "fifties", "boundary_rate", "sr_powerplay", "sr_death", "dot_ball_pct_bat", "wickets", "economy_rate", "bowling_average", "bowling_sr", "dot_ball_pct_bowl", "economy_death", "economy_powerplay", "three_wicket_haul", "matches_batted", "matches_bowled", "role"]
|
data/processed/models/auction_model.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:30b13810206b5246486d91aaadcc2b97bbb8fa57798d8c8e73ff82590c95fedc
|
| 3 |
+
size 671081
|
data/processed/models/player_valuations.csv
ADDED
|
@@ -0,0 +1,629 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
total_runs,batting_average,strike_rate,hundreds,fifties,boundary_rate,sr_powerplay,sr_death,dot_ball_pct_bat,wickets,economy_rate,bowling_average,bowling_sr,dot_ball_pct_bowl,economy_death,economy_powerplay,three_wicket_haul,matches_batted,matches_bowled,role,auction_price_cr,player,predicted_price_cr
|
| 2 |
+
280.0,18.67,145.08,0.0,0.0,16.06,83.33,151.18,30.05,19.0,9.16,21.05,13.79,31.68,10.39,15.0,1.0,23.0,20.0,0,6.87,A Ashish Reddy,6.97
|
| 3 |
+
1135.0,25.8,136.42,0.0,7.0,16.23,96.88,170.73,33.05,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,54.0,0.0,1,5.25,A Badoni,5.13
|
| 4 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,11.0,6.28,22.27,21.27,44.87,6.0,5.79,1.0,0.0,12.0,0,4.61,A Chandila,4.23
|
| 5 |
+
53.0,10.6,74.65,0.0,0.0,9.86,67.44,120.0,57.75,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,6.0,0.0,0,3.01,A Chopra,2.72
|
| 6 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,5.0,8.55,28.8,20.2,41.58,10.0,6.0,0.0,0.0,5.0,0,2.17,A Choudhary,2.38
|
| 7 |
+
62.0,31.0,116.98,0.0,0.0,13.21,107.14,169.23,37.74,2.0,9.64,53.0,33.0,31.82,17.33,7.67,0.0,3.0,3.0,0,3.98,A Flintoff,4.06
|
| 8 |
+
55.0,27.5,117.02,0.0,0.0,12.77,110.0,117.78,36.17,24.0,8.69,21.96,15.17,43.96,7.7,8.94,3.0,9.0,19.0,2,8.3,A Kamboj,8.21
|
| 9 |
+
35.0,17.5,74.47,0.0,0.0,6.38,110.0,74.36,46.81,49.0,6.77,22.22,19.69,41.14,8.38,5.43,5.0,15.0,42.0,2,9.86,A Kumble,9.85
|
| 10 |
+
292.0,15.37,123.73,0.0,0.0,15.68,66.67,166.23,38.98,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,20.0,0.0,0,3.52,A Manohar,3.58
|
| 11 |
+
441.0,36.75,176.4,0.0,3.0,29.6,179.74,90.0,35.6,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,13.0,0.0,0,5.53,A Mhatre,5.36
|
| 12 |
+
381.0,12.7,91.37,0.0,0.0,8.63,83.33,113.4,42.45,183.0,7.46,22.91,18.42,36.19,9.85,6.88,20.0,55.0,162.0,2,24.4,A Mishra,24.82
|
| 13 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,8.0,9.94,59.62,36.0,32.99,11.92,9.06,0.0,0.0,16.0,0,1.36,A Mithun,1.57
|
| 14 |
+
41.0,5.12,68.33,0.0,0.0,6.67,110.0,63.16,60.0,121.0,7.98,20.97,15.77,43.4,9.06,7.57,18.0,17.0,88.0,2,18.01,A Nehra,17.93
|
| 15 |
+
49.0,8.17,98.0,0.0,0.0,12.0,110.0,104.55,48.0,63.0,9.27,27.62,17.87,40.76,10.6,8.58,5.0,14.0,49.0,2,9.34,A Nortje,9.51
|
| 16 |
+
672.0,29.22,140.88,0.0,4.0,19.5,140.88,144.44,33.54,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,26.0,0.0,1,4.21,A Raghuvanshi,4.86
|
| 17 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,31.0,8.11,20.61,15.26,42.28,10.31,7.0,3.0,0.0,23.0,2,5.15,A Singh,5.41
|
| 18 |
+
974.0,37.46,130.74,1.0,5.0,15.44,104.58,168.31,36.64,23.0,7.9,30.17,22.91,39.09,11.77,6.19,1.0,36.0,30.0,3,8.81,A Symonds,8.82
|
| 19 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,32.0,8.39,20.5,14.66,30.92,13.52,7.14,3.0,0.0,22.0,2,5.09,A Zampa,5.15
|
| 20 |
+
69.0,13.8,82.14,0.0,0.0,5.95,71.05,125.93,46.43,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,7.0,0.0,0,2.09,AA Bilakhia,2.34
|
| 21 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,8.0,8.2,42.38,31.0,44.35,16.5,7.39,0.0,0.0,13.0,0,1.65,AA Chavan,1.98
|
| 22 |
+
217.0,15.5,103.83,0.0,1.0,11.48,59.62,139.47,42.58,1.0,9.18,130.0,85.0,32.94,12.0,8.17,0.0,15.0,10.0,0,4.14,AA Jhunjhunwala,3.8
|
| 23 |
+
179.0,22.38,118.54,0.0,0.0,11.92,153.85,137.97,35.1,33.0,9.01,35.58,23.7,34.91,10.1,8.88,3.0,18.0,42.0,2,7.7,AB Agarkar,7.8
|
| 24 |
+
42.0,21.0,100.0,0.0,0.0,14.29,111.11,40.0,50.0,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,3.0,0.0,0,3.06,AB Barath,3.21
|
| 25 |
+
26.0,2.89,54.17,0.0,0.0,4.17,110.0,48.65,60.42,82.0,8.32,25.65,18.49,42.74,11.3,7.4,9.0,16.0,75.0,2,11.19,AB Dinda,11.18
|
| 26 |
+
123.0,24.6,123.0,0.0,0.0,13.0,157.89,125.81,35.0,14.0,8.48,18.79,13.29,27.96,10.2,8.8,2.0,9.0,10.0,0,5.91,AB McDonald,6.23
|
| 27 |
+
5181.0,41.45,152.38,3.0,40.0,19.62,118.41,235.26,30.56,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,170.0,0.0,1,12.99,AB de Villiers,13.41
|
| 28 |
+
120.0,17.14,133.33,0.0,1.0,25.56,129.41,120.0,52.22,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,7.0,0.0,0,3.59,AC Blizzard,3.98
|
| 29 |
+
2069.0,27.22,139.51,2.0,11.0,22.32,133.79,208.0,45.38,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,80.0,0.0,1,7.57,AC Gilchrist,7.45
|
| 30 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,16.0,7.92,26.0,19.69,42.22,10.12,6.53,1.0,0.0,15.0,0,3.4,AC Thomas,3.44
|
| 31 |
+
181.0,30.17,126.57,0.0,0.0,12.59,84.62,150.0,30.77,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,7.0,0.0,0,3.72,AC Voges,4.0
|
| 32 |
+
148.0,24.67,126.5,0.0,0.0,16.24,135.23,120.0,40.17,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,6.0,0.0,0,3.44,AD Hales,3.68
|
| 33 |
+
79.0,7.9,101.28,0.0,0.0,7.69,200.0,110.34,35.9,19.0,7.11,19.21,16.21,42.21,10.29,7.22,2.0,11.0,13.0,0,6.88,AD Mascarenhas,5.48
|
| 34 |
+
724.0,23.35,126.35,0.0,1.0,12.74,68.75,154.07,31.94,28.0,8.31,39.11,28.25,29.96,8.88,8.43,2.0,41.0,44.0,3,8.51,AD Mathews,8.13
|
| 35 |
+
90.0,9.0,91.84,0.0,0.0,9.18,76.47,88.89,44.9,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,10.0,0.0,0,2.05,AD Nath,2.52
|
| 36 |
+
2655.0,28.86,174.9,0.0,12.0,27.01,215.38,204.71,40.05,133.0,9.64,21.87,13.62,35.78,11.14,8.48,14.0,114.0,121.0,3,23.8,AD Russell,23.91
|
| 37 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,9.0,9.83,37.67,23.0,37.2,9.88,9.89,2.0,0.0,10.0,0,2.08,AF Milne,2.14
|
| 38 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,12.0,7.32,26.83,22.0,40.15,15.5,5.13,3.0,0.0,12.0,0,3.57,AG Murtaza,3.49
|
| 39 |
+
49.0,9.8,89.09,0.0,0.0,16.36,89.09,120.0,65.45,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,2.04,AG Paunikar,2.53
|
| 40 |
+
2092.0,24.9,128.66,0.0,15.0,17.96,116.13,162.4,42.0,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,90.0,0.0,1,5.99,AJ Finch,6.16
|
| 41 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,8.33,21.43,15.43,37.04,12.0,7.93,1.0,0.0,5.0,0,2.47,AJ Hosein,2.36
|
| 42 |
+
91.0,11.38,121.33,0.0,0.0,14.67,110.0,110.2,46.67,48.0,8.8,20.94,14.27,32.85,10.06,8.12,7.0,13.0,30.0,2,10.12,AJ Tye,9.87
|
| 43 |
+
1633.0,29.69,135.18,0.0,10.0,16.31,125.81,186.07,31.46,6.0,9.21,57.33,37.33,26.34,8.73,7.97,0.0,63.0,23.0,1,7.28,AK Markram,6.66
|
| 44 |
+
401.0,18.23,113.28,0.0,0.0,11.86,88.0,131.67,39.55,3.0,7.85,48.0,36.67,36.36,12.5,6.7,0.0,23.0,12.0,0,4.21,AL Menaria,4.24
|
| 45 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,8.0,8.42,18.25,13.0,36.54,1.0,8.9,0.0,0.0,5.0,0,3.47,AM Ghazanfar,3.32
|
| 46 |
+
672.0,17.23,117.28,0.0,0.0,13.09,84.04,161.15,38.92,9.0,8.46,35.89,25.44,30.57,9.0,7.25,1.0,50.0,19.0,1,5.11,AM Nayar,5.43
|
| 47 |
+
5194.0,29.85,124.92,2.0,34.0,15.78,120.32,164.96,36.53,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,191.0,0.0,1,10.43,AM Rahane,10.85
|
| 48 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,8.2,29.29,21.43,40.67,9.2,8.08,0.0,0.0,7.0,0,2.47,AM Salvi,2.55
|
| 49 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,15.0,8.98,34.33,22.93,38.08,12.0,8.08,1.0,0.0,17.0,0,3.26,AN Ahmed,2.81
|
| 50 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,5.0,10.36,22.8,13.2,31.82,13.0,11.17,0.0,0.0,3.0,0,1.54,AP Dole,1.42
|
| 51 |
+
87.0,21.75,114.47,0.0,0.0,11.84,126.32,120.0,35.53,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,4.0,0.0,0,2.56,AP Majumdar,3.36
|
| 52 |
+
339.0,14.12,124.63,0.0,1.0,18.75,114.62,161.9,47.43,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,27.0,0.0,0,4.06,AP Tare,3.77
|
| 53 |
+
1947.0,20.71,133.17,0.0,3.0,15.53,102.59,157.98,33.17,144.0,7.51,30.15,24.1,33.94,8.58,7.38,4.0,129.0,168.0,3,20.57,AR Patel,20.67
|
| 54 |
+
27.0,27.0,84.38,0.0,0.0,9.38,110.0,72.73,50.0,22.0,9.77,32.14,19.73,39.63,10.96,9.83,1.0,5.0,22.0,2,5.19,AS Joseph,5.27
|
| 55 |
+
26.0,6.5,63.41,0.0,0.0,7.32,110.0,71.43,65.85,24.0,9.55,35.17,22.08,40.38,12.27,9.19,2.0,7.0,29.0,2,5.13,AS Rajpoot,5.15
|
| 56 |
+
194.0,17.64,116.17,0.0,0.0,11.98,83.33,140.79,37.13,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,16.0,0.0,0,3.76,AS Raut,3.66
|
| 57 |
+
65.0,9.29,122.64,0.0,0.0,13.21,80.0,160.0,37.74,13.0,8.18,27.69,20.31,37.12,9.0,8.67,0.0,12.0,16.0,0,6.13,AS Roy,5.81
|
| 58 |
+
49.0,7.0,125.64,0.0,0.0,17.95,110.0,134.48,43.59,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,6.0,0.0,0,3.04,AS Yadav,3.53
|
| 59 |
+
4348.0,28.61,128.22,1.0,22.0,15.69,104.46,172.64,34.95,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,185.0,0.0,1,8.53,AT Rayudu,8.53
|
| 60 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,2.0,9.1,45.5,30.0,33.33,11.0,9.67,0.0,0.0,3.0,0,1.55,AU Rashid,1.45
|
| 61 |
+
815.0,17.72,146.06,0.0,0.0,18.46,120.0,174.43,35.13,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,56.0,0.0,1,4.8,Abdul Samad,4.6
|
| 62 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,3.0,12.2,40.67,20.0,28.33,9.6,17.25,0.0,0.0,3.0,0,1.03,Abhinandan Singh,0.99
|
| 63 |
+
2196.0,29.28,165.74,2.0,12.0,25.58,166.29,160.78,36.83,11.0,9.22,49.45,32.18,28.53,9.82,9.65,0.0,82.0,35.0,1,9.27,Abhishek Sharma,9.33
|
| 64 |
+
691.0,23.83,144.26,0.0,3.0,19.83,143.15,206.9,33.82,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,30.0,0.0,1,4.61,Abishek Porel,4.85
|
| 65 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,11.0,11.42,50.36,26.45,36.08,14.79,10.35,1.0,0.0,14.0,0,1.29,Akash Deep,1.52
|
| 66 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,26.0,9.99,23.0,13.81,33.15,10.29,7.79,5.0,0.0,17.0,2,5.0,Akash Madhwal,4.79
|
| 67 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,9.0,9.54,36.22,22.78,35.61,10.0,9.18,0.0,0.0,10.0,0,2.77,Akash Singh,2.47
|
| 68 |
+
115.0,12.78,110.58,0.0,1.0,13.46,80.0,137.93,48.08,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,10.0,0.0,0,3.27,Aman Hakim Khan,3.34
|
| 69 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,10.0,8.3,20.6,14.9,41.61,14.28,6.44,1.0,0.0,8.0,0,3.14,Anand Rajan,2.91
|
| 70 |
+
309.0,22.07,156.85,0.0,1.0,21.32,100.0,181.01,38.58,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,19.0,0.0,0,4.86,Aniket Verma,4.48
|
| 71 |
+
63.0,15.75,95.45,0.0,0.0,10.61,90.0,100.0,46.97,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,4.0,0.0,0,2.46,Anirudh Singh,2.73
|
| 72 |
+
87.0,12.43,129.85,0.0,0.0,16.42,116.67,110.71,40.3,12.0,7.41,37.75,30.58,37.87,19.71,5.86,0.0,10.0,21.0,0,5.48,Ankit Sharma,5.74
|
| 73 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,4.0,7.98,36.25,27.25,34.86,24.0,3.5,0.0,0.0,6.0,0,2.46,Ankit Soni,2.35
|
| 74 |
+
139.0,15.44,120.87,0.0,0.0,19.13,125.25,120.0,46.09,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,9.0,0.0,0,3.5,Anmolpreet Singh,3.47
|
| 75 |
+
318.0,22.71,119.1,0.0,1.0,14.98,97.92,189.55,42.7,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,21.0,0.0,0,4.66,Anuj Rawat,4.15
|
| 76 |
+
36.0,9.0,76.6,0.0,0.0,6.38,110.0,82.86,46.81,21.0,9.26,30.29,19.62,36.89,11.04,7.66,2.0,8.0,22.0,2,4.0,Anureet Singh,4.63
|
| 77 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,4.0,9.62,29.25,18.25,45.21,6.0,6.9,0.0,0.0,5.0,0,2.92,Arjun Tendulkar,2.79
|
| 78 |
+
119.0,19.83,135.23,0.0,1.0,15.91,110.0,144.44,42.05,14.0,11.07,39.0,21.14,40.2,13.91,10.08,1.0,10.0,19.0,0,5.36,Arshad Khan,5.68
|
| 79 |
+
31.0,5.17,67.39,0.0,0.0,8.7,110.0,67.5,67.39,114.0,9.18,25.91,16.94,38.06,9.79,8.79,13.0,13.0,89.0,2,15.7,Arshdeep Singh,16.11
|
| 80 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,10.28,38.83,22.67,46.32,10.75,14.64,0.0,0.0,6.0,0,1.79,Ashok Sharma,1.37
|
| 81 |
+
426.0,25.06,157.78,0.0,2.0,21.11,110.0,170.89,35.19,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,20.0,0.0,0,4.1,Ashutosh Sharma,4.37
|
| 82 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,17.0,9.67,17.35,10.76,38.8,12.94,10.86,2.0,0.0,9.0,0,3.12,Ashwani Kumar,2.9
|
| 83 |
+
260.0,28.89,145.25,0.0,2.0,21.23,153.39,120.0,36.31,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,10.0,0.0,0,4.64,Atharva Taide,4.33
|
| 84 |
+
68.0,22.67,147.83,0.0,0.0,23.91,110.0,133.33,47.83,99.0,9.25,26.99,17.51,36.81,10.07,9.35,12.0,16.0,80.0,2,16.98,Avesh Khan,14.57
|
| 85 |
+
388.0,20.42,128.05,0.0,2.0,17.16,90.91,152.38,38.28,31.0,7.9,22.81,17.32,38.36,9.96,6.76,5.0,21.0,23.0,2,8.95,Azhar Mahmood,8.65
|
| 86 |
+
99.0,12.38,130.26,0.0,0.0,17.11,110.0,143.75,38.16,12.0,9.68,39.67,24.58,37.29,12.0,9.56,0.0,9.0,15.0,0,4.61,Azmatullah Omarzai,4.71
|
| 87 |
+
76.0,10.86,138.18,0.0,0.0,18.18,110.0,163.33,43.64,7.0,7.85,35.14,26.86,34.04,12.9,7.5,0.0,11.0,13.0,0,4.95,B Akhil,5.08
|
| 88 |
+
280.0,17.5,112.0,0.0,1.0,14.0,77.65,177.27,41.6,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,21.0,0.0,0,4.08,B Chipli,3.75
|
| 89 |
+
21.0,7.0,70.0,0.0,0.0,6.67,72.41,120.0,56.67,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,3.0,0.0,0,2.26,B Indrajith,2.26
|
| 90 |
+
332.0,8.97,91.97,0.0,0.0,9.7,110.0,99.65,45.98,228.0,7.84,25.35,19.39,43.8,9.66,6.7,21.0,73.0,198.0,2,26.0,B Kumar,26.3
|
| 91 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,10.0,10.14,28.4,16.8,26.19,13.22,10.17,0.0,0.0,9.0,0,1.99,B Laughlin,2.11
|
| 92 |
+
124.0,12.4,129.17,0.0,0.0,16.67,110.0,140.54,41.67,30.0,7.72,37.53,29.17,45.71,9.06,7.12,1.0,19.0,38.0,2,7.88,B Lee,8.09
|
| 93 |
+
2115.0,49.19,146.16,3.0,14.0,19.7,134.7,210.99,30.62,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,48.0,0.0,1,9.07,B Sai Sudharsan,8.88
|
| 94 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,8.33,28.57,20.57,44.44,11.0,7.93,0.0,0.0,6.0,0,2.1,B Stanlake,2.34
|
| 95 |
+
35.0,35.0,94.59,0.0,0.0,8.11,110.0,109.52,37.84,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,4.0,0.0,0,2.96,B Sumanth,3.26
|
| 96 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,13.0,8.27,31.38,22.77,33.11,9.07,7.06,1.0,0.0,15.0,0,3.12,BA Bhatt,3.24
|
| 97 |
+
935.0,22.8,134.53,2.0,2.0,16.26,129.13,150.59,33.24,31.0,8.91,33.0,22.23,36.28,10.56,8.64,3.0,43.0,38.0,3,9.3,BA Stokes,9.21
|
| 98 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,9.0,7.52,34.0,27.11,32.38,9.0,6.79,0.0,0.0,10.0,0,3.01,BAW Mendis,3.07
|
| 99 |
+
2882.0,27.19,132.44,2.0,13.0,19.44,128.29,216.44,43.11,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,109.0,0.0,1,7.92,BB McCullum,8.06
|
| 100 |
+
125.0,25.0,110.62,0.0,1.0,13.27,84.62,129.17,39.82,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,3.53,BB Samantray,3.6
|
| 101 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,20.0,9.53,38.35,24.15,36.23,9.65,9.25,1.0,0.0,24.0,2,3.37,BB Sran,3.71
|
| 102 |
+
238.0,21.64,168.79,0.0,0.0,24.11,50.0,190.83,37.59,12.0,9.18,35.83,23.42,27.76,12.72,9.22,0.0,17.0,17.0,0,5.69,BCJ Cutting,5.94
|
| 103 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,11.0,9.56,21.73,13.64,36.67,9.57,10.73,2.0,0.0,7.0,0,2.85,BE Hendricks,2.83
|
| 104 |
+
1400.0,30.43,125.9,0.0,6.0,14.84,92.57,169.76,35.88,18.0,7.95,17.22,13.0,33.76,11.0,9.11,2.0,63.0,20.0,1,8.12,BJ Hodge,8.07
|
| 105 |
+
193.0,27.57,136.88,0.0,1.0,18.44,50.0,243.33,36.88,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,4.42,BJ Rohrer,4.42
|
| 106 |
+
40.0,13.33,114.29,0.0,0.0,20.0,114.29,120.0,54.29,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,3.0,0.0,0,3.31,BR Dunk,3.47
|
| 107 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,23.0,8.02,21.61,16.17,49.46,11.36,6.5,1.0,0.0,17.0,2,4.35,BW Hilfenhaus,4.37
|
| 108 |
+
32.0,16.0,91.43,0.0,0.0,5.71,110.0,100.0,40.0,26.0,9.93,33.15,20.04,31.29,11.81,9.24,2.0,7.0,25.0,2,6.18,Basil Thampi,5.72
|
| 109 |
+
187.0,31.17,152.03,0.0,0.0,16.26,110.0,156.7,26.83,22.0,8.18,26.41,19.36,32.63,19.5,7.08,0.0,17.0,28.0,2,7.15,Bipul Sharma,7.08
|
| 110 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,8.57,25.71,18.0,38.1,9.5,7.91,0.0,0.0,6.0,0,2.61,Brijesh Sharma,2.5
|
| 111 |
+
58.0,29.0,161.11,0.0,0.0,22.22,110.0,180.65,33.33,2.0,8.77,47.5,32.5,52.31,4.57,11.0,0.0,3.0,3.0,0,6.68,C Bosch,6.03
|
| 112 |
+
270.0,45.0,163.64,0.0,2.0,25.45,115.0,209.09,36.97,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,7.0,0.0,0,4.95,C Connolly,5.43
|
| 113 |
+
903.0,34.73,152.28,1.0,3.0,20.24,146.31,170.75,30.52,22.0,9.39,35.14,22.45,37.45,12.87,9.57,0.0,36.0,33.0,3,8.58,C Green,8.46
|
| 114 |
+
177.0,19.67,125.53,0.0,0.0,19.15,132.38,80.0,46.1,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,11.0,0.0,0,3.6,C Munro,3.63
|
| 115 |
+
20.0,4.0,66.67,0.0,0.0,10.0,110.0,76.0,66.67,20.0,8.75,32.45,22.25,34.83,11.65,6.84,2.0,7.0,20.0,2,5.82,C Sakariya,5.49
|
| 116 |
+
303.0,20.2,135.27,0.0,0.0,16.07,11.11,138.78,36.61,7.0,8.97,46.14,30.86,28.7,9.75,6.0,1.0,21.0,19.0,0,5.22,C de Grandhomme,5.24
|
| 117 |
+
205.0,17.08,114.53,0.0,0.0,15.08,70.37,151.43,41.34,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,15.0,0.0,0,3.62,CA Ingram,3.65
|
| 118 |
+
1329.0,34.08,141.23,0.0,10.0,21.04,144.39,136.36,41.13,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,42.0,0.0,1,5.98,CA Lynn,6.05
|
| 119 |
+
390.0,21.67,100.0,0.0,1.0,13.85,93.78,137.93,47.95,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,22.0,0.0,0,3.01,CA Pujara,3.26
|
| 120 |
+
4997.0,39.35,150.02,6.0,31.0,23.03,135.29,209.33,43.89,19.0,8.18,39.74,29.16,35.38,9.49,8.45,1.0,141.0,38.0,1,16.31,CH Gayle,13.23
|
| 121 |
+
618.0,21.31,155.67,0.0,2.0,19.14,211.11,173.76,29.97,107.0,8.26,22.21,16.13,41.02,8.83,7.81,12.0,49.0,81.0,3,19.04,CH Morris,19.19
|
| 122 |
+
538.0,24.45,127.79,0.0,3.0,16.86,79.27,197.22,43.94,14.0,10.61,37.5,21.21,28.96,14.91,9.82,1.0,29.0,22.0,1,6.33,CJ Anderson,6.22
|
| 123 |
+
98.0,16.33,83.76,0.0,0.0,7.69,68.75,106.25,47.86,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,2.15,CJ Ferguson,2.39
|
| 124 |
+
81.0,9.0,105.19,0.0,0.0,7.79,110.0,121.05,44.16,36.0,9.89,30.86,18.72,33.38,12.22,9.48,5.0,12.0,34.0,2,7.74,CJ Jordan,7.68
|
| 125 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,13.0,7.65,15.31,12.0,48.08,8.0,7.07,1.0,0.0,7.0,0,3.41,CK Langeveldt,3.69
|
| 126 |
+
971.0,27.74,128.27,0.0,6.0,15.06,89.17,191.22,34.35,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,45.0,0.0,1,5.36,CL White,5.26
|
| 127 |
+
169.0,18.78,113.42,0.0,0.0,15.44,111.94,121.62,50.34,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,13.0,0.0,0,4.24,CM Gautam,3.62
|
| 128 |
+
181.0,12.93,164.55,0.0,0.0,23.64,110.0,201.43,40.0,16.0,9.07,24.0,15.88,30.71,10.5,6.0,2.0,14.0,16.0,0,6.8,CR Brathwaite,6.91
|
| 129 |
+
78.0,15.6,101.3,0.0,0.0,11.69,110.0,110.64,42.86,31.0,9.19,21.74,14.19,39.32,11.21,8.52,3.0,12.0,21.0,2,6.78,CR Woakes,6.96
|
| 130 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,19.0,7.85,16.11,12.32,45.73,10.0,7.14,2.0,0.0,10.0,0,4.33,CRD Fernando,4.2
|
| 131 |
+
26.0,8.67,54.17,0.0,0.0,4.17,110.0,64.1,60.42,109.0,7.75,24.03,18.61,38.26,9.41,7.88,10.0,12.0,89.0,2,14.76,CV Varun,14.96
|
| 132 |
+
519.0,25.95,144.57,0.0,2.0,20.06,108.89,224.14,40.67,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,20.0,0.0,1,4.4,D Brevis,5.06
|
| 133 |
+
191.0,23.88,144.7,0.0,2.0,21.97,116.67,145.83,41.67,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,9.0,0.0,0,4.54,D Ferreira,4.17
|
| 134 |
+
2048.0,26.6,130.95,1.0,14.0,18.29,129.85,144.29,39.13,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,81.0,0.0,1,6.34,D Padikkal,7.12
|
| 135 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,9.68,34.57,21.43,30.67,12.82,9.0,0.0,0.0,7.0,0,1.82,D Pretorius,1.92
|
| 136 |
+
148.0,24.67,148.0,0.0,0.0,19.0,110.0,157.97,30.0,17.0,9.06,26.29,17.41,29.05,9.6,8.12,2.0,11.0,15.0,0,6.66,D Wiese,6.86
|
| 137 |
+
3200.0,34.78,138.59,1.0,13.0,16.28,90.66,172.81,31.57,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,140.0,0.0,1,8.07,DA Miller,7.61
|
| 138 |
+
6567.0,40.04,140.26,4.0,62.0,19.2,136.32,179.65,36.63,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,184.0,0.0,1,15.64,DA Warner,14.98
|
| 139 |
+
304.0,25.33,116.92,0.0,0.0,15.0,115.79,130.86,45.0,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,22.0,0.0,0,3.51,DB Das,3.65
|
| 140 |
+
375.0,18.75,119.05,0.0,1.0,13.97,94.2,140.23,36.83,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,25.0,0.0,0,4.0,DB Ravi Teja,3.8
|
| 141 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,43.0,7.46,16.65,13.4,46.88,7.66,7.48,6.0,0.0,27.0,2,7.25,DE Bollinger,7.33
|
| 142 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,10.71,25.0,14.0,28.57,12.5,11.0,0.0,0.0,6.0,0,1.43,DG Nalkande,1.46
|
| 143 |
+
170.0,18.89,127.82,0.0,0.0,18.8,0.0,139.39,41.35,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,17.0,0.0,0,4.3,DH Yagnik,3.84
|
| 144 |
+
1560.0,22.61,130.43,0.0,5.0,15.55,98.68,190.02,37.79,207.0,8.53,21.43,15.07,33.78,9.91,7.53,21.0,110.0,158.0,3,28.35,DJ Bravo,28.31
|
| 145 |
+
111.0,37.0,109.9,0.0,0.0,15.84,89.04,120.0,49.5,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,4.0,0.0,0,3.79,DJ Harris,3.79
|
| 146 |
+
1497.0,18.48,127.95,0.0,8.0,13.68,94.47,150.21,33.25,10.0,8.68,55.0,38.0,28.16,12.0,7.24,0.0,101.0,34.0,1,6.38,DJ Hooda,6.38
|
| 147 |
+
1322.0,27.54,123.55,0.0,5.0,14.02,103.73,177.56,37.1,10.0,9.18,48.5,31.7,29.02,16.29,10.25,0.0,61.0,26.0,1,6.37,DJ Hussey,6.25
|
| 148 |
+
92.0,13.14,93.88,0.0,0.0,14.29,90.32,120.0,60.2,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,7.0,0.0,0,2.4,DJ Jacobs,2.66
|
| 149 |
+
351.0,27.0,131.46,0.0,2.0,14.23,137.76,131.03,28.09,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,15.0,0.0,0,3.56,DJ Mitchell,3.82
|
| 150 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,4.0,7.71,27.0,21.0,55.95,1.0,8.25,0.0,0.0,6.0,0,3.71,DJ Muthuswami,3.32
|
| 151 |
+
39.0,13.0,73.58,0.0,0.0,7.55,28.57,120.0,56.6,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,4.0,0.0,0,2.47,DJ Thornely,2.39
|
| 152 |
+
53.0,17.67,85.48,0.0,0.0,11.29,64.29,123.53,54.84,7.0,7.69,39.57,30.86,38.89,10.75,6.71,0.0,5.0,11.0,0,4.5,DJ Willey,4.28
|
| 153 |
+
295.0,19.67,122.41,0.0,1.0,13.69,155.56,155.56,40.66,14.0,9.0,25.29,16.86,31.78,11.77,8.78,2.0,20.0,19.0,0,6.11,DJG Sammy,6.18
|
| 154 |
+
115.0,16.43,116.16,0.0,0.0,16.16,83.82,120.0,45.45,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,7.0,0.0,0,3.07,DJM Short,3.22
|
| 155 |
+
123.0,15.38,138.2,0.0,0.0,15.73,0.0,114.89,37.08,92.0,8.23,29.43,21.46,43.87,10.08,8.0,7.0,17.0,98.0,2,14.52,DL Chahar,14.44
|
| 156 |
+
121.0,17.29,108.04,0.0,0.0,11.61,110.0,122.0,35.71,34.0,6.9,26.29,22.85,36.42,9.1,5.92,3.0,16.0,34.0,2,8.45,DL Vettori,8.4
|
| 157 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,2.0,9.09,50.0,33.0,37.88,11.33,7.57,0.0,0.0,3.0,0,1.1,DNT Zoysa,1.49
|
| 158 |
+
1080.0,43.2,139.18,0.0,11.0,19.46,124.15,154.17,34.92,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,28.0,0.0,1,6.97,DP Conway,6.62
|
| 159 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,38.0,7.57,21.45,17.0,47.37,8.71,6.57,5.0,0.0,29.0,2,7.05,DP Nannes,6.85
|
| 160 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,4.0,8.09,51.25,38.0,45.39,12.69,7.41,0.0,0.0,9.0,0,1.34,DP Vijaykumar,2.13
|
| 161 |
+
1808.0,28.25,123.67,1.0,10.0,16.42,115.99,180.92,38.3,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,78.0,0.0,1,6.52,DPMD Jayawardene,6.54
|
| 162 |
+
44.0,4.4,100.0,0.0,0.0,9.09,16.67,133.33,50.0,15.0,8.8,35.2,24.0,40.0,11.75,7.15,2.0,13.0,16.0,0,4.59,DR Sams,4.66
|
| 163 |
+
2385.0,29.44,135.9,0.0,17.0,20.63,125.0,155.41,44.84,27.0,9.18,30.56,19.96,33.21,12.88,10.22,2.0,88.0,46.0,3,11.22,DR Smith,10.93
|
| 164 |
+
104.0,11.56,96.3,0.0,0.0,8.33,110.0,106.59,41.67,91.0,8.44,27.62,19.64,42.81,10.94,7.64,9.0,20.0,92.0,2,14.03,DS Kulkarni,13.88
|
| 165 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,17.0,8.46,38.88,27.59,31.34,10.52,8.03,0.0,0.0,19.0,0,2.74,DS Rathi,2.95
|
| 166 |
+
460.0,16.43,116.75,0.0,0.0,10.66,35.71,139.57,34.01,40.0,8.28,30.45,22.08,35.79,11.78,8.03,0.0,41.0,49.0,2,8.12,DT Christian,8.13
|
| 167 |
+
167.0,7.59,104.38,0.0,0.0,10.62,110.0,115.33,43.12,105.0,7.1,24.6,20.78,48.76,8.93,6.43,11.0,33.0,95.0,2,16.35,DW Steyn,14.62
|
| 168 |
+
928.0,30.93,149.92,0.0,7.0,20.03,140.74,178.39,32.15,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,44.0,0.0,1,6.03,Dhruv Jurel,5.71
|
| 169 |
+
654.0,27.25,137.11,0.0,4.0,20.55,140.26,160.0,44.44,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,26.0,0.0,1,5.68,E Lewis,5.21
|
| 170 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,29.0,8.76,17.28,11.83,40.23,9.0,10.12,5.0,0.0,15.0,2,5.53,E Malinga,5.64
|
| 171 |
+
1406.0,23.05,122.58,0.0,5.0,15.34,93.36,168.33,41.67,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,74.0,0.0,1,4.59,EJG Morgan,4.83
|
| 172 |
+
4773.0,35.36,135.79,0.0,39.0,17.47,133.23,199.04,34.22,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,147.0,0.0,1,10.52,F du Plessis,10.78
|
| 173 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,2.0,9.07,68.0,45.0,28.89,11.0,9.75,0.0,0.0,4.0,0,1.0,FA Allen,1.34
|
| 174 |
+
81.0,16.2,184.09,0.0,0.0,38.64,184.09,120.0,50.0,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,4.52,FH Allen,4.53
|
| 175 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,6.86,26.67,23.33,53.57,10.23,4.69,0.0,0.0,6.0,0,3.03,FH Edwards,2.89
|
| 176 |
+
183.0,20.33,106.4,0.0,0.0,13.37,98.86,120.0,38.95,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,11.0,0.0,0,3.34,FY Fazal,3.5
|
| 177 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,10.31,73.33,42.67,33.2,14.88,8.82,0.0,0.0,12.0,0,1.59,Fazalhaq Farooqi,1.54
|
| 178 |
+
31.0,5.17,93.94,0.0,0.0,12.12,110.0,100.0,54.55,15.0,10.61,32.67,18.47,38.27,10.11,10.91,2.0,7.0,14.0,0,4.66,G Coetzee,3.76
|
| 179 |
+
4217.0,31.47,124.25,0.0,36.0,16.23,121.43,139.84,36.39,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,151.0,0.0,1,10.29,G Gambhir,9.94
|
| 180 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,25.0,7.66,23.4,18.32,37.12,8.4,6.54,2.0,0.0,21.0,2,4.86,GB Hogg,5.02
|
| 181 |
+
739.0,24.63,111.3,0.0,4.0,15.51,95.59,163.64,44.43,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,29.0,0.0,1,5.47,GC Smith,4.98
|
| 182 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,8.0,9.96,28.62,17.25,34.06,15.6,9.17,1.0,0.0,6.0,0,2.2,GC Viljoen,2.03
|
| 183 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,14.0,6.78,26.14,23.14,50.0,9.45,5.97,1.0,0.0,14.0,0,3.62,GD McGrath,3.68
|
| 184 |
+
132.0,12.0,118.92,0.0,0.0,13.51,57.89,165.22,43.24,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,13.0,0.0,0,2.99,GD Phillips,3.46
|
| 185 |
+
284.0,14.2,89.03,0.0,0.0,7.52,71.03,105.77,42.63,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,23.0,0.0,0,2.79,GH Vihari,2.55
|
| 186 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,3.0,9.07,45.33,30.0,35.56,6.0,10.8,0.0,0.0,5.0,0,2.27,GHS Garton,2.1
|
| 187 |
+
663.0,22.86,122.55,0.0,2.0,14.42,99.38,187.58,36.6,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,36.0,0.0,1,4.59,GJ Bailey,4.57
|
| 188 |
+
2820.0,24.1,155.37,0.0,18.0,21.98,134.12,182.52,35.98,45.0,8.32,31.6,22.8,33.24,8.54,8.21,0.0,134.0,85.0,3,13.74,GJ Maxwell,13.95
|
| 189 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,3.0,10.14,47.33,28.0,30.95,18.67,7.0,0.0,0.0,4.0,0,1.0,Gagandeep Singh,1.14
|
| 190 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,3.0,9.48,46.33,29.33,35.23,9.38,11.0,0.0,0.0,5.0,0,1.35,Gurjapneet Singh,1.41
|
| 191 |
+
511.0,18.93,121.09,0.0,2.0,15.64,90.57,160.8,36.97,5.0,7.46,19.4,15.6,33.33,11.0,7.67,0.0,32.0,6.0,1,5.03,Gurkeerat Singh,5.41
|
| 192 |
+
1829.0,42.53,162.72,2.0,10.0,20.11,128.92,191.48,25.71,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,53.0,0.0,1,7.51,H Klaasen,7.49
|
| 193 |
+
190.0,21.11,124.18,1.0,0.0,17.65,109.78,145.0,42.48,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,11.0,0.0,0,4.51,HC Brook,4.17
|
| 194 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,8.85,34.14,23.14,31.48,13.5,6.0,0.0,0.0,8.0,0,1.95,HF Gurney,2.41
|
| 195 |
+
886.0,27.69,110.06,0.0,6.0,14.16,103.93,174.29,46.96,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,36.0,0.0,1,4.23,HH Gibbs,4.96
|
| 196 |
+
2855.0,27.72,146.49,0.0,10.0,19.04,106.47,181.14,33.66,87.0,9.38,31.4,20.08,36.06,12.49,9.5,9.0,146.0,113.0,3,17.32,HH Pandya,17.38
|
| 197 |
+
577.0,44.38,142.12,2.0,3.0,19.95,124.89,213.16,34.24,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,16.0,0.0,1,6.42,HM Amla,6.44
|
| 198 |
+
66.0,22.0,101.54,0.0,0.0,13.85,12.5,120.0,47.69,5.0,9.41,64.0,40.8,40.2,11.0,8.15,0.0,5.0,13.0,0,3.69,HR Shokeen,3.72
|
| 199 |
+
274.0,9.79,117.09,0.0,0.0,13.68,110.0,130.77,42.31,168.0,9.01,22.3,14.85,35.03,10.32,8.87,20.0,43.0,119.0,2,23.31,HV Patel,23.25
|
| 200 |
+
833.0,14.88,139.07,0.0,1.0,20.2,114.06,158.31,41.9,161.0,7.2,25.47,21.22,38.41,8.75,6.81,15.0,88.0,160.0,3,24.05,Harbhajan Singh,24.23
|
| 201 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,31.0,8.16,24.1,17.71,38.8,8.67,8.74,3.0,0.0,28.0,2,5.09,Harmeet Singh,5.19
|
| 202 |
+
244.0,18.77,120.2,0.0,0.0,14.29,110.0,138.17,40.39,35.0,8.04,32.06,23.91,34.41,11.39,8.38,4.0,26.0,47.0,2,8.44,Harpreet Brar,8.36
|
| 203 |
+
123.0,20.5,104.24,0.0,0.0,11.02,97.06,88.89,41.53,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,3.21,Harpreet Singh,3.33
|
| 204 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,13.0,8.64,18.62,12.92,33.93,6.0,9.48,2.0,0.0,9.0,0,4.45,Harsh Dubey,4.45
|
| 205 |
+
59.0,8.43,103.51,0.0,0.0,14.04,110.0,85.71,57.89,42.0,9.5,24.93,15.74,41.15,9.99,9.43,4.0,10.0,32.0,2,8.63,Harshit Rana,8.32
|
| 206 |
+
57.0,8.14,82.61,0.0,0.0,8.7,110.0,83.02,53.62,100.0,8.57,34.65,24.26,44.39,11.46,7.58,6.0,21.0,117.0,2,12.79,I Sharma,14.54
|
| 207 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,8.0,9.86,35.75,21.75,28.16,9.78,11.0,0.0,0.0,10.0,0,1.62,I Udana,1.85
|
| 208 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,19.0,7.91,32.05,24.32,48.27,12.5,7.75,0.0,0.0,24.0,0,3.64,IC Pandey,3.51
|
| 209 |
+
1150.0,22.12,121.44,0.0,1.0,13.31,113.79,158.15,35.48,99.0,7.96,27.38,20.64,43.32,9.56,7.21,8.0,82.0,101.0,3,16.73,IK Pathan,16.72
|
| 210 |
+
76.0,15.2,78.35,0.0,0.0,6.19,61.7,92.31,49.48,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,7.0,0.0,0,2.52,IR Jaggi,2.35
|
| 211 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,9.0,6.76,22.67,20.11,36.46,36.0,6.38,1.0,0.0,8.0,0,4.5,IS Sodhi,3.05
|
| 212 |
+
33.0,8.25,89.19,0.0,0.0,13.51,110.0,107.41,56.76,86.0,7.88,20.1,15.3,34.27,8.61,8.04,13.0,8.0,59.0,2,14.61,Imran Tahir,12.37
|
| 213 |
+
88.0,88.0,107.32,0.0,0.0,12.2,110.0,118.0,40.24,45.0,7.34,25.0,20.44,37.61,9.51,6.47,5.0,13.0,48.0,2,10.98,Iqbal Abdulla,10.44
|
| 214 |
+
3310.0,30.65,141.03,1.0,20.0,20.15,131.39,193.15,37.71,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,120.0,0.0,1,8.89,Ishan Kishan,9.62
|
| 215 |
+
409.0,18.59,114.25,0.0,1.0,12.29,80.28,137.76,37.15,27.0,7.07,30.3,25.7,38.62,8.57,7.57,2.0,28.0,34.0,2,8.24,J Botha,7.95
|
| 216 |
+
385.0,27.5,200.52,0.0,4.0,35.94,213.16,120.0,43.23,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,15.0,0.0,0,5.48,J Fraser-McGurk,5.22
|
| 217 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,13.0,8.97,26.23,17.54,36.84,10.62,9.2,2.0,0.0,11.0,0,3.44,J Little,3.12
|
| 218 |
+
151.0,30.2,154.08,0.0,0.0,21.43,110.0,155.22,33.67,9.0,10.14,30.22,17.89,36.02,9.78,13.03,2.0,8.0,10.0,0,6.02,J Overton,6.29
|
| 219 |
+
70.0,17.5,114.75,0.0,0.0,14.75,110.0,176.92,47.54,20.0,8.63,30.2,21.0,33.81,13.5,8.05,0.0,9.0,21.0,2,5.87,J Suchith,6.01
|
| 220 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,10.0,8.94,28.6,19.2,26.04,6.0,5.25,0.0,0.0,11.0,0,2.88,J Syed Mohammad,3.4
|
| 221 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,13.0,8.44,23.92,17.0,33.94,8.73,9.21,1.0,0.0,10.0,0,3.41,J Theron,3.39
|
| 222 |
+
40.0,20.0,111.11,0.0,0.0,8.33,110.0,104.17,33.33,9.0,6.88,49.67,43.33,39.74,11.0,7.48,0.0,4.0,20.0,0,5.76,J Yadav,5.47
|
| 223 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,10.42,23.17,13.33,46.25,13.12,10.59,1.0,0.0,3.0,0,1.11,JA Duffy,1.33
|
| 224 |
+
975.0,24.38,142.75,0.0,3.0,16.98,121.74,164.55,33.09,96.0,8.39,25.09,17.95,39.64,9.64,8.62,10.0,67.0,87.0,3,17.44,JA Morkel,17.09
|
| 225 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,3.0,10.8,54.0,30.0,35.56,13.5,10.8,0.0,0.0,4.0,0,0.25,JA Richardson,0.39
|
| 226 |
+
275.0,13.75,143.98,0.0,0.0,17.28,0.0,156.43,37.17,77.0,8.04,25.12,18.74,46.92,10.23,6.78,8.0,34.0,61.0,2,13.55,JC Archer,13.68
|
| 227 |
+
4391.0,39.21,149.51,7.0,26.0,21.62,138.78,193.84,36.6,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,127.0,0.0,1,12.77,JC Buttler,12.52
|
| 228 |
+
604.0,20.83,132.75,0.0,4.0,19.34,132.28,147.37,41.98,11.0,7.98,28.55,21.45,35.59,12.0,6.0,1.0,29.0,16.0,1,6.58,JD Ryder,6.17
|
| 229 |
+
201.0,14.36,118.93,0.0,0.0,13.61,110.0,128.81,39.64,125.0,9.02,28.33,18.84,33.46,11.57,7.93,14.0,28.0,115.0,2,17.54,JD Unadkat,18.45
|
| 230 |
+
106.0,13.25,99.07,0.0,0.0,10.28,110.0,142.86,43.93,13.0,9.16,27.85,18.23,36.29,8.88,9.37,1.0,11.0,14.0,0,5.02,JDP Oram,4.76
|
| 231 |
+
92.0,11.5,98.92,0.0,0.0,8.6,110.0,88.89,43.01,8.0,9.5,42.75,27.0,31.48,18.0,9.64,1.0,10.0,13.0,0,3.98,JDS Neesham,3.57
|
| 232 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,8.56,27.83,19.5,46.15,11.29,6.38,1.0,0.0,5.0,0,2.12,JE Taylor,2.25
|
| 233 |
+
327.0,29.73,109.0,0.0,1.0,11.33,84.31,152.94,38.33,9.0,8.94,25.0,16.78,27.15,19.0,10.0,0.0,16.0,15.0,0,5.09,JEC Franklin,5.4
|
| 234 |
+
101.0,25.25,168.33,0.0,1.0,30.0,176.0,120.0,40.0,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,4.0,0.0,0,4.7,JG Bethell,4.77
|
| 235 |
+
2427.0,27.27,109.67,0.0,17.0,13.51,103.58,194.23,41.08,74.0,8.09,31.73,23.54,36.74,10.02,7.53,4.0,95.0,89.0,3,15.51,JH Kallis,15.48
|
| 236 |
+
75.0,9.38,87.21,0.0,0.0,8.14,110.0,82.05,45.35,206.0,7.43,21.23,17.14,42.51,8.47,6.89,31.0,29.0,152.0,2,29.13,JJ Bumrah,28.22
|
| 237 |
+
614.0,34.11,139.23,0.0,4.0,21.77,131.17,170.0,40.36,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,21.0,0.0,1,5.44,JJ Roy,5.49
|
| 238 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,3.0,11.17,44.67,24.0,43.06,12.25,8.2,0.0,0.0,3.0,0,0.2,JJ van der Wath,0.66
|
| 239 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,11.0,9.04,29.18,19.36,36.62,10.67,8.76,0.0,0.0,10.0,0,2.58,JL Pattinson,2.75
|
| 240 |
+
1674.0,33.48,146.2,2.0,9.0,21.57,145.82,155.17,38.86,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,52.0,0.0,1,6.69,JM Bairstow,7.09
|
| 241 |
+
1053.0,23.4,152.61,0.0,1.0,21.3,84.62,181.95,37.1,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,53.0,0.0,1,5.32,JM Sharma,5.12
|
| 242 |
+
282.0,13.43,128.77,0.0,0.0,15.53,61.9,141.46,42.01,60.0,8.89,25.78,17.4,34.87,10.18,8.65,10.0,28.0,48.0,2,11.54,JO Holder,11.49
|
| 243 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,22.0,9.23,25.59,16.64,39.89,12.88,8.43,3.0,0.0,17.0,2,3.86,JP Behrendorff,4.0
|
| 244 |
+
2029.0,41.41,124.4,0.0,14.0,12.57,98.35,182.1,31.64,23.0,7.5,36.83,29.48,35.69,11.17,7.32,1.0,75.0,49.0,3,10.55,JP Duminy,10.23
|
| 245 |
+
527.0,18.82,136.88,0.0,0.0,15.32,70.0,166.95,32.99,76.0,8.96,24.33,16.29,35.54,10.33,7.93,9.0,45.0,60.0,3,14.41,JP Faulkner,14.35
|
| 246 |
+
278.0,27.8,157.06,0.0,1.0,23.73,162.03,147.37,38.98,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,11.0,0.0,0,4.27,JP Inglis,4.73
|
| 247 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,66.0,8.33,20.86,15.03,45.67,10.21,7.52,10.0,0.0,44.0,2,9.79,JR Hazlewood,9.67
|
| 248 |
+
417.0,24.53,136.72,0.0,4.0,19.67,126.0,143.24,36.39,14.0,9.37,40.14,25.71,33.06,11.43,6.29,0.0,19.0,20.0,0,6.08,JR Hopes,5.98
|
| 249 |
+
78.0,19.5,101.3,0.0,0.0,12.99,100.0,50.0,45.45,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,2.72,JR Philippe,3.22
|
| 250 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,10.24,29.0,17.0,41.18,14.75,8.33,0.0,0.0,7.0,0,2.29,Jaskaran Singh,1.94
|
| 251 |
+
36.0,9.0,120.0,0.0,0.0,10.0,110.0,126.09,33.33,13.0,9.87,32.38,19.69,28.52,11.61,11.25,0.0,5.0,15.0,0,4.55,Joginder Sharma,4.45
|
| 252 |
+
218.0,16.77,94.37,0.0,0.0,11.26,97.62,109.09,52.81,0.0,8.55,50.0,40.0,30.3,11.0,5.0,0.0,16.0,6.0,0,2.87,K Goel,3.02
|
| 253 |
+
247.0,13.72,166.89,0.0,0.0,21.62,114.29,190.0,34.46,22.0,8.42,37.5,26.73,36.73,14.5,8.49,0.0,27.0,35.0,2,7.53,K Gowtham,7.42
|
| 254 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,12.0,8.73,34.33,23.58,32.16,13.33,8.83,0.0,0.0,16.0,0,3.21,K Kartikeya,2.98
|
| 255 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,10.71,41.67,23.33,29.29,12.97,12.0,0.0,0.0,8.0,0,1.6,K Khejroliya,1.34
|
| 256 |
+
250.0,13.16,107.76,0.0,0.0,12.93,60.0,132.09,45.69,141.0,8.85,22.07,14.97,41.35,9.82,8.56,17.0,32.0,92.0,2,19.73,K Rabada,19.7
|
| 257 |
+
77.0,19.25,104.05,0.0,0.0,13.51,110.0,140.62,54.05,15.0,9.86,30.67,18.67,40.71,13.47,9.34,2.0,10.0,14.0,0,5.13,KA Jamieson,5.2
|
| 258 |
+
3437.0,26.64,148.47,0.0,16.0,19.22,92.13,184.05,36.37,81.0,8.87,27.16,18.37,28.36,11.43,7.65,3.0,168.0,107.0,3,17.16,KA Pollard,16.32
|
| 259 |
+
51.0,10.2,100.0,0.0,0.0,9.8,110.0,86.21,43.14,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,2.33,KB Arun Karthik,2.97
|
| 260 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,8.0,9.69,43.62,27.0,28.7,11.0,11.0,0.0,0.0,11.0,0,1.95,KC Cariappa,1.59
|
| 261 |
+
1687.0,24.45,121.81,0.0,10.0,16.03,112.03,157.78,37.18,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,68.0,0.0,1,5.89,KC Sangakkara,5.63
|
| 262 |
+
4843.0,25.9,135.66,0.0,22.0,17.56,100.69,188.55,34.15,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,233.0,0.0,1,8.27,KD Karthik,8.13
|
| 263 |
+
1792.0,21.85,131.96,0.0,2.0,16.42,99.13,157.14,37.04,106.0,7.62,30.8,24.25,32.87,8.83,7.57,11.0,117.0,140.0,3,18.38,KH Pandya,19.19
|
| 264 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,2.0,11.38,91.0,48.0,31.25,12.33,10.43,0.0,0.0,5.0,0,0.2,KJ Abbott,0.49
|
| 265 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,96.0,9.05,26.26,17.42,43.96,11.23,8.33,12.0,0.0,76.0,2,12.21,KK Ahmed,11.98
|
| 266 |
+
116.0,12.89,173.13,0.0,0.0,25.37,122.22,203.03,40.3,36.0,8.22,21.92,16.0,36.28,9.07,7.11,5.0,12.0,25.0,2,10.19,KK Cooper,8.78
|
| 267 |
+
1699.0,23.27,131.1,0.0,11.0,18.13,124.69,190.09,38.66,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,77.0,0.0,1,5.54,KK Nair,5.54
|
| 268 |
+
22.0,5.5,66.67,0.0,0.0,3.03,110.0,83.33,48.48,5.0,9.57,57.4,36.0,28.89,7.0,9.0,0.0,7.0,11.0,0,3.79,KL Nagarkoti,3.47
|
| 269 |
+
5593.0,45.47,138.17,6.0,42.0,17.69,126.16,186.58,33.28,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,143.0,0.0,1,13.52,KL Rahul,13.73
|
| 270 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,10.39,33.14,19.14,35.07,15.43,9.67,0.0,0.0,7.0,0,1.34,KM Asif,1.73
|
| 271 |
+
1208.0,22.37,124.66,0.0,4.0,14.65,88.43,143.38,35.19,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,81.0,0.0,1,4.6,KM Jadhav,4.61
|
| 272 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,10.0,8.8,23.9,16.3,33.13,11.19,16.5,2.0,0.0,8.0,0,3.37,KMA Paul,2.82
|
| 273 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,7.18,20.33,17.0,46.08,6.4,7.45,0.0,0.0,5.0,0,2.87,KMDN Kulasekara,3.27
|
| 274 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,11.0,8.08,26.45,19.64,32.41,11.0,9.33,1.0,0.0,13.0,0,3.34,KP Appanna,3.34
|
| 275 |
+
1001.0,35.75,134.91,1.0,4.0,17.65,130.19,200.0,37.06,9.0,7.52,24.22,19.33,32.76,9.67,6.0,0.0,36.0,13.0,1,7.81,KP Pietersen,7.79
|
| 276 |
+
379.0,29.15,146.9,0.0,4.0,23.26,141.98,120.0,48.06,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,13.0,0.0,0,4.49,KR Mayers,4.42
|
| 277 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,14.0,9.86,28.29,17.21,36.93,13.96,9.1,2.0,0.0,12.0,0,2.94,KR Sen,2.75
|
| 278 |
+
199.0,28.43,123.6,0.0,1.0,12.42,110.26,200.0,34.78,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,4.21,KS Bharat,4.23
|
| 279 |
+
2132.0,36.14,126.0,0.0,18.0,14.83,98.48,168.66,34.46,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,76.0,0.0,1,6.78,KS Williamson,6.94
|
| 280 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,2.0,13.06,74.0,34.0,38.24,17.0,11.86,0.0,0.0,4.0,0,0.81,KT Maphaka,0.39
|
| 281 |
+
352.0,14.08,119.32,0.0,0.0,12.54,71.43,141.61,38.31,89.0,8.56,25.43,17.82,34.05,10.88,7.0,9.0,40.0,87.0,2,13.91,KV Sharma,13.94
|
| 282 |
+
36.0,12.0,92.31,0.0,0.0,7.69,110.0,75.0,43.59,21.0,8.58,22.81,15.95,40.6,11.26,6.9,1.0,4.0,15.0,2,5.48,KW Richardson,5.4
|
| 283 |
+
128.0,32.0,166.23,0.0,1.0,27.27,124.39,166.67,42.86,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,6.0,0.0,0,5.32,Kamran Akmal,5.1
|
| 284 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,14.0,8.96,17.71,11.86,42.77,10.41,9.33,2.0,0.0,9.0,0,4.06,Kamran Khan,3.7
|
| 285 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,14.0,9.5,23.07,14.57,32.35,12.67,8.67,2.0,0.0,9.0,0,2.35,Karanveer Singh,2.86
|
| 286 |
+
58.0,11.6,113.73,0.0,0.0,13.73,225.0,115.38,50.98,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,3.92,Kartik Sharma,3.61
|
| 287 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,25.0,9.98,39.4,23.68,37.67,10.2,10.97,1.0,0.0,27.0,2,2.94,Kartik Tyagi,3.4
|
| 288 |
+
210.0,14.0,82.35,0.0,0.0,8.24,110.0,89.95,50.2,113.0,8.26,26.93,19.57,31.21,8.54,7.67,13.0,41.0,103.0,2,16.45,Kuldeep Yadav,16.8
|
| 289 |
+
36.0,5.14,73.47,0.0,0.0,6.12,110.0,80.0,57.14,85.0,8.27,24.51,17.79,38.49,10.52,7.05,8.0,13.0,73.0,2,12.55,L Balaji,12.07
|
| 290 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,40.0,8.62,18.68,13.0,39.42,9.4,7.99,7.0,0.0,22.0,2,7.08,L Ngidi,7.11
|
| 291 |
+
34.0,11.33,100.0,0.0,0.0,20.59,100.0,120.0,67.65,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,2.91,L Ronchi,3.02
|
| 292 |
+
81.0,27.0,122.73,0.0,0.0,16.67,110.26,180.0,40.91,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,3.91,LA Carseldine,4.1
|
| 293 |
+
302.0,27.45,124.28,0.0,1.0,15.64,133.33,173.53,41.98,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,16.0,0.0,0,3.95,LA Pomersbach,4.07
|
| 294 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,4.0,9.12,57.0,37.5,28.0,8.43,10.78,1.0,0.0,7.0,0,1.86,LE Plunkett,1.83
|
| 295 |
+
72.0,18.0,156.52,0.0,0.0,19.57,110.0,168.29,26.09,63.0,9.15,25.63,16.81,39.47,10.98,8.77,8.0,8.0,50.0,2,12.62,LH Ferguson,12.31
|
| 296 |
+
106.0,26.5,179.66,0.0,0.0,32.2,100.0,240.0,32.2,2.0,10.56,62.5,35.5,21.13,19.2,12.0,0.0,5.0,6.0,0,5.4,LJ Wright,5.1
|
| 297 |
+
1079.0,39.96,127.24,1.0,11.0,18.04,118.47,128.0,43.87,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,29.0,0.0,1,5.92,LMP Simmons,6.41
|
| 298 |
+
405.0,13.97,115.71,0.0,0.0,14.0,58.33,144.27,41.14,17.0,8.75,26.94,18.47,37.26,9.69,9.63,2.0,33.0,27.0,0,6.72,LR Shukla,6.65
|
| 299 |
+
1017.0,24.8,124.33,0.0,3.0,13.69,126.45,165.93,37.53,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,54.0,0.0,1,4.61,LRPL Taylor,4.92
|
| 300 |
+
1066.0,26.0,155.17,0.0,7.0,21.25,130.32,219.01,36.24,13.0,9.06,36.23,24.0,26.28,7.0,6.8,1.0,49.0,27.0,1,8.79,LS Livingstone,8.51
|
| 301 |
+
305.0,20.33,107.02,0.0,0.0,11.93,70.45,125.0,40.7,11.0,8.96,39.09,26.18,29.86,11.0,9.28,0.0,21.0,19.0,0,5.01,Lalit Yadav,5.21
|
| 302 |
+
35.0,4.38,70.0,0.0,0.0,6.0,110.0,87.5,54.0,35.0,8.15,33.77,24.86,34.25,7.92,7.65,2.0,12.0,44.0,2,6.51,M Ashwin,6.82
|
| 303 |
+
151.0,11.62,104.86,0.0,0.0,10.42,100.0,103.88,41.67,43.0,9.4,33.53,21.4,40.65,10.57,9.07,3.0,22.0,42.0,2,7.72,M Jansen,8.02
|
| 304 |
+
259.0,16.19,104.02,0.0,0.0,11.24,69.39,116.13,44.58,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,22.0,0.0,0,3.33,M Kaif,3.3
|
| 305 |
+
113.0,16.14,105.61,0.0,0.0,7.48,110.0,102.94,28.97,39.0,7.4,36.36,29.46,35.25,8.32,6.68,1.0,14.0,55.0,2,8.2,M Kartik,8.17
|
| 306 |
+
73.0,18.25,97.33,0.0,0.0,12.0,96.61,120.0,45.33,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,4.0,0.0,0,2.96,M Klinger,2.93
|
| 307 |
+
514.0,21.42,109.36,0.0,0.0,11.28,86.11,136.91,38.51,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,38.0,0.0,1,3.47,M Manhas,4.41
|
| 308 |
+
48.0,16.0,114.29,0.0,0.0,14.29,110.0,128.57,42.86,37.0,9.24,31.27,20.3,29.83,9.2,8.27,3.0,10.0,40.0,2,8.52,M Markande,8.47
|
| 309 |
+
126.0,11.45,141.57,0.0,0.0,17.98,110.0,154.67,35.96,88.0,7.87,24.27,18.51,45.3,9.48,7.4,8.0,20.0,70.0,2,14.53,M Morkel,14.47
|
| 310 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,67.0,6.93,26.34,22.81,42.08,8.75,6.23,5.0,0.0,66.0,2,9.76,M Muralitharan,9.75
|
| 311 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,8.0,7.34,32.12,26.25,51.43,9.6,7.0,1.0,0.0,9.0,0,3.11,M Ntini,2.96
|
| 312 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,53.0,8.55,19.75,13.87,39.86,9.11,9.0,7.0,0.0,32.0,2,8.12,M Pathirana,8.08
|
| 313 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,94.0,9.0,26.77,17.85,42.25,11.04,8.3,10.0,0.0,73.0,2,12.5,M Prasidh Krishna,11.44
|
| 314 |
+
55.0,11.0,79.71,0.0,0.0,7.25,0.0,94.59,47.83,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,11.0,0.0,0,2.6,M Rawat,2.47
|
| 315 |
+
767.0,23.97,147.22,0.0,2.0,19.19,112.12,171.84,35.89,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,52.0,0.0,1,5.12,M Shahrukh Khan,4.93
|
| 316 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,8.6,34.0,23.71,35.54,12.63,7.78,0.0,0.0,8.0,0,2.51,M Siddharth,2.37
|
| 317 |
+
17.0,5.67,50.0,0.0,0.0,2.94,110.0,68.18,64.71,36.0,8.22,34.06,24.86,32.63,8.54,8.56,2.0,6.0,38.0,2,6.44,M Theekshana,6.49
|
| 318 |
+
2619.0,27.28,121.93,2.0,13.0,15.74,113.01,168.18,43.16,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,105.0,0.0,1,7.45,M Vijay,7.24
|
| 319 |
+
1083.0,22.56,130.8,0.0,3.0,17.75,124.75,200.0,43.24,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,51.0,0.0,1,4.76,M Vohra,4.88
|
| 320 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,9.5,28.5,18.0,37.96,12.0,8.2,1.0,0.0,5.0,0,2.07,M de Lange,1.93
|
| 321 |
+
2764.0,23.42,134.5,1.0,13.0,18.25,122.57,214.44,37.42,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,125.0,0.0,1,7.21,MA Agarwal,7.45
|
| 322 |
+
111.0,11.1,92.5,0.0,0.0,9.17,110.0,88.31,42.5,78.0,8.86,20.36,13.79,42.75,9.28,8.96,12.0,21.0,50.0,2,13.18,MA Starc,12.52
|
| 323 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,11.0,9.6,17.45,10.91,45.0,13.14,8.2,2.0,0.0,5.0,0,3.0,MA Wood,2.88
|
| 324 |
+
1000.0,26.32,127.39,0.0,5.0,14.65,123.76,175.76,34.27,46.0,8.22,28.3,20.65,33.16,10.36,7.59,3.0,54.0,60.0,3,10.79,MC Henriques,11.27
|
| 325 |
+
125.0,17.86,97.66,0.0,0.0,9.38,96.3,55.56,37.5,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,7.0,0.0,0,3.61,MC Juneja,3.22
|
| 326 |
+
156.0,31.2,143.12,0.0,1.0,19.27,110.0,150.7,40.37,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,4.04,MD Choudhary,4.39
|
| 327 |
+
237.0,15.8,115.05,0.0,0.0,15.53,108.27,153.33,47.09,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,17.0,0.0,0,3.03,MD Mishra,3.4
|
| 328 |
+
1977.0,38.02,122.8,1.0,15.0,15.53,105.78,188.51,37.64,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,58.0,0.0,1,7.59,MEK Hussey,7.56
|
| 329 |
+
177.0,17.7,143.9,0.0,0.0,17.07,50.0,171.62,34.96,33.0,7.6,16.12,12.73,42.14,9.79,7.55,5.0,14.0,20.0,2,9.8,MF Maharoof,9.32
|
| 330 |
+
58.0,29.0,123.4,0.0,0.0,14.89,66.67,100.0,31.91,6.0,8.64,15.83,11.0,39.39,11.0,5.4,0.0,4.0,5.0,0,5.28,MG Bracewell,5.53
|
| 331 |
+
167.0,11.93,102.45,0.0,0.0,10.43,110.0,108.76,46.63,66.0,8.45,26.36,18.71,45.1,9.69,8.02,3.0,28.0,54.0,2,10.82,MG Johnson,10.34
|
| 332 |
+
98.0,19.6,104.26,0.0,0.0,12.77,107.89,120.0,43.62,3.0,6.55,24.0,22.0,36.36,11.0,6.0,0.0,6.0,5.0,0,4.76,MJ Clarke,4.74
|
| 333 |
+
271.0,22.58,138.27,0.0,1.0,19.9,138.46,120.0,44.9,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,13.0,0.0,0,3.74,MJ Guptill,3.97
|
| 334 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,5.0,11.56,62.8,32.6,26.99,10.0,10.95,0.0,0.0,9.0,0,1.27,MJ Henry,1.22
|
| 335 |
+
278.0,27.8,145.55,0.0,1.0,26.7,147.62,120.0,46.6,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,12.0,0.0,0,4.24,MJ Lumb,4.4
|
| 336 |
+
85.0,7.73,123.19,0.0,0.0,17.39,0.0,119.57,52.17,75.0,8.66,24.52,16.99,41.92,10.18,8.04,9.0,19.0,56.0,2,13.26,MJ McClenaghan,11.7
|
| 337 |
+
136.0,17.0,108.8,0.0,0.0,12.0,83.33,127.27,42.4,31.0,7.46,28.06,22.58,37.29,8.8,8.27,1.0,21.0,35.0,2,7.56,MJ Santner,7.62
|
| 338 |
+
527.0,18.17,141.67,0.0,1.0,16.94,80.85,138.53,32.26,2.0,8.47,63.5,45.0,24.44,11.0,7.25,0.0,35.0,11.0,1,4.43,MK Lomror,4.65
|
| 339 |
+
3951.0,29.49,121.91,1.0,22.0,14.07,111.87,159.89,35.88,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,160.0,0.0,1,8.17,MK Pandey,8.07
|
| 340 |
+
1695.0,28.25,117.38,0.0,7.0,13.57,95.72,155.11,36.7,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,83.0,0.0,1,5.31,MK Tiwary,5.48
|
| 341 |
+
1107.0,41.0,138.55,0.0,8.0,20.65,133.2,200.0,41.55,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,32.0,0.0,1,5.88,ML Hayden,6.15
|
| 342 |
+
1167.0,23.34,139.93,0.0,6.0,19.42,122.08,176.52,39.33,46.0,7.25,22.52,18.63,35.59,6.6,5.5,4.0,59.0,57.0,3,12.4,MM Ali,12.34
|
| 343 |
+
39.0,7.8,95.12,0.0,0.0,12.2,110.0,105.41,43.9,82.0,7.67,21.13,16.52,45.17,11.04,6.91,9.0,12.0,63.0,2,13.14,MM Patel,13.12
|
| 344 |
+
125.0,7.35,91.91,0.0,0.0,9.56,110.0,97.37,49.26,149.0,8.78,23.74,16.21,35.06,10.38,8.03,19.0,30.0,119.0,2,20.7,MM Sharma,20.57
|
| 345 |
+
161.0,13.42,93.6,0.0,0.0,9.3,37.84,158.33,48.84,10.0,7.99,28.5,21.4,37.38,11.35,6.23,1.0,14.0,11.0,0,4.74,MN Samuels,4.53
|
| 346 |
+
167.0,55.67,127.48,0.0,1.0,15.27,110.34,154.29,31.3,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,4.48,MN van Wyk,4.42
|
| 347 |
+
2136.0,28.48,147.11,1.0,10.0,19.42,118.18,190.83,34.3,46.0,9.93,32.72,19.76,29.81,13.27,8.31,4.0,104.0,73.0,3,12.6,MP Stoinis,12.63
|
| 348 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,10.0,9.7,24.4,15.1,47.68,11.43,11.18,2.0,0.0,7.0,0,2.12,MP Yadav,2.25
|
| 349 |
+
1504.0,27.85,138.36,1.0,10.0,19.14,144.17,155.45,39.56,37.0,8.6,21.7,15.14,33.75,12.49,7.71,3.0,57.0,34.0,3,10.86,MR Marsh,10.81
|
| 350 |
+
798.0,21.57,114.0,0.0,4.0,16.57,106.33,160.0,48.43,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,39.0,0.0,1,4.11,MS Bisla,4.49
|
| 351 |
+
5439.0,34.42,137.91,0.0,24.0,16.2,76.6,187.23,33.87,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,241.0,0.0,1,9.19,MS Dhoni,9.23
|
| 352 |
+
99.0,11.0,141.43,0.0,0.0,20.0,110.0,164.58,47.14,39.0,8.9,33.77,22.77,41.22,11.69,8.79,3.0,15.0,44.0,2,8.79,MS Gony,8.71
|
| 353 |
+
183.0,14.08,103.39,0.0,0.0,14.12,110.81,120.0,48.02,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,14.0,0.0,0,3.66,MS Wade,3.27
|
| 354 |
+
394.0,26.27,128.34,0.0,1.0,14.66,93.1,165.74,34.85,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,23.0,0.0,0,4.48,MV Boucher,4.18
|
| 355 |
+
153.0,19.12,116.79,0.0,0.0,16.79,123.16,0.0,45.8,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,3.29,MW Short,3.34
|
| 356 |
+
1706.0,20.31,123.18,0.0,6.0,15.45,115.21,160.59,37.76,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,97.0,0.0,1,5.02,Mandeep Singh,4.98
|
| 357 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,2.0,8.98,102.5,68.5,32.12,12.0,11.5,0.0,0.0,8.0,0,0.83,Mayank Dagar,1.35
|
| 358 |
+
117.0,13.0,144.44,0.0,0.0,19.75,131.82,266.67,37.04,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,4.53,Misbah-ul-Haq,4.31
|
| 359 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,9.0,9.59,34.11,21.33,36.98,11.38,9.8,0.0,0.0,8.0,0,1.91,Mohammad Asif,2.07
|
| 360 |
+
64.0,8.0,77.11,0.0,0.0,10.84,75.68,125.0,60.24,2.0,7.1,35.5,30.0,41.67,11.0,8.0,0.0,8.0,4.0,0,3.93,Mohammad Hafeez,3.69
|
| 361 |
+
221.0,13.0,146.36,0.0,0.0,19.87,164.71,147.3,36.42,15.0,7.58,35.13,27.8,36.69,10.0,6.45,1.0,19.0,23.0,0,6.37,Mohammad Nabi,6.56
|
| 362 |
+
115.0,6.39,102.68,0.0,0.0,12.5,110.0,104.26,49.11,157.0,8.69,26.05,17.98,42.79,11.05,7.78,15.0,33.0,127.0,2,21.0,Mohammed Shami,20.36
|
| 363 |
+
112.0,10.18,88.89,0.0,0.0,11.11,110.0,91.15,55.56,121.0,8.79,30.33,20.7,44.75,10.33,8.21,11.0,22.0,116.0,2,17.25,Mohammed Siraj,17.75
|
| 364 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,36.0,8.28,22.39,16.22,45.03,10.08,8.0,4.0,0.0,27.0,2,5.99,Mohsin Khan,5.89
|
| 365 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,21.0,8.4,29.81,21.29,35.12,11.88,7.97,1.0,0.0,20.0,2,3.72,Mujeeb Ur Rahman,4.09
|
| 366 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,20.0,9.76,28.8,17.7,42.94,13.18,9.02,3.0,0.0,18.0,2,3.87,Mukesh Choudhary,3.98
|
| 367 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,51.0,10.26,27.39,16.02,36.72,12.12,9.27,5.0,0.0,39.0,2,6.45,Mukesh Kumar,6.63
|
| 368 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,74.0,8.26,25.39,18.45,37.51,9.67,7.22,10.0,0.0,60.0,2,10.7,Mustafizur Rahman,10.43
|
| 369 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,16.0,9.72,29.25,18.06,47.75,8.3,10.04,0.0,0.0,14.0,0,3.32,N Burger,2.99
|
| 370 |
+
162.0,18.0,110.2,0.0,0.0,15.65,104.0,81.82,44.22,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,10.0,0.0,0,3.24,N Jagadeesan,3.44
|
| 371 |
+
2375.0,31.25,159.61,0.0,14.0,22.45,138.65,173.04,36.63,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,94.0,0.0,1,6.98,N Pooran,7.32
|
| 372 |
+
3022.0,27.47,137.05,0.0,22.0,19.55,113.26,188.76,39.95,11.0,8.97,29.64,19.82,31.19,7.04,9.55,0.0,118.0,27.0,1,10.33,N Rana,10.46
|
| 373 |
+
140.0,12.73,100.0,0.0,1.0,11.43,94.68,100.0,46.43,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,10.0,0.0,0,3.09,N Saini,2.89
|
| 374 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,9.0,9.53,32.11,20.22,34.62,10.47,9.22,2.0,0.0,8.0,0,3.15,N Thushara,2.79
|
| 375 |
+
784.0,25.29,138.52,0.0,4.0,18.9,115.25,152.0,38.34,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,36.0,0.0,1,5.22,N Wadhera,4.85
|
| 376 |
+
121.0,24.2,101.68,0.0,1.0,12.61,78.79,172.22,47.06,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,6.0,0.0,0,4.45,NK Patel,3.86
|
| 377 |
+
424.0,17.67,138.56,0.0,0.0,16.01,137.5,166.67,36.6,37.0,8.86,27.86,18.86,34.1,11.49,7.28,5.0,30.0,36.0,2,8.67,NLTC Perera,8.81
|
| 378 |
+
82.0,8.2,113.89,0.0,0.0,15.28,110.0,128.3,50.0,52.0,7.88,21.63,16.48,45.16,9.56,7.24,8.0,16.0,38.0,2,11.15,NM Coulter-Nile,11.09
|
| 379 |
+
31.0,7.75,62.0,0.0,0.0,4.0,43.75,68.75,56.0,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,4.0,0.0,0,1.91,NS Naik,1.96
|
| 380 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,20.0,8.75,27.65,18.95,32.98,11.42,6.74,2.0,0.0,17.0,2,4.52,NT Ellis,4.42
|
| 381 |
+
1554.0,21.0,118.81,0.0,6.0,15.29,99.63,144.24,45.8,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,94.0,0.0,1,4.52,NV Ojha,4.7
|
| 382 |
+
546.0,27.3,168.52,0.0,2.0,25.0,151.14,192.42,31.17,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,26.0,0.0,1,5.06,Naman Dhir,5.29
|
| 383 |
+
33.0,8.25,89.19,0.0,0.0,8.11,0.0,112.5,43.24,26.0,9.0,38.69,25.81,43.37,9.51,8.6,1.0,7.0,32.0,2,5.66,Navdeep Saini,5.58
|
| 384 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,26.0,9.31,23.15,14.92,36.34,10.32,9.67,4.0,0.0,17.0,2,3.85,Naveen-ul-Haq,4.29
|
| 385 |
+
657.0,27.38,137.45,0.0,3.0,16.53,89.0,182.14,34.94,13.0,10.32,34.92,20.31,31.44,13.3,10.16,1.0,29.0,20.0,1,5.99,Nithish Kumar Reddy,6.25
|
| 386 |
+
30.0,3.0,55.56,0.0,0.0,5.56,110.0,71.05,68.52,56.0,8.24,24.2,17.62,35.76,8.58,8.5,6.0,14.0,45.0,2,8.97,Noor Ahmad,8.8
|
| 387 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,5.0,8.5,17.0,12.0,36.67,9.0,9.67,0.0,0.0,4.0,0,2.56,O Thomas,2.49
|
| 388 |
+
506.0,38.92,130.41,0.0,4.0,14.69,107.14,151.88,34.28,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,22.0,0.0,1,4.91,OA Shah,5.03
|
| 389 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,11.0,9.44,23.18,14.73,31.48,8.95,6.0,1.0,0.0,8.0,0,3.62,OC McCoy,3.09
|
| 390 |
+
51.0,17.0,115.91,0.0,0.0,13.64,110.0,143.75,52.27,7.0,11.93,25.57,12.86,40.0,15.33,7.75,1.0,6.0,6.0,0,4.64,OF Smith,4.51
|
| 391 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,10.95,34.43,18.86,25.76,21.0,11.0,0.0,0.0,6.0,0,1.01,P Amarnath,1.19
|
| 392 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,43.0,8.4,24.33,17.37,41.1,11.22,8.17,4.0,0.0,33.0,2,6.02,P Awana,6.02
|
| 393 |
+
127.0,10.58,92.03,0.0,0.0,6.52,110.0,119.05,43.48,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,12.0,0.0,0,2.72,P Dogra,2.5
|
| 394 |
+
23.0,23.0,69.7,0.0,0.0,6.06,110.0,50.0,51.52,2.0,8.62,56.0,39.0,30.77,11.0,4.0,0.0,2.0,5.0,0,2.51,P Dubey,2.71
|
| 395 |
+
340.0,10.0,108.97,0.0,0.0,12.5,75.0,112.45,47.44,102.0,7.94,32.76,24.75,45.44,10.44,6.88,6.0,57.0,119.0,2,15.32,P Kumar,15.36
|
| 396 |
+
365.0,14.04,126.74,0.0,0.0,14.93,62.5,143.95,38.89,38.0,7.99,25.11,18.84,34.78,10.19,7.25,3.0,35.0,42.0,2,9.21,P Negi,9.03
|
| 397 |
+
147.0,21.0,145.54,0.0,0.0,23.76,156.98,120.0,38.61,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,7.0,0.0,0,3.95,P Nissanka,4.0
|
| 398 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,9.0,8.81,25.11,17.11,42.86,10.55,9.75,1.0,0.0,8.0,0,2.04,P Parameswaran,2.37
|
| 399 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,3.0,8.69,50.67,35.0,25.71,11.0,9.33,0.0,0.0,5.0,0,2.02,P Sahu,1.93
|
| 400 |
+
1701.0,29.33,155.34,1.0,12.0,24.29,151.78,172.5,38.81,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,59.0,0.0,1,7.11,P Simran Singh,7.24
|
| 401 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,2.0,9.62,77.0,48.0,40.62,12.5,10.0,0.0,0.0,5.0,0,1.67,P Suyal,1.16
|
| 402 |
+
2848.0,22.43,121.19,0.0,13.0,17.62,121.27,140.0,42.26,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,136.0,0.0,1,5.66,PA Patel,5.66
|
| 403 |
+
164.0,16.4,102.5,0.0,0.0,10.62,96.49,300.0,40.62,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,10.0,0.0,0,3.67,PA Reddy,3.68
|
| 404 |
+
277.0,23.08,145.79,0.0,1.0,19.47,158.11,50.0,36.84,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,13.0,0.0,0,4.09,PBB Rajapaksa,4.08
|
| 405 |
+
505.0,22.95,121.98,1.0,2.0,19.57,109.76,207.69,51.93,7.0,8.23,29.57,21.57,30.46,9.23,9.0,1.0,23.0,10.0,1,6.87,PC Valthaty,6.67
|
| 406 |
+
203.0,50.75,130.13,0.0,3.0,14.1,116.13,178.38,36.54,5.0,6.81,20.2,17.8,26.97,4.94,9.0,0.0,7.0,6.0,0,7.39,PD Collingwood,7.36
|
| 407 |
+
1258.0,33.11,172.57,0.0,12.0,28.12,168.92,218.18,36.63,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,40.0,0.0,1,7.41,PD Salt,7.28
|
| 408 |
+
92.0,23.0,127.78,0.0,0.0,12.5,55.56,100.0,34.72,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,2.96,PHKD Mendis,3.35
|
| 409 |
+
612.0,18.55,153.0,0.0,3.0,20.0,20.0,161.33,38.5,83.0,8.93,29.67,19.94,38.67,10.79,8.74,8.0,48.0,73.0,3,15.11,PJ Cummins,14.69
|
| 410 |
+
26.0,3.25,59.09,0.0,0.0,2.27,110.0,62.86,54.55,44.0,8.88,28.8,19.45,39.49,11.36,8.8,4.0,14.0,42.0,2,7.15,PJ Sangwan,7.0
|
| 411 |
+
273.0,14.37,114.71,0.0,1.0,10.5,98.31,183.33,36.13,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,19.0,0.0,0,3.77,PK Garg,3.52
|
| 412 |
+
97.0,32.33,134.72,0.0,1.0,20.83,117.5,140.0,40.28,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,4.63,PN Mankad,4.52
|
| 413 |
+
624.0,10.95,111.23,0.0,0.0,13.55,114.29,124.77,43.67,201.0,8.07,25.77,19.15,35.27,10.02,7.68,15.0,86.0,191.0,3,25.57,PP Chawla,25.69
|
| 414 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,11.01,24.17,13.17,45.57,9.23,12.3,1.0,0.0,3.0,0,1.53,PP Hinge,1.53
|
| 415 |
+
16.0,1.6,36.36,0.0,0.0,0.0,110.0,39.02,65.91,99.0,7.58,24.23,19.18,37.28,9.42,7.26,8.0,19.0,90.0,2,13.64,PP Ojha,13.35
|
| 416 |
+
1892.0,24.57,147.81,0.0,14.0,23.36,143.43,163.64,37.73,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,79.0,0.0,1,6.91,PP Shaw,6.63
|
| 417 |
+
92.0,11.5,102.22,0.0,0.0,12.22,97.3,118.75,48.89,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,9.0,0.0,0,2.58,PR Shah,2.93
|
| 418 |
+
49.0,49.0,136.11,0.0,0.0,22.22,110.0,75.0,36.11,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,2.0,0.0,0,5.07,PR Veer,4.89
|
| 419 |
+
18.0,18.0,47.37,0.0,0.0,2.63,110.0,42.86,60.53,28.0,7.87,30.93,23.57,32.58,12.5,7.82,2.0,6.0,33.0,2,5.54,PV Tambe,5.57
|
| 420 |
+
53.0,17.67,117.78,0.0,0.0,13.33,110.0,120.0,42.22,15.0,9.75,43.87,27.0,40.74,11.58,9.56,1.0,11.0,20.0,0,5.59,PVD Chameera,5.49
|
| 421 |
+
81.0,5.4,92.05,0.0,0.0,9.09,110.0,104.88,46.59,47.0,8.47,24.13,17.09,34.99,8.32,7.87,3.0,19.0,37.0,2,8.58,PWH de Silva,8.66
|
| 422 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,11.0,9.44,42.91,27.27,38.33,14.57,7.9,0.0,0.0,17.0,0,2.9,Pankaj Singh,2.12
|
| 423 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,4.0,8.27,68.25,49.5,31.31,11.0,8.23,0.0,0.0,11.0,0,2.45,Parvez Rasool,2.16
|
| 424 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,21.0,8.47,22.67,16.05,41.25,10.82,7.59,3.0,0.0,14.0,2,4.15,Prince Yadav,4.37
|
| 425 |
+
828.0,33.12,192.56,1.0,5.0,32.09,189.62,120.0,36.05,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,25.0,0.0,1,6.7,Priyansh Arya,6.7
|
| 426 |
+
3444.0,31.31,134.69,3.0,24.0,18.65,129.2,206.1,38.8,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,118.0,0.0,1,10.0,Q de Kock,10.72
|
| 427 |
+
833.0,13.44,118.32,0.0,1.0,13.21,102.38,134.5,36.51,205.0,7.28,27.91,22.99,35.35,9.06,6.93,10.0,93.0,217.0,3,26.32,R Ashwin,26.12
|
| 428 |
+
342.0,11.79,120.42,0.0,0.0,13.03,100.0,155.78,36.62,82.0,7.55,25.11,19.95,28.55,8.83,7.19,8.0,47.0,91.0,2,13.43,R Bhatia,13.66
|
| 429 |
+
210.0,21.0,112.3,0.0,0.0,13.37,110.0,138.61,44.92,27.0,8.36,34.15,24.52,32.93,11.11,8.14,0.0,22.0,36.0,2,6.89,R Dhawan,7.04
|
| 430 |
+
2174.0,28.23,115.76,0.0,11.0,15.81,106.81,179.78,41.53,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,82.0,0.0,1,6.42,R Dravid,6.04
|
| 431 |
+
159.0,19.88,92.98,0.0,1.0,8.77,73.91,117.02,40.35,14.0,9.46,39.86,25.29,36.16,11.25,8.61,1.0,13.0,18.0,0,4.13,R McLaren,4.05
|
| 432 |
+
1687.0,24.81,139.54,0.0,7.0,17.7,119.73,161.73,35.48,11.0,9.44,46.91,29.82,24.39,12.4,8.0,0.0,81.0,34.0,1,6.15,R Parag,6.6
|
| 433 |
+
486.0,20.25,140.06,0.0,1.0,19.02,115.38,188.06,42.36,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,28.0,0.0,0,3.65,R Powell,3.88
|
| 434 |
+
51.0,10.2,104.08,0.0,0.0,10.2,110.0,103.57,48.98,17.0,7.14,18.76,15.76,51.12,11.22,6.28,1.0,7.0,12.0,0,5.74,R Rampaul,5.71
|
| 435 |
+
413.0,25.81,142.91,0.0,2.0,19.38,136.19,266.67,34.26,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,18.0,0.0,0,5.43,R Ravindra,4.76
|
| 436 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,32.0,8.77,20.47,14.0,31.47,11.07,7.83,2.0,0.0,25.0,2,5.43,R Sai Kishore,5.32
|
| 437 |
+
270.0,16.88,117.39,0.0,0.0,12.17,0.0,144.44,37.83,6.0,10.06,38.83,23.17,22.3,18.46,4.0,0.0,24.0,14.0,0,3.94,R Sathish,4.11
|
| 438 |
+
66.0,6.0,88.0,0.0,0.0,10.67,110.0,80.6,61.33,42.0,7.11,26.19,22.1,37.07,9.15,6.58,1.0,19.0,44.0,2,8.58,R Sharma,8.29
|
| 439 |
+
224.0,22.4,200.0,0.0,1.0,30.36,110.0,238.57,31.25,15.0,12.14,39.4,19.47,30.48,14.7,7.8,2.0,16.0,22.0,0,6.71,R Shepherd,6.73
|
| 440 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,10.85,31.0,17.14,36.67,16.67,8.8,0.0,0.0,7.0,0,0.76,R Shukla,1.63
|
| 441 |
+
1161.0,22.76,135.47,0.0,1.0,17.39,92.86,171.0,36.17,36.0,7.95,31.03,23.42,32.03,6.46,6.53,4.0,82.0,52.0,3,10.74,R Tewatia,10.79
|
| 442 |
+
310.0,11.92,113.14,0.0,0.0,10.95,110.0,121.94,37.59,127.0,8.58,23.94,16.75,37.66,10.7,7.3,15.0,42.0,104.0,2,18.62,R Vinay Kumar,18.58
|
| 443 |
+
3392.0,27.14,130.06,0.0,5.0,14.15,104.79,159.37,31.83,185.0,7.74,29.11,22.58,33.06,9.2,7.32,18.0,200.0,232.0,3,27.86,RA Jadeja,27.63
|
| 444 |
+
2291.0,26.64,138.43,0.0,12.0,18.97,137.7,168.0,36.44,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,98.0,0.0,1,5.65,RA Tripathi,5.95
|
| 445 |
+
129.0,8.06,104.03,0.0,0.0,14.52,110.0,111.83,54.03,76.0,7.86,29.21,22.3,35.22,9.09,7.18,6.0,22.0,79.0,2,12.21,RD Chahar,12.27
|
| 446 |
+
2680.0,39.41,136.04,2.0,21.0,17.72,126.1,183.76,35.43,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,78.0,0.0,1,8.23,RD Gaikwad,8.29
|
| 447 |
+
525.0,29.17,147.89,0.0,4.0,23.94,149.61,50.0,44.23,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,19.0,0.0,1,5.14,RD Rickelton,5.2
|
| 448 |
+
83.0,13.83,113.7,0.0,1.0,19.18,115.62,120.0,54.79,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,6.0,0.0,0,3.62,RE Levi,3.42
|
| 449 |
+
159.0,14.45,112.77,0.0,0.0,13.48,102.56,130.56,44.68,25.0,6.98,20.6,17.72,35.89,8.95,8.89,2.0,15.0,21.0,2,7.12,RE van der Merwe,7.3
|
| 450 |
+
7185.0,28.86,132.64,2.0,48.0,17.8,123.0,198.0,37.95,16.0,8.18,28.88,21.19,27.73,10.4,7.62,2.0,270.0,32.0,1,15.91,RG Sharma,15.32
|
| 451 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,2.0,9.65,55.5,34.5,37.68,10.8,9.6,0.0,0.0,3.0,0,0.9,RJ Gleeson,1.22
|
| 452 |
+
117.0,9.75,105.41,0.0,0.0,8.11,110.0,117.81,41.44,47.0,7.82,23.09,17.7,46.88,9.41,6.84,7.0,21.0,37.0,2,9.78,RJ Harris,9.71
|
| 453 |
+
32.0,10.67,106.67,0.0,0.0,13.33,110.0,120.0,43.33,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,3.33,RJ Peterson,3.37
|
| 454 |
+
103.0,14.71,100.98,0.0,1.0,14.71,89.47,120.0,52.94,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,7.0,0.0,0,2.77,RJ Quiney,2.88
|
| 455 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,5.0,11.1,44.4,24.0,36.67,14.25,8.73,0.0,0.0,6.0,0,1.29,RJW Topley,0.99
|
| 456 |
+
1318.0,32.15,143.26,0.0,6.0,18.7,127.27,191.96,33.8,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,58.0,0.0,1,5.49,RK Singh,5.47
|
| 457 |
+
1349.0,32.12,158.52,1.0,11.0,21.03,119.55,162.07,31.73,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,45.0,0.0,1,6.5,RM Patidar,6.68
|
| 458 |
+
326.0,19.18,138.72,0.0,1.0,17.45,85.71,173.87,32.77,3.0,7.23,31.33,26.0,28.21,12.0,9.0,0.0,21.0,10.0,0,5.31,RN ten Doeschate,5.31
|
| 459 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,21.0,9.6,29.57,18.48,40.21,12.0,8.42,1.0,0.0,18.0,2,2.88,RP Meredith,3.52
|
| 460 |
+
52.0,3.47,68.42,0.0,0.0,3.95,110.0,75.76,51.32,100.0,8.17,24.17,17.75,44.51,9.55,7.38,12.0,28.0,82.0,2,14.33,RP Singh,14.34
|
| 461 |
+
3756.0,33.24,146.32,2.0,20.0,20.06,119.41,203.87,34.44,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,131.0,0.0,1,8.77,RR Pant,8.93
|
| 462 |
+
67.0,22.33,104.69,0.0,0.0,10.94,110.0,120.75,42.19,15.0,7.58,35.87,28.4,40.85,10.0,7.27,0.0,9.0,26.0,0,6.46,RR Powar,6.3
|
| 463 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,9.24,30.57,19.86,29.5,12.21,11.33,0.0,0.0,10.0,0,1.79,RR Raje,1.81
|
| 464 |
+
473.0,22.52,154.58,0.0,2.0,22.88,130.43,215.38,37.58,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,22.0,0.0,0,4.84,RR Rossouw,4.69
|
| 465 |
+
73.0,24.33,97.33,0.0,0.0,9.33,106.38,120.0,41.33,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,4.0,0.0,0,3.08,RR Sarwan,3.08
|
| 466 |
+
531.0,27.95,117.22,0.0,3.0,12.14,94.44,161.54,35.32,13.0,8.77,23.15,15.85,32.04,10.17,8.0,1.0,22.0,14.0,1,6.4,RS Bopara,6.37
|
| 467 |
+
91.0,11.38,71.09,0.0,0.0,5.47,67.05,120.0,53.12,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,9.0,0.0,0,2.13,RT Ponting,2.17
|
| 468 |
+
50.0,7.14,98.04,0.0,0.0,11.76,0.0,125.71,49.02,6.0,8.12,21.67,16.0,39.58,20.0,4.0,0.0,9.0,9.0,0,4.38,RV Gomez,4.3
|
| 469 |
+
80.0,16.0,109.59,0.0,0.0,10.96,110.0,132.43,35.62,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,7.0,0.0,0,3.4,RV Patel,3.4
|
| 470 |
+
4954.0,27.22,130.92,0.0,27.0,17.52,123.26,177.35,38.69,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,197.0,0.0,1,8.97,RV Uthappa,9.19
|
| 471 |
+
363.0,21.35,134.44,0.0,2.0,20.74,127.88,120.0,49.63,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,18.0,0.0,0,3.97,Rahmanullah Gurbaz,3.96
|
| 472 |
+
299.0,18.69,145.15,0.0,0.0,17.48,80.0,186.36,34.47,7.0,9.34,13.57,8.71,31.15,8.07,9.0,1.0,26.0,6.0,0,6.11,Ramandeep Singh,6.22
|
| 473 |
+
613.0,13.62,157.58,0.0,1.0,21.85,110.0,165.89,39.85,174.0,7.31,23.71,19.47,37.58,8.59,7.15,18.0,69.0,144.0,3,25.11,Rashid Khan,25.15
|
| 474 |
+
40.0,8.0,100.0,0.0,0.0,12.5,110.0,142.11,47.5,17.0,9.95,32.29,19.47,32.33,10.12,8.95,3.0,6.0,18.0,0,4.9,Rasikh Salam,4.54
|
| 475 |
+
45.0,4.09,65.22,0.0,0.0,5.8,110.0,66.67,63.77,89.0,8.33,28.02,20.18,35.3,11.13,7.73,6.0,18.0,84.0,2,12.51,Ravi Bishnoi,12.24
|
| 476 |
+
136.0,17.0,121.43,0.0,1.0,14.29,106.45,158.54,40.18,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,12.0,0.0,0,4.34,S Anirudha,3.87
|
| 477 |
+
59.0,19.67,103.51,0.0,0.0,12.28,110.0,112.2,42.11,48.0,8.34,22.02,15.83,39.74,9.86,7.64,5.0,10.0,38.0,2,9.43,S Aravind,9.77
|
| 478 |
+
63.0,12.6,140.0,0.0,0.0,20.0,110.0,141.18,42.22,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,6.0,0.0,0,4.04,S Arora,3.95
|
| 479 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,11.0,7.65,29.91,23.45,44.19,11.0,7.68,1.0,0.0,12.0,0,3.23,S Badree,3.22
|
| 480 |
+
1441.0,30.02,119.29,0.0,11.0,15.07,82.17,163.68,37.91,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,65.0,0.0,1,6.92,S Badrinath,6.24
|
| 481 |
+
25.0,8.33,80.65,0.0,0.0,12.9,80.65,120.0,58.06,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,3.0,0.0,0,2.99,S Chanderpaul,2.68
|
| 482 |
+
6769.0,35.07,127.62,2.0,51.0,17.36,121.69,165.78,37.14,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,221.0,0.0,1,13.49,S Dhawan,12.86
|
| 483 |
+
2009.0,30.44,140.69,0.0,10.0,17.51,100.0,159.26,35.85,7.0,10.83,37.14,20.57,22.92,12.35,9.0,1.0,83.0,17.0,1,6.38,S Dube,6.34
|
| 484 |
+
180.0,13.85,106.51,0.0,0.0,12.43,42.86,135.23,39.64,53.0,8.22,25.62,18.7,32.9,7.58,7.33,5.0,22.0,51.0,2,9.7,S Gopal,9.89
|
| 485 |
+
20.0,6.67,55.56,0.0,0.0,2.78,110.0,58.06,63.89,63.0,8.79,28.13,19.19,33.91,9.26,9.2,5.0,9.0,55.0,2,9.45,S Kaul,8.47
|
| 486 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,8.94,50.67,34.0,35.29,16.67,8.75,1.0,0.0,10.0,0,1.54,S Kaushik,1.79
|
| 487 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,5.0,9.78,45.0,27.6,35.51,10.25,10.83,0.0,0.0,9.0,0,1.1,S Ladda,1.42
|
| 488 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,14.0,8.49,21.21,15.0,36.67,19.0,8.29,2.0,0.0,9.0,0,2.92,S Lamichhane,3.23
|
| 489 |
+
39.0,2.44,44.83,0.0,0.0,2.3,110.0,44.23,65.52,54.0,7.63,33.33,26.2,33.14,12.0,7.63,2.0,20.0,70.0,2,7.08,S Nadeem,9.6
|
| 490 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,11.49,33.83,17.67,35.85,16.5,9.08,1.0,0.0,6.0,0,2.14,S Narwal,1.7
|
| 491 |
+
91.0,18.2,115.19,0.0,0.0,12.66,87.5,148.78,40.51,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,3.73,S Rana,3.55
|
| 492 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,8.0,7.69,27.88,21.75,34.48,11.0,7.2,0.0,0.0,8.0,0,2.52,S Randiv,2.83
|
| 493 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,8.0,9.18,32.12,21.0,44.64,11.0,9.46,1.0,0.0,10.0,0,3.01,S Sandeep Warrier,2.54
|
| 494 |
+
368.0,20.44,127.34,0.0,2.0,17.99,128.45,44.44,47.06,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,20.0,0.0,0,3.91,S Sohal,3.65
|
| 495 |
+
34.0,11.33,61.82,0.0,0.0,10.91,110.0,62.96,74.55,43.0,8.33,28.4,20.47,47.27,12.0,7.65,2.0,12.0,44.0,2,6.98,S Sreesanth,7.13
|
| 496 |
+
31.0,15.5,86.11,0.0,0.0,8.33,116.67,120.0,44.44,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,2.0,0.0,0,3.2,S Sriram,2.89
|
| 497 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,8.73,50.67,34.83,47.37,17.45,8.38,0.0,0.0,14.0,0,2.07,S Tyagi,1.98
|
| 498 |
+
145.0,18.12,133.03,0.0,1.0,22.02,131.71,120.0,44.95,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,3.55,S Vidyut,3.88
|
| 499 |
+
423.0,22.26,125.52,0.0,2.0,19.58,128.21,120.0,44.21,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,19.0,0.0,0,4.01,SA Asnodkar,3.88
|
| 500 |
+
4468.0,34.37,148.09,2.0,30.0,21.31,135.1,195.47,34.14,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,158.0,0.0,1,10.4,SA Yadav,10.68
|
| 501 |
+
49.0,8.17,84.48,0.0,0.0,6.9,110.0,170.59,48.28,6.0,8.84,36.83,25.0,38.0,13.33,5.0,0.0,7.0,9.0,0,3.12,SB Bangar,3.15
|
| 502 |
+
189.0,27.0,173.39,0.0,0.0,24.77,233.33,198.53,28.44,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,13.0,0.0,0,5.47,SB Dubey,5.16
|
| 503 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,50.0,8.15,29.48,21.7,32.72,12.68,7.26,3.0,0.0,57.0,2,7.37,SB Jakati,7.03
|
| 504 |
+
131.0,18.71,99.24,0.0,0.0,9.85,73.91,116.67,38.64,9.0,7.72,30.89,24.0,39.35,10.14,6.09,1.0,10.0,11.0,0,4.55,SB Styris,4.79
|
| 505 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,5.0,8.65,29.4,20.4,49.02,13.5,8.0,1.0,0.0,8.0,0,2.43,SB Wagh,2.41
|
| 506 |
+
1349.0,24.98,107.32,0.0,7.0,14.24,97.7,175.38,47.26,12.0,8.04,30.83,23.0,29.71,25.0,8.17,2.0,56.0,20.0,1,6.82,SC Ganguly,6.84
|
| 507 |
+
99.0,14.14,112.5,0.0,0.0,13.64,58.33,126.67,39.77,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,2.98,SD Chitnis,3.09
|
| 508 |
+
183.0,22.88,150.0,0.0,0.0,19.67,138.57,100.0,36.89,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,9.0,0.0,0,3.75,SD Hope,4.0
|
| 509 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,9.0,7.26,25.0,20.67,40.86,9.67,6.33,0.0,0.0,8.0,0,2.7,SE Bond,3.04
|
| 510 |
+
2489.0,38.29,133.39,1.0,20.0,18.6,112.66,163.46,37.14,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,69.0,0.0,1,8.06,SE Marsh,8.15
|
| 511 |
+
500.0,22.73,135.87,0.0,1.0,17.93,26.32,148.47,42.39,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,26.0,0.0,1,3.9,SE Rutherford,4.34
|
| 512 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,5.0,10.26,57.8,33.8,39.05,9.07,10.21,0.0,0.0,9.0,0,1.84,SH Johnson,1.62
|
| 513 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,15.0,9.45,29.6,18.8,37.59,11.43,9.59,0.0,0.0,14.0,0,2.63,SJ Srivastava,2.65
|
| 514 |
+
5536.0,33.15,137.54,1.0,39.0,17.64,129.17,173.37,33.14,30.0,7.53,37.97,30.27,32.93,8.97,6.76,0.0,200.0,69.0,3,15.82,SK Raina,15.9
|
| 515 |
+
71.0,14.2,105.97,0.0,0.0,16.42,107.81,120.0,56.72,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,2.79,SK Rasheed,3.13
|
| 516 |
+
42.0,5.25,72.41,0.0,0.0,6.9,110.0,75.47,58.62,73.0,7.75,26.63,20.63,35.06,9.76,7.68,7.0,14.0,75.0,2,11.02,SK Trivedi,11.08
|
| 517 |
+
198.0,10.42,92.96,0.0,0.0,9.39,110.0,102.65,46.95,60.0,7.36,24.42,19.9,37.02,10.05,7.16,5.0,27.0,54.0,2,10.63,SK Warne,10.49
|
| 518 |
+
88.0,7.33,88.89,0.0,0.0,11.11,110.0,89.89,55.56,188.0,7.4,18.54,15.04,43.07,8.19,6.51,24.0,20.0,122.0,2,26.2,SL Malinga,26.47
|
| 519 |
+
997.0,24.32,136.39,0.0,6.0,17.24,110.06,186.8,35.02,63.0,9.84,32.68,19.92,33.15,11.39,8.37,7.0,53.0,63.0,3,12.77,SM Curran,12.79
|
| 520 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,3.0,7.4,24.67,20.0,56.67,8.67,2.33,0.0,0.0,3.0,0,2.79,SM Harwood,2.69
|
| 521 |
+
241.0,24.1,130.27,0.0,2.0,18.38,129.75,130.77,43.24,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,11.0,0.0,0,4.43,SM Katich,4.05
|
| 522 |
+
147.0,18.38,132.43,0.0,0.0,18.02,50.0,205.71,37.84,13.0,6.67,23.62,21.23,47.83,11.0,6.51,1.0,8.0,13.0,0,6.33,SM Pollock,6.48
|
| 523 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,9.0,6.59,23.44,21.33,39.06,7.5,5.29,0.0,0.0,8.0,0,3.78,SMSM Senanayake,3.76
|
| 524 |
+
746.0,20.72,137.13,0.0,2.0,19.49,137.78,184.83,35.66,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,43.0,0.0,1,4.4,SN Khan,4.69
|
| 525 |
+
339.0,12.11,132.42,0.0,1.0,17.19,0.0,139.42,37.5,121.0,9.52,28.71,18.1,35.71,11.02,9.28,10.0,42.0,107.0,2,17.53,SN Thakur,17.7
|
| 526 |
+
1560.0,26.9,147.73,0.0,5.0,18.37,105.63,178.65,34.38,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,84.0,0.0,1,5.23,SO Hetmyer,5.2
|
| 527 |
+
196.0,21.78,120.99,0.0,0.0,18.52,116.0,120.0,48.15,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,10.0,0.0,0,2.93,SP Fleming,3.47
|
| 528 |
+
293.0,14.65,100.0,0.0,1.0,11.95,97.3,78.57,44.71,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,21.0,0.0,0,2.36,SP Goswami,2.88
|
| 529 |
+
61.0,10.17,107.02,0.0,0.0,10.53,111.11,95.0,35.09,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,2.76,SP Jackson,3.06
|
| 530 |
+
1820.0,18.57,162.79,1.0,7.0,27.82,164.78,92.38,46.42,221.0,6.92,23.59,20.46,39.68,7.96,6.71,18.0,122.0,194.0,3,30.26,SP Narine,29.81
|
| 531 |
+
2495.0,31.99,129.21,1.0,11.0,14.81,120.71,173.67,31.18,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,93.0,0.0,1,6.34,SPD Smith,6.8
|
| 532 |
+
2334.0,32.87,120.25,1.0,13.0,16.74,114.85,169.23,39.82,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,78.0,0.0,1,7.08,SR Tendulkar,7.05
|
| 533 |
+
3880.0,31.04,138.52,4.0,21.0,20.24,115.16,187.9,41.56,107.0,8.11,25.63,18.96,41.89,10.35,7.19,12.0,141.0,105.0,3,23.02,SR Watson,22.98
|
| 534 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,8.85,29.5,20.0,49.17,16.0,7.71,0.0,0.0,6.0,0,2.02,SS Cottrell,2.14
|
| 535 |
+
4044.0,33.98,135.12,0.0,31.0,16.94,110.18,193.13,34.05,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,138.0,0.0,1,9.08,SS Iyer,8.87
|
| 536 |
+
126.0,14.0,120.0,0.0,0.0,14.29,87.5,121.05,45.71,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,10.0,0.0,0,3.02,SS Prabhudessai,3.26
|
| 537 |
+
1494.0,30.49,120.97,0.0,8.0,13.04,109.63,151.59,34.66,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,73.0,0.0,1,5.26,SS Tiwary,5.62
|
| 538 |
+
768.0,26.48,145.18,1.0,4.0,23.25,139.85,120.0,47.45,16.0,8.08,24.75,18.38,29.25,10.71,11.5,3.0,30.0,21.0,1,7.95,ST Jayasuriya,7.98
|
| 539 |
+
880.0,20.0,129.03,0.0,0.0,14.81,69.39,160.0,36.8,28.0,7.71,27.25,21.21,34.34,10.14,7.41,1.0,66.0,63.0,3,8.3,STR Binny,11.37
|
| 540 |
+
5008.0,31.9,140.83,5.0,26.0,18.17,127.86,195.83,34.39,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,179.0,0.0,1,11.79,SV Samson,11.69
|
| 541 |
+
503.0,19.35,130.65,0.0,3.0,15.58,125.64,165.22,36.1,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,27.0,0.0,1,4.08,SW Billings,4.56
|
| 542 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,26.0,8.47,25.69,18.19,46.93,8.67,8.12,4.0,0.0,21.0,2,5.63,SW Tait,5.27
|
| 543 |
+
144.0,14.4,125.22,0.0,0.0,13.91,0.0,184.78,38.26,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,11.0,0.0,0,3.23,Sachin Baby,3.49
|
| 544 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,8.32,21.0,15.14,40.57,7.33,7.71,1.0,0.0,4.0,0,3.41,Sakib Hussain,3.21
|
| 545 |
+
193.0,27.57,120.62,0.0,1.0,20.0,110.28,200.0,46.88,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,7.0,0.0,0,4.95,Salman Butt,4.65
|
| 546 |
+
381.0,29.31,139.56,0.0,3.0,19.05,56.25,186.27,40.29,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,16.0,0.0,0,3.87,Sameer Rizvi,4.28
|
| 547 |
+
60.0,12.0,80.0,0.0,0.0,5.33,110.0,80.0,41.33,169.0,8.16,25.54,18.78,39.95,10.71,7.11,17.0,26.0,141.0,2,21.63,Sandeep Sharma,22.18
|
| 548 |
+
560.0,18.67,121.21,0.0,1.0,11.9,80.56,156.85,34.63,22.0,9.71,44.05,27.23,27.55,8.28,9.9,2.0,39.0,46.0,3,7.59,Shahbaz Ahmed,7.59
|
| 549 |
+
81.0,10.12,176.09,0.0,0.0,28.26,226.32,220.0,43.48,9.0,7.9,26.33,20.0,36.11,7.0,7.0,1.0,9.0,10.0,0,7.4,Shahid Afridi,7.54
|
| 550 |
+
795.0,20.38,125.2,0.0,2.0,14.8,88.46,150.55,33.39,71.0,7.54,26.25,20.9,35.24,10.22,7.08,3.0,52.0,70.0,3,13.07,Shakib Al Hasan,12.98
|
| 551 |
+
843.0,42.15,156.4,0.0,5.0,20.22,137.14,197.03,29.5,4.0,8.95,22.75,15.25,26.23,15.5,9.0,0.0,38.0,6.0,1,6.46,Shashank Singh,6.5
|
| 552 |
+
51.0,5.67,91.07,0.0,0.0,10.71,110.0,102.13,53.57,33.0,8.86,29.03,19.67,41.14,11.41,8.13,1.0,11.0,32.0,2,6.39,Shivam Mavi,6.88
|
| 553 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,4.0,8.68,41.25,28.5,32.46,8.33,2.0,0.0,0.0,5.0,0,2.11,Shivam Sharma,2.15
|
| 554 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,9.47,30.0,19.0,29.32,11.0,9.0,1.0,0.0,7.0,0,2.54,Shivang Kumar,2.2
|
| 555 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,5.0,9.06,30.8,20.4,34.31,20.0,10.5,0.0,0.0,7.0,0,1.8,Shoaib Ahmed,1.77
|
| 556 |
+
52.0,13.0,113.04,0.0,0.0,10.87,116.67,50.0,30.43,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,3.03,Shoaib Malik,3.08
|
| 557 |
+
4196.0,40.35,138.71,4.0,29.0,17.69,130.55,157.21,31.7,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,121.0,0.0,1,10.82,Shubman Gill,10.9
|
| 558 |
+
182.0,26.0,133.82,0.0,1.0,14.71,129.41,125.93,38.24,3.0,10.31,48.67,28.33,27.06,11.0,14.0,0.0,9.0,7.0,0,4.01,Sikandar Raza,4.16
|
| 559 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,12.0,10.15,34.25,20.25,44.86,13.0,9.88,1.0,0.0,14.0,0,2.18,Simarjeet Singh,2.45
|
| 560 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,24.0,6.68,11.46,10.29,52.63,6.88,6.61,6.0,0.0,11.0,2,6.6,Sohail Tanvir,6.51
|
| 561 |
+
43.0,10.75,138.71,0.0,0.0,22.58,160.0,77.78,38.71,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,3.46,Sunny Singh,3.9
|
| 562 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,26.0,8.66,40.12,27.81,35.27,8.05,8.0,4.0,0.0,34.0,2,5.17,Suyash Sharma,5.24
|
| 563 |
+
51.0,10.2,113.33,0.0,0.0,13.33,110.0,136.84,44.44,7.0,8.93,34.43,23.14,24.07,11.0,8.54,0.0,9.0,14.0,0,5.07,Swapnil Singh,4.73
|
| 564 |
+
48.0,16.0,88.89,0.0,0.0,14.81,90.57,120.0,61.11,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,3.0,0.0,0,3.25,T Kohler-Cadmore,2.85
|
| 565 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,82.0,9.12,28.26,18.6,32.33,10.36,8.34,9.0,0.0,71.0,2,10.58,T Natarajan,10.79
|
| 566 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,3.0,9.25,61.67,40.0,26.67,15.0,8.0,0.0,0.0,5.0,0,1.66,T Shamsi,1.5
|
| 567 |
+
912.0,45.6,155.9,0.0,5.0,18.8,121.88,216.74,24.62,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,37.0,0.0,1,5.86,T Stubbs,5.89
|
| 568 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,10.0,7.29,16.4,13.5,44.44,11.54,5.73,1.0,0.0,6.0,0,2.34,T Thushara,2.84
|
| 569 |
+
86.0,9.56,102.38,0.0,0.0,9.52,110.0,102.99,44.05,152.0,8.52,25.76,18.14,42.64,10.72,7.43,13.0,24.0,122.0,2,19.58,TA Boult,19.95
|
| 570 |
+
120.0,10.91,113.21,0.0,0.0,11.32,110.0,135.06,42.45,57.0,8.83,31.12,21.16,39.39,10.85,8.11,8.0,19.0,54.0,2,9.84,TG Southee,9.98
|
| 571 |
+
1029.0,36.75,174.41,0.0,2.0,23.9,110.0,202.9,31.19,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,51.0,0.0,1,5.75,TH David,5.82
|
| 572 |
+
127.0,25.4,118.69,0.0,1.0,12.15,110.0,131.82,33.64,13.0,10.89,33.23,18.31,24.79,13.61,9.57,1.0,10.0,13.0,0,4.83,TK Curran,4.86
|
| 573 |
+
45.0,7.5,109.76,0.0,0.0,17.07,116.22,50.0,53.66,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,6.0,0.0,0,3.63,TL Seifert,3.36
|
| 574 |
+
676.0,22.53,117.98,0.0,2.0,14.14,102.5,131.51,42.06,7.0,7.92,28.29,21.43,29.33,12.0,7.0,0.0,39.0,11.0,1,5.42,TL Suman,5.32
|
| 575 |
+
1153.0,28.12,115.18,0.0,9.0,16.38,108.15,188.37,45.05,5.0,8.15,73.6,54.2,29.89,11.54,7.15,0.0,50.0,25.0,1,6.31,TM Dilshan,6.29
|
| 576 |
+
1332.0,32.49,161.45,1.0,8.0,25.58,169.57,195.83,36.73,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,45.0,0.0,1,7.17,TM Head,7.21
|
| 577 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,1.0,11.74,137.0,70.0,27.14,14.62,10.0,0.0,0.0,3.0,0,0.2,TP Sudhindra,0.47
|
| 578 |
+
75.0,15.0,131.58,0.0,0.0,19.3,20.0,182.14,43.86,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,5.0,0.0,0,4.04,TR Birt,3.89
|
| 579 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,11.0,10.02,31.73,19.0,35.89,10.75,8.83,1.0,0.0,10.0,0,2.71,TS Mills,2.64
|
| 580 |
+
53.0,17.67,155.88,0.0,0.0,17.65,110.0,155.88,35.29,59.0,9.97,30.0,18.05,38.59,11.59,8.9,6.0,9.0,50.0,2,10.41,TU Deshpande,10.39
|
| 581 |
+
24.0,24.0,77.42,0.0,0.0,9.68,76.0,120.0,54.84,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,1.0,0.0,0,3.18,Tanush Kotian,3.02
|
| 582 |
+
1680.0,38.18,145.2,1.0,8.0,18.58,123.4,196.32,31.89,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,58.0,0.0,1,6.78,Tilak Varma,6.61
|
| 583 |
+
300.0,15.0,100.33,0.0,1.0,13.71,94.8,87.5,51.84,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,20.0,0.0,0,2.93,UBT Chand,2.95
|
| 584 |
+
127.0,25.4,128.28,0.0,0.0,17.17,137.5,120.0,37.37,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,6.0,0.0,0,4.0,UT Khawaja,3.89
|
| 585 |
+
208.0,10.4,103.48,0.0,0.0,12.44,110.0,114.29,47.76,163.0,8.72,27.25,18.75,41.28,11.11,7.95,21.0,48.0,147.0,2,23.55,UT Yadav,22.57
|
| 586 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,14.0,8.8,14.14,9.64,43.7,11.38,6.43,2.0,0.0,6.0,0,3.43,Umar Gul,3.34
|
| 587 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,31.0,9.53,25.32,15.94,44.13,10.75,12.92,4.0,0.0,26.0,2,5.2,Umran Malik,4.76
|
| 588 |
+
72.0,18.0,194.59,0.0,0.0,32.43,176.92,120.0,40.54,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,4.0,0.0,0,4.55,Urvil Patel,4.68
|
| 589 |
+
9022.0,38.07,133.8,8.0,66.0,16.57,123.74,202.63,33.01,5.0,8.87,74.2,50.2,21.91,16.29,6.21,0.0,267.0,26.0,1,18.31,V Kohli,13.6
|
| 590 |
+
154.0,25.67,173.03,0.0,0.0,29.21,250.0,172.34,35.96,14.0,9.22,31.71,20.64,33.56,5.69,8.74,0.0,9.0,17.0,0,7.95,V Nigam,7.92
|
| 591 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,12.0,8.82,25.0,17.0,36.76,9.0,8.47,1.0,0.0,9.0,0,2.82,V Pratap Singh,3.06
|
| 592 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,8.96,18.17,12.17,34.25,11.08,9.0,1.0,0.0,5.0,0,2.31,V Puthur,2.46
|
| 593 |
+
2728.0,27.84,156.78,2.0,16.0,25.29,146.67,235.71,37.36,6.0,10.41,39.33,22.67,33.09,12.6,18.67,0.0,104.0,15.0,1,9.11,V Sehwag,8.95
|
| 594 |
+
1233.0,26.8,129.52,0.0,7.0,14.29,91.72,172.84,32.35,12.0,8.67,28.67,19.83,33.61,7.64,9.0,0.0,63.0,22.0,1,7.77,V Shankar,7.75
|
| 595 |
+
652.0,40.75,215.18,2.0,3.0,37.29,218.4,120.0,38.28,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,16.0,0.0,1,6.81,V Suryavanshi,7.0
|
| 596 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,1.0,9.0,90.0,60.0,31.67,11.0,5.5,0.0,0.0,3.0,0,1.7,V Viyaskanth,1.63
|
| 597 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,49.0,9.5,26.96,17.02,39.93,10.25,8.81,3.0,0.0,39.0,2,6.36,VG Arora,6.35
|
| 598 |
+
50.0,12.5,70.42,0.0,0.0,5.63,110.0,74.24,59.15,46.0,9.22,33.2,21.61,41.75,12.04,8.65,1.0,12.0,50.0,2,6.88,VR Aaron,7.01
|
| 599 |
+
1497.0,29.94,137.47,1.0,12.0,18.73,130.65,182.5,38.38,3.0,10.74,48.33,27.0,20.99,11.71,9.0,0.0,57.0,9.0,1,6.29,VR Iyer,7.03
|
| 600 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,16.0,9.15,34.31,22.5,33.61,9.24,9.67,2.0,0.0,18.0,0,3.29,VRV Singh,3.12
|
| 601 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,7.84,44.67,34.17,42.93,10.29,7.8,0.0,0.0,13.0,0,2.51,VS Malik,2.41
|
| 602 |
+
282.0,17.62,106.02,0.0,1.0,14.29,100.0,50.0,44.74,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,20.0,0.0,0,3.55,VVS Laxman,3.54
|
| 603 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,22.0,9.04,23.23,15.41,37.46,9.29,11.0,2.0,0.0,17.0,2,3.83,VY Mahesh,4.04
|
| 604 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,28.0,10.15,28.46,16.82,31.63,12.0,11.33,3.0,0.0,22.0,2,4.43,Vijaykumar Vyshak,4.32
|
| 605 |
+
56.0,9.33,100.0,0.0,0.0,10.71,47.62,150.0,46.43,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,6.0,0.0,0,3.44,Vishnu Vinod,3.18
|
| 606 |
+
69.0,69.0,146.81,0.0,1.0,23.4,111.54,120.0,34.04,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,1.0,0.0,0,5.28,Vivrant Sharma,4.95
|
| 607 |
+
130.0,18.57,107.44,0.0,1.0,14.05,86.46,120.0,46.28,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,8.0,0.0,0,4.07,W Jaffer,3.5
|
| 608 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,6.0,12.38,22.0,10.67,26.56,12.86,12.48,1.0,0.0,3.0,0,1.15,W O'Rourke,1.27
|
| 609 |
+
56.0,11.2,74.67,0.0,0.0,2.67,110.0,92.86,38.67,4.0,8.17,24.5,18.0,34.72,18.5,9.0,0.0,8.0,7.0,0,2.65,WA Mota,2.69
|
| 610 |
+
65.0,6.5,81.25,0.0,0.0,6.25,78.57,83.67,46.25,40.0,8.03,24.2,18.08,43.15,8.51,7.9,5.0,13.0,33.0,2,7.53,WD Parnell,7.69
|
| 611 |
+
463.0,28.94,152.81,1.0,2.0,22.11,144.44,100.0,36.63,8.0,9.21,27.62,18.0,34.03,10.29,10.53,0.0,19.0,13.0,0,7.04,WG Jacks,7.06
|
| 612 |
+
2934.0,24.86,127.79,1.0,13.0,16.68,128.72,156.94,37.67,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,143.0,0.0,1,7.17,WP Saha,7.0
|
| 613 |
+
81.0,11.57,112.5,0.0,0.0,6.94,110.0,114.58,33.33,22.0,7.74,16.55,12.82,47.52,12.0,6.39,3.0,11.0,13.0,2,6.46,WPUJC Vaas,6.44
|
| 614 |
+
668.0,18.05,128.21,0.0,1.0,15.36,117.65,153.27,34.17,42.0,7.8,35.67,27.43,34.03,11.48,8.08,4.0,51.0,66.0,3,10.06,Washington Sundar,10.31
|
| 615 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,7.0,10.7,56.29,31.57,33.03,9.86,10.58,0.0,0.0,11.0,0,1.15,XC Bartlett,1.31
|
| 616 |
+
285.0,19.0,110.04,0.0,0.0,11.2,45.45,144.66,39.0,4.0,11.36,31.25,16.5,24.24,11.0,10.0,0.0,20.0,8.0,0,4.65,Y Nagar,4.22
|
| 617 |
+
985.0,23.45,118.39,0.0,3.0,13.7,82.64,157.87,38.94,7.0,9.39,48.29,30.86,27.78,14.0,9.57,0.0,52.0,20.0,1,5.13,Y Venugopal Rao,5.45
|
| 618 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,15.0,8.93,20.73,13.93,44.02,11.21,6.82,3.0,0.0,11.0,0,3.62,YA Abdulla,3.52
|
| 619 |
+
2472.0,35.83,151.94,2.0,18.0,24.59,156.53,225.0,39.77,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,75.0,0.0,1,9.22,YBK Jaiswal,9.17
|
| 620 |
+
3222.0,29.29,144.29,1.0,13.0,18.99,146.44,167.91,34.98,46.0,7.55,31.37,24.93,36.53,12.2,6.7,3.0,153.0,82.0,3,13.84,YK Pathan,13.89
|
| 621 |
+
37.0,6.17,43.02,0.0,0.0,0.0,110.0,52.46,62.79,237.0,8.11,22.59,16.71,34.59,9.91,7.52,25.0,16.0,179.0,2,25.69,YS Chahal,26.29
|
| 622 |
+
192.0,24.0,108.47,0.0,0.0,16.38,92.14,241.67,53.67,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,10.0,0.0,0,3.77,YV Takawale,3.93
|
| 623 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,45.0,9.59,31.38,19.62,37.26,11.32,9.45,3.0,0.0,43.0,2,6.12,Yash Dayal,6.12
|
| 624 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,28.0,10.5,27.93,15.96,34.23,11.04,9.79,4.0,0.0,21.0,2,5.13,Yash Thakur,4.69
|
| 625 |
+
47.0,11.75,72.31,0.0,0.0,7.69,48.65,110.0,56.92,0.0,10.5,50.0,40.0,30.0,11.0,9.0,0.0,4.0,0.0,0,2.8,Yashpal Singh,2.42
|
| 626 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,8.0,10.78,32.12,17.88,42.66,14.5,10.33,1.0,0.0,9.0,0,2.45,Yudhvir Singh,1.73
|
| 627 |
+
2754.0,25.27,130.21,0.0,13.0,17.35,97.41,181.02,42.08,39.0,7.53,27.97,22.28,30.96,8.69,6.6,5.0,126.0,73.0,3,12.86,Yuvraj Singh,13.35
|
| 628 |
+
117.0,7.8,83.57,0.0,0.0,9.29,0.0,104.12,52.86,119.0,7.8,24.03,18.49,42.23,9.08,6.88,12.0,27.0,99.0,2,16.58,Z Khan,16.59
|
| 629 |
+
0.0,0.0,0.0,0.0,0.0,0.0,110.0,120.0,30.0,8.0,9.59,41.75,26.12,25.84,12.0,9.0,1.0,0.0,10.0,0,1.76,Zeeshan Ansari,1.73
|
data/processed/models/shap_auction_beeswarm.png
ADDED
|
Git LFS Details
|
data/processed/models/shap_win_beeswarm.png
ADDED
|
Git LFS Details
|
data/processed/models/win_prob_dataset.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data/processed/models/win_prob_features.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
["A_form5", "B_form5", "form_diff5", "A_form10", "B_form10", "form_diff10", "A_overall_wr", "B_overall_wr", "overall_wr_diff", "A_venue_wr", "B_venue_wr", "A_venue_exp", "B_venue_exp", "venue_exp_diff", "venue_wr_diff", "venue_bat_first_wr", "A_avg_score", "B_avg_score", "score_diff", "A_avg_wickets", "B_avg_wickets", "wicket_diff", "h2h_wr_A", "h2h_n", "toss_decision_bat", "toss_correct", "A_consistency", "B_consistency", "season_stage"]
|
data/processed/models/win_prob_model.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c8b42e317eb65e395c8d14c3b7d0cbd40c12258170de558a91f1ce2248daee0a
|
| 3 |
+
size 4272468
|
data/processed/models/win_prob_model_uncalibrated.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:916df0d7d9a6a7330b5bd7e2848be2e774ce79dfc2a34e08e0645b7e0ec0a3bf
|
| 3 |
+
size 897593
|
data/processed/sanity_check.png
ADDED
|
Git LFS Details
|
data/processed/team_season_stats.csv
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
season,team,matches_played,matches_won,win_pct,toss_wins,toss_bat_choice
|
| 2 |
+
2008,Royal Challengers Bangalore,14,4,28.6,5,2
|
| 3 |
+
2008,Kings XI Punjab,15,10,66.7,8,4
|
| 4 |
+
2008,Delhi Capitals,14,7,50.0,6,2
|
| 5 |
+
2008,Mumbai Indians,14,7,50.0,8,1
|
| 6 |
+
2008,Kolkata Knight Riders,13,6,46.2,6,6
|
| 7 |
+
2008,Rajasthan Royals,16,13,81.2,11,3
|
| 8 |
+
2008,Deccan Chargers,14,2,14.3,9,4
|
| 9 |
+
2008,Chennai Super Kings,16,9,56.2,5,4
|
| 10 |
+
2009,Chennai Super Kings,14,8,57.1,7,6
|
| 11 |
+
2009,Royal Challengers Bangalore,16,9,56.2,8,5
|
| 12 |
+
2009,Delhi Capitals,15,10,66.7,9,4
|
| 13 |
+
2009,Deccan Chargers,16,9,56.2,10,5
|
| 14 |
+
2009,Kings XI Punjab,14,7,50.0,6,3
|
| 15 |
+
2009,Kolkata Knight Riders,13,3,23.1,7,4
|
| 16 |
+
2009,Mumbai Indians,13,5,38.5,6,6
|
| 17 |
+
2009,Rajasthan Royals,13,6,46.2,4,2
|
| 18 |
+
2010,Deccan Chargers,16,8,50.0,9,5
|
| 19 |
+
2010,Mumbai Indians,16,11,68.8,9,7
|
| 20 |
+
2010,Kings XI Punjab,14,4,28.6,5,3
|
| 21 |
+
2010,Kolkata Knight Riders,14,7,50.0,7,6
|
| 22 |
+
2010,Chennai Super Kings,16,9,56.2,10,7
|
| 23 |
+
2010,Rajasthan Royals,14,6,42.9,6,5
|
| 24 |
+
2010,Royal Challengers Bangalore,16,8,50.0,6,1
|
| 25 |
+
2010,Delhi Capitals,14,7,50.0,8,5
|
| 26 |
+
2011,Chennai Super Kings,16,11,68.8,9,7
|
| 27 |
+
2011,Deccan Chargers,14,6,42.9,6,3
|
| 28 |
+
2011,Kochi Tuskers Kerala,14,6,42.9,8,3
|
| 29 |
+
2011,Delhi Capitals,14,4,28.6,9,4
|
| 30 |
+
2011,Pune Warriors India,14,4,28.6,5,2
|
| 31 |
+
2011,Kolkata Knight Riders,15,8,53.3,7,1
|
| 32 |
+
2011,Rajasthan Royals,13,6,46.2,7,1
|
| 33 |
+
2011,Royal Challengers Bangalore,16,10,62.5,6,0
|
| 34 |
+
2011,Kings XI Punjab,14,7,50.0,10,3
|
| 35 |
+
2011,Mumbai Indians,16,10,62.5,6,1
|
| 36 |
+
2012,Chennai Super Kings,18,10,55.6,7,4
|
| 37 |
+
2012,Kolkata Knight Riders,17,12,70.6,7,4
|
| 38 |
+
2012,Mumbai Indians,17,10,58.8,11,3
|
| 39 |
+
2012,Rajasthan Royals,16,7,43.8,10,8
|
| 40 |
+
2012,Royal Challengers Bangalore,15,8,53.3,6,1
|
| 41 |
+
2012,Deccan Chargers,15,4,26.7,9,7
|
| 42 |
+
2012,Pune Warriors India,16,4,25.0,6,4
|
| 43 |
+
2012,Delhi Capitals,18,11,61.1,10,2
|
| 44 |
+
2012,Kings XI Punjab,16,8,50.0,8,4
|
| 45 |
+
2013,Kolkata Knight Riders,16,6,37.5,12,6
|
| 46 |
+
2013,Royal Challengers Bangalore,16,9,56.2,5,2
|
| 47 |
+
2013,Sunrisers Hyderabad,17,10,58.8,7,6
|
| 48 |
+
2013,Delhi Capitals,16,3,18.8,5,3
|
| 49 |
+
2013,Chennai Super Kings,18,12,66.7,8,5
|
| 50 |
+
2013,Pune Warriors India,16,4,25.0,9,5
|
| 51 |
+
2013,Rajasthan Royals,18,11,61.1,11,6
|
| 52 |
+
2013,Mumbai Indians,19,13,68.4,12,10
|
| 53 |
+
2013,Kings XI Punjab,16,8,50.0,7,2
|
| 54 |
+
2014,Mumbai Indians,15,7,46.7,6,3
|
| 55 |
+
2014,Delhi Capitals,14,2,14.3,4,1
|
| 56 |
+
2014,Chennai Super Kings,16,10,62.5,10,4
|
| 57 |
+
2014,Sunrisers Hyderabad,14,6,42.9,7,4
|
| 58 |
+
2014,Royal Challengers Bangalore,14,5,35.7,9,2
|
| 59 |
+
2014,Kolkata Knight Riders,16,11,68.8,9,2
|
| 60 |
+
2014,Rajasthan Royals,14,7,50.0,8,2
|
| 61 |
+
2014,Kings XI Punjab,17,12,70.6,7,1
|
| 62 |
+
2015,Kolkata Knight Riders,13,7,53.8,8,1
|
| 63 |
+
2015,Chennai Super Kings,17,10,58.8,10,7
|
| 64 |
+
2015,Kings XI Punjab,14,3,21.4,7,3
|
| 65 |
+
2015,Delhi Capitals,14,5,35.7,5,2
|
| 66 |
+
2015,Mumbai Indians,16,10,62.5,7,5
|
| 67 |
+
2015,Royal Challengers Bangalore,16,8,50.0,10,2
|
| 68 |
+
2015,Rajasthan Royals,14,7,50.0,6,1
|
| 69 |
+
2015,Sunrisers Hyderabad,14,7,50.0,6,4
|
| 70 |
+
2016,Mumbai Indians,14,7,50.0,9,2
|
| 71 |
+
2016,Kolkata Knight Riders,15,8,53.3,6,0
|
| 72 |
+
2016,Kings XI Punjab,14,4,28.6,6,2
|
| 73 |
+
2016,Royal Challengers Bangalore,16,9,56.2,6,1
|
| 74 |
+
2016,Gujarat Lions,16,9,56.2,8,0
|
| 75 |
+
2016,Delhi Capitals,14,7,50.0,8,0
|
| 76 |
+
2016,Sunrisers Hyderabad,17,11,64.7,10,3
|
| 77 |
+
2016,Rising Pune Supergiants,14,5,35.7,7,3
|
| 78 |
+
2017,Sunrisers Hyderabad,14,8,57.1,5,1
|
| 79 |
+
2017,Rising Pune Supergiants,16,10,62.5,6,0
|
| 80 |
+
2017,Gujarat Lions,14,4,28.6,7,1
|
| 81 |
+
2017,Kings XI Punjab,14,7,50.0,4,0
|
| 82 |
+
2017,Royal Challengers Bangalore,13,3,23.1,9,4
|
| 83 |
+
2017,Mumbai Indians,17,12,70.6,11,2
|
| 84 |
+
2017,Kolkata Knight Riders,16,9,56.2,9,0
|
| 85 |
+
2017,Delhi Capitals,14,6,42.9,8,3
|
| 86 |
+
2018,Mumbai Indians,14,6,42.9,5,1
|
| 87 |
+
2018,Delhi Capitals,14,5,35.7,8,3
|
| 88 |
+
2018,Royal Challengers Bangalore,14,6,42.9,7,0
|
| 89 |
+
2018,Rajasthan Royals,15,7,46.7,6,2
|
| 90 |
+
2018,Kolkata Knight Riders,16,9,56.2,9,0
|
| 91 |
+
2018,Kings XI Punjab,14,6,42.9,7,1
|
| 92 |
+
2018,Chennai Super Kings,16,11,68.8,11,1
|
| 93 |
+
2018,Sunrisers Hyderabad,17,10,58.8,7,2
|
| 94 |
+
2019,Royal Challengers Bangalore,14,5,35.7,4,0
|
| 95 |
+
2019,Sunrisers Hyderabad,15,6,40.0,4,0
|
| 96 |
+
2019,Delhi Capitals,16,10,62.5,10,2
|
| 97 |
+
2019,Kings XI Punjab,14,6,42.9,6,0
|
| 98 |
+
2019,Kolkata Knight Riders,14,6,42.9,5,0
|
| 99 |
+
2019,Mumbai Indians,16,11,68.8,8,3
|
| 100 |
+
2019,Rajasthan Royals,14,5,35.7,11,2
|
| 101 |
+
2019,Chennai Super Kings,17,10,58.8,12,3
|
| 102 |
+
2020,Mumbai Indians,16,11,68.8,8,4
|
| 103 |
+
2020,Delhi Capitals,17,9,52.9,10,5
|
| 104 |
+
2020,Royal Challengers Bangalore,15,7,46.7,6,4
|
| 105 |
+
2020,Rajasthan Royals,14,6,42.9,7,2
|
| 106 |
+
2020,Kings XI Punjab,14,6,42.9,4,1
|
| 107 |
+
2020,Sunrisers Hyderabad,16,8,50.0,11,4
|
| 108 |
+
2020,Kolkata Knight Riders,14,7,50.0,6,4
|
| 109 |
+
2020,Chennai Super Kings,14,6,42.9,8,3
|
| 110 |
+
2021,Mumbai Indians,14,7,50.0,8,3
|
| 111 |
+
2021,Chennai Super Kings,16,11,68.8,6,2
|
| 112 |
+
2021,Kolkata Knight Riders,17,9,52.9,8,1
|
| 113 |
+
2021,Punjab Kings,14,6,42.9,5,1
|
| 114 |
+
2021,Royal Challengers Bangalore,15,9,60.0,10,4
|
| 115 |
+
2021,Delhi Capitals,16,10,62.5,8,1
|
| 116 |
+
2021,Rajasthan Royals,14,5,35.7,8,1
|
| 117 |
+
2021,Sunrisers Hyderabad,14,3,21.4,7,3
|
| 118 |
+
2022,Chennai Super Kings,14,4,28.6,6,2
|
| 119 |
+
2022,Mumbai Indians,14,4,28.6,9,0
|
| 120 |
+
2022,Royal Challengers Bangalore,16,9,56.2,8,2
|
| 121 |
+
2022,Lucknow Super Giants,15,9,60.0,7,2
|
| 122 |
+
2022,Rajasthan Royals,17,10,58.8,4,2
|
| 123 |
+
2022,Kolkata Knight Riders,14,6,42.9,8,1
|
| 124 |
+
2022,Punjab Kings,14,7,50.0,4,1
|
| 125 |
+
2022,Gujarat Titans,16,12,75.0,10,4
|
| 126 |
+
2022,Delhi Capitals,14,7,50.0,8,0
|
| 127 |
+
2022,Sunrisers Hyderabad,14,6,42.9,10,1
|
| 128 |
+
2023,Chennai Super Kings,16,10,62.5,10,4
|
| 129 |
+
2023,Punjab Kings,14,6,42.9,5,1
|
| 130 |
+
2023,Lucknow Super Giants,15,8,53.3,3,0
|
| 131 |
+
2023,Rajasthan Royals,14,7,50.0,10,4
|
| 132 |
+
2023,Mumbai Indians,16,9,56.2,10,1
|
| 133 |
+
2023,Delhi Capitals,14,5,35.7,7,2
|
| 134 |
+
2023,Kolkata Knight Riders,14,6,42.9,5,1
|
| 135 |
+
2023,Sunrisers Hyderabad,14,4,28.6,7,3
|
| 136 |
+
2023,Gujarat Titans,17,11,64.7,9,2
|
| 137 |
+
2023,Royal Challengers Bangalore,14,7,50.0,8,3
|
| 138 |
+
2024,Royal Challengers Bangalore,15,7,46.7,8,2
|
| 139 |
+
2024,Delhi Capitals,14,7,50.0,7,2
|
| 140 |
+
2024,Kolkata Knight Riders,14,11,78.6,3,1
|
| 141 |
+
2024,Rajasthan Royals,15,9,60.0,11,3
|
| 142 |
+
2024,Gujarat Titans,12,5,41.7,3,0
|
| 143 |
+
2024,Punjab Kings,14,5,35.7,10,2
|
| 144 |
+
2024,Chennai Super Kings,14,7,50.0,3,0
|
| 145 |
+
2024,Sunrisers Hyderabad,16,9,56.2,7,4
|
| 146 |
+
2024,Lucknow Super Giants,14,7,50.0,9,4
|
| 147 |
+
2024,Mumbai Indians,14,4,28.6,10,1
|
| 148 |
+
2025,Kolkata Knight Riders,13,5,38.5,6,2
|
| 149 |
+
2025,Sunrisers Hyderabad,14,6,42.9,7,2
|
| 150 |
+
2025,Mumbai Indians,16,9,56.2,8,1
|
| 151 |
+
2025,Lucknow Super Giants,14,6,42.9,5,1
|
| 152 |
+
2025,Punjab Kings,18,10,55.6,13,6
|
| 153 |
+
2025,Rajasthan Royals,14,4,28.6,7,0
|
| 154 |
+
2025,Royal Challengers Bangalore,15,11,73.3,7,0
|
| 155 |
+
2025,Gujarat Titans,15,9,60.0,7,0
|
| 156 |
+
2025,Delhi Capitals,15,6,40.0,8,1
|
| 157 |
+
2025,Chennai Super Kings,14,4,28.6,6,1
|
| 158 |
+
2026,Sunrisers Hyderabad,8,5,62.5,1,0
|
| 159 |
+
2026,Kolkata Knight Riders,8,1,12.5,4,2
|
| 160 |
+
2026,Chennai Super Kings,8,3,37.5,2,0
|
| 161 |
+
2026,Gujarat Titans,8,4,50.0,3,0
|
| 162 |
+
2026,Lucknow Super Giants,8,2,25.0,5,0
|
| 163 |
+
2026,Mumbai Indians,7,2,28.6,4,0
|
| 164 |
+
2026,Rajasthan Royals,9,6,66.7,6,2
|
| 165 |
+
2026,Royal Challengers Bangalore,8,6,75.0,4,0
|
| 166 |
+
2026,Punjab Kings,8,6,75.0,4,0
|
| 167 |
+
2026,Delhi Capitals,8,3,37.5,7,1
|
data/processed/win_prob_features.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
notebooks/01_setup_and_inspection.ipynb
ADDED
|
@@ -0,0 +1,475 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "code",
|
| 5 |
+
"execution_count": 1,
|
| 6 |
+
"id": "efe72401-0379-4732-9c40-17c00ecd6b5a",
|
| 7 |
+
"metadata": {},
|
| 8 |
+
"outputs": [],
|
| 9 |
+
"source": [
|
| 10 |
+
"import pandas as pd\n",
|
| 11 |
+
"import numpy as np\n",
|
| 12 |
+
"import matplotlib.pyplot as plt\n",
|
| 13 |
+
"import seaborn as sns\n",
|
| 14 |
+
"from pathlib import Path\n",
|
| 15 |
+
"\n",
|
| 16 |
+
"RAW = Path(r\"E:\\ipl-analytics\\data\\raw\")\n",
|
| 17 |
+
"PROCESSED = Path(r\"E:\\ipl-analytics\\data\\processed\")\n",
|
| 18 |
+
"PROCESSED.mkdir(parents=True, exist_ok=True)"
|
| 19 |
+
]
|
| 20 |
+
},
|
| 21 |
+
{
|
| 22 |
+
"cell_type": "code",
|
| 23 |
+
"execution_count": 2,
|
| 24 |
+
"id": "3a243c35-ed5f-46ed-991c-c929cb4b2015",
|
| 25 |
+
"metadata": {},
|
| 26 |
+
"outputs": [
|
| 27 |
+
{
|
| 28 |
+
"name": "stdout",
|
| 29 |
+
"output_type": "stream",
|
| 30 |
+
"text": [
|
| 31 |
+
"=== matches.csv ===\n",
|
| 32 |
+
"Shape : (1208, 20)\n",
|
| 33 |
+
"Columns : ['match_id', 'season', 'city', 'date', 'match_type', 'player_of_match', 'venue', 'team1', 'team2', 'toss_winner', 'toss_decision', 'winner', 'result', 'result_margin', 'target_runs', 'target_overs', 'super_over', 'method', 'umpire1', 'umpire2']\n",
|
| 34 |
+
"\n",
|
| 35 |
+
"=== deliveries ===\n",
|
| 36 |
+
"Shape : (287271, 17)\n",
|
| 37 |
+
"Columns : ['match_id', 'inning', 'batting_team', 'bowling_team', 'over', 'ball', 'batter', 'bowler', 'non_striker', 'batsman_runs', 'extra_runs', 'total_runs', 'extras_type', 'is_wicket', 'player_dismissed', 'dismissal_kind', 'fielder']\n",
|
| 38 |
+
"\n",
|
| 39 |
+
"=== matches datatypes ===\n",
|
| 40 |
+
"match_id int64\n",
|
| 41 |
+
"season str\n",
|
| 42 |
+
"city str\n",
|
| 43 |
+
"date str\n",
|
| 44 |
+
"match_type str\n",
|
| 45 |
+
"player_of_match str\n",
|
| 46 |
+
"venue str\n",
|
| 47 |
+
"team1 str\n",
|
| 48 |
+
"team2 str\n",
|
| 49 |
+
"toss_winner str\n",
|
| 50 |
+
"toss_decision str\n",
|
| 51 |
+
"winner str\n",
|
| 52 |
+
"result str\n",
|
| 53 |
+
"result_margin float64\n",
|
| 54 |
+
"target_runs float64\n",
|
| 55 |
+
"target_overs float64\n",
|
| 56 |
+
"super_over str\n",
|
| 57 |
+
"method str\n",
|
| 58 |
+
"umpire1 str\n",
|
| 59 |
+
"umpire2 str\n",
|
| 60 |
+
"dtype: object \n",
|
| 61 |
+
"\n",
|
| 62 |
+
"=== deliveries datatypes ===\n",
|
| 63 |
+
"match_id int64\n",
|
| 64 |
+
"inning int64\n",
|
| 65 |
+
"batting_team str\n",
|
| 66 |
+
"bowling_team str\n",
|
| 67 |
+
"over int64\n",
|
| 68 |
+
"ball int64\n",
|
| 69 |
+
"batter str\n",
|
| 70 |
+
"bowler str\n",
|
| 71 |
+
"non_striker str\n",
|
| 72 |
+
"batsman_runs int64\n",
|
| 73 |
+
"extra_runs int64\n",
|
| 74 |
+
"total_runs int64\n",
|
| 75 |
+
"extras_type str\n",
|
| 76 |
+
"is_wicket int64\n",
|
| 77 |
+
"player_dismissed str\n",
|
| 78 |
+
"dismissal_kind str\n",
|
| 79 |
+
"fielder str\n",
|
| 80 |
+
"dtype: object \n",
|
| 81 |
+
"\n"
|
| 82 |
+
]
|
| 83 |
+
}
|
| 84 |
+
],
|
| 85 |
+
"source": [
|
| 86 |
+
"matches = pd.read_csv(RAW / \"matches.csv\")\n",
|
| 87 |
+
"deliveries = pd.read_csv(RAW / \"deliveries.csv\", low_memory=False)\n",
|
| 88 |
+
"\n",
|
| 89 |
+
"print(\"=== matches.csv ===\")\n",
|
| 90 |
+
"print(f\"Shape : {matches.shape}\")\n",
|
| 91 |
+
"print(f\"Columns : {list(matches.columns)}\\n\")\n",
|
| 92 |
+
"\n",
|
| 93 |
+
"print(\"=== deliveries ===\")\n",
|
| 94 |
+
"print(f\"Shape : {deliveries.shape}\")\n",
|
| 95 |
+
"print(f\"Columns : {list(deliveries.columns)}\\n\")\n",
|
| 96 |
+
"\n",
|
| 97 |
+
"print(\"=== matches datatypes ===\")\n",
|
| 98 |
+
"print(matches.dtypes, \"\\n\")\n",
|
| 99 |
+
"\n",
|
| 100 |
+
"print(\"=== deliveries datatypes ===\")\n",
|
| 101 |
+
"print(deliveries.dtypes, \"\\n\")\n",
|
| 102 |
+
"\n"
|
| 103 |
+
]
|
| 104 |
+
},
|
| 105 |
+
{
|
| 106 |
+
"cell_type": "code",
|
| 107 |
+
"execution_count": 3,
|
| 108 |
+
"id": "277b0d5b-14af-4ed7-b146-db39e4475946",
|
| 109 |
+
"metadata": {},
|
| 110 |
+
"outputs": [
|
| 111 |
+
{
|
| 112 |
+
"name": "stdout",
|
| 113 |
+
"output_type": "stream",
|
| 114 |
+
"text": [
|
| 115 |
+
"=== nulls in matches ===\n",
|
| 116 |
+
"city 51\n",
|
| 117 |
+
"match_type 113\n",
|
| 118 |
+
"player_of_match 118\n",
|
| 119 |
+
"toss_winner 113\n",
|
| 120 |
+
"toss_decision 113\n",
|
| 121 |
+
"winner 5\n",
|
| 122 |
+
"result_margin 19\n",
|
| 123 |
+
"target_runs 116\n",
|
| 124 |
+
"target_overs 116\n",
|
| 125 |
+
"super_over 113\n",
|
| 126 |
+
"method 1187\n",
|
| 127 |
+
"umpire1 113\n",
|
| 128 |
+
"umpire2 113\n",
|
| 129 |
+
"dtype: int64 \n",
|
| 130 |
+
"\n",
|
| 131 |
+
"=== nulls in deliveries ===\n",
|
| 132 |
+
"extras_type 273146\n",
|
| 133 |
+
"player_dismissed 272973\n",
|
| 134 |
+
"dismissal_kind 272973\n",
|
| 135 |
+
"fielder 276874\n",
|
| 136 |
+
"dtype: int64 \n",
|
| 137 |
+
"\n"
|
| 138 |
+
]
|
| 139 |
+
}
|
| 140 |
+
],
|
| 141 |
+
"source": [
|
| 142 |
+
"print(\"=== nulls in matches ===\")\n",
|
| 143 |
+
"null_matches = matches.isnull().sum()\n",
|
| 144 |
+
"print(null_matches[null_matches > 0], \"\\n\")\n",
|
| 145 |
+
"\n",
|
| 146 |
+
"print(\"=== nulls in deliveries ===\")\n",
|
| 147 |
+
"null_deliveries = deliveries.isnull().sum()\n",
|
| 148 |
+
"print(null_deliveries[null_deliveries > 0], \"\\n\")"
|
| 149 |
+
]
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"cell_type": "code",
|
| 153 |
+
"execution_count": 4,
|
| 154 |
+
"id": "db0f4e9c-e5f0-4f28-b42e-c0c206cdda72",
|
| 155 |
+
"metadata": {},
|
| 156 |
+
"outputs": [
|
| 157 |
+
{
|
| 158 |
+
"name": "stdout",
|
| 159 |
+
"output_type": "stream",
|
| 160 |
+
"text": [
|
| 161 |
+
"=== matches.describe() ===\n",
|
| 162 |
+
" count unique top freq mean \\\n",
|
| 163 |
+
"match_id 1208.0 NaN NaN NaN 953614.823675 \n",
|
| 164 |
+
"season 1208 19 2013 76 NaN \n",
|
| 165 |
+
"city 1157 37 Mumbai 184 NaN \n",
|
| 166 |
+
"date 1208 916 2008-04-19 2 NaN \n",
|
| 167 |
+
"match_type 1095 8 League 1029 NaN \n",
|
| 168 |
+
"player_of_match 1090 291 AB de Villiers 25 NaN \n",
|
| 169 |
+
"venue 1208 59 Eden Gardens 77 NaN \n",
|
| 170 |
+
"team1 1208 19 Chennai Super Kings 140 NaN \n",
|
| 171 |
+
"team2 1208 19 Mumbai Indians 149 NaN \n",
|
| 172 |
+
"toss_winner 1095 19 Mumbai Indians 143 NaN \n",
|
| 173 |
+
"toss_decision 1095 2 field 704 NaN \n",
|
| 174 |
+
"winner 1203 20 Mumbai Indians 155 NaN \n",
|
| 175 |
+
"result 1208 5 wickets 637 NaN \n",
|
| 176 |
+
"result_margin 1189.0 NaN NaN NaN 17.369218 \n",
|
| 177 |
+
"target_runs 1092.0 NaN NaN NaN 165.684066 \n",
|
| 178 |
+
"target_overs 1092.0 NaN NaN NaN 19.759341 \n",
|
| 179 |
+
"super_over 1095 2 N 1081 NaN \n",
|
| 180 |
+
"method 21 1 D/L 21 NaN \n",
|
| 181 |
+
"umpire1 1095 62 AK Chaudhary 115 NaN \n",
|
| 182 |
+
"umpire2 1095 62 S Ravi 83 NaN \n",
|
| 183 |
+
"\n",
|
| 184 |
+
" std min 25% 50% 75% \\\n",
|
| 185 |
+
"match_id 381648.321465 335982.0 548361.75 1082617.5 1304076.25 \n",
|
| 186 |
+
"season NaN NaN NaN NaN NaN \n",
|
| 187 |
+
"city NaN NaN NaN NaN NaN \n",
|
| 188 |
+
"date NaN NaN NaN NaN NaN \n",
|
| 189 |
+
"match_type NaN NaN NaN NaN NaN \n",
|
| 190 |
+
"player_of_match NaN NaN NaN NaN NaN \n",
|
| 191 |
+
"venue NaN NaN NaN NaN NaN \n",
|
| 192 |
+
"team1 NaN NaN NaN NaN NaN \n",
|
| 193 |
+
"team2 NaN NaN NaN NaN NaN \n",
|
| 194 |
+
"toss_winner NaN NaN NaN NaN NaN \n",
|
| 195 |
+
"toss_decision NaN NaN NaN NaN NaN \n",
|
| 196 |
+
"winner NaN NaN NaN NaN NaN \n",
|
| 197 |
+
"result NaN NaN NaN NaN NaN \n",
|
| 198 |
+
"result_margin 22.037405 0.0 6.0 8.0 20.0 \n",
|
| 199 |
+
"target_runs 33.427048 43.0 146.0 166.0 187.0 \n",
|
| 200 |
+
"target_overs 1.581108 5.0 20.0 20.0 20.0 \n",
|
| 201 |
+
"super_over NaN NaN NaN NaN NaN \n",
|
| 202 |
+
"method NaN NaN NaN NaN NaN \n",
|
| 203 |
+
"umpire1 NaN NaN NaN NaN NaN \n",
|
| 204 |
+
"umpire2 NaN NaN NaN NaN NaN \n",
|
| 205 |
+
"\n",
|
| 206 |
+
" max \n",
|
| 207 |
+
"match_id 1426425.0 \n",
|
| 208 |
+
"season NaN \n",
|
| 209 |
+
"city NaN \n",
|
| 210 |
+
"date NaN \n",
|
| 211 |
+
"match_type NaN \n",
|
| 212 |
+
"player_of_match NaN \n",
|
| 213 |
+
"venue NaN \n",
|
| 214 |
+
"team1 NaN \n",
|
| 215 |
+
"team2 NaN \n",
|
| 216 |
+
"toss_winner NaN \n",
|
| 217 |
+
"toss_decision NaN \n",
|
| 218 |
+
"winner NaN \n",
|
| 219 |
+
"result NaN \n",
|
| 220 |
+
"result_margin 146.0 \n",
|
| 221 |
+
"target_runs 288.0 \n",
|
| 222 |
+
"target_overs 20.0 \n",
|
| 223 |
+
"super_over NaN \n",
|
| 224 |
+
"method NaN \n",
|
| 225 |
+
"umpire1 NaN \n",
|
| 226 |
+
"umpire2 NaN \n",
|
| 227 |
+
"\n",
|
| 228 |
+
"=== deliveries.describe() ===\n",
|
| 229 |
+
" count mean std min 25% \\\n",
|
| 230 |
+
"match_id 287271.0 954701.438732 381397.139578 335982.0 548363.0 \n",
|
| 231 |
+
"inning 287271.0 1.482764 0.502517 1.0 1.0 \n",
|
| 232 |
+
"over 287271.0 9.282232 5.686963 0.0 4.0 \n",
|
| 233 |
+
"ball 287271.0 3.628121 1.818273 1.0 2.0 \n",
|
| 234 |
+
"batsman_runs 287271.0 1.283199 1.657209 0.0 0.0 \n",
|
| 235 |
+
"extra_runs 287271.0 0.068214 0.342788 0.0 0.0 \n",
|
| 236 |
+
"total_runs 287271.0 1.351414 1.643276 0.0 0.0 \n",
|
| 237 |
+
"is_wicket 287271.0 0.049772 0.217474 0.0 0.0 \n",
|
| 238 |
+
"\n",
|
| 239 |
+
" 50% 75% max \n",
|
| 240 |
+
"match_id 1082621.0 1304077.0 1426425.0 \n",
|
| 241 |
+
"inning 1.0 2.0 6.0 \n",
|
| 242 |
+
"over 9.0 14.0 20.0 \n",
|
| 243 |
+
"ball 4.0 5.0 11.0 \n",
|
| 244 |
+
"batsman_runs 1.0 1.0 6.0 \n",
|
| 245 |
+
"extra_runs 0.0 0.0 7.0 \n",
|
| 246 |
+
"total_runs 1.0 1.0 7.0 \n",
|
| 247 |
+
"is_wicket 0.0 0.0 1.0 \n",
|
| 248 |
+
"\n"
|
| 249 |
+
]
|
| 250 |
+
}
|
| 251 |
+
],
|
| 252 |
+
"source": [
|
| 253 |
+
"print(\"=== matches.describe() ===\")\n",
|
| 254 |
+
"print(matches.describe(include=\"all\").T, \"\\n\")\n",
|
| 255 |
+
"\n",
|
| 256 |
+
"print(\"=== deliveries.describe() ===\")\n",
|
| 257 |
+
"print(deliveries.describe().T, \"\\n\")"
|
| 258 |
+
]
|
| 259 |
+
},
|
| 260 |
+
{
|
| 261 |
+
"cell_type": "code",
|
| 262 |
+
"execution_count": 5,
|
| 263 |
+
"id": "42030b94-d9a6-42b2-8488-674edd4fb917",
|
| 264 |
+
"metadata": {},
|
| 265 |
+
"outputs": [
|
| 266 |
+
{
|
| 267 |
+
"name": "stdout",
|
| 268 |
+
"output_type": "stream",
|
| 269 |
+
"text": [
|
| 270 |
+
"=== unique teams in matches ===\n",
|
| 271 |
+
"['Chennai Super Kings', 'Deccan Chargers', 'Delhi Capitals', 'Delhi Daredevils', 'Gujarat Lions', 'Gujarat Titans', 'Kings XI Punjab', 'Kochi Tuskers Kerala', 'Kolkata Knight Riders', 'Lucknow Super Giants', 'Mumbai Indians', 'Pune Warriors', 'Punjab Kings', 'Rajasthan Royals', 'Rising Pune Supergiant', 'Rising Pune Supergiants', 'Royal Challengers Bangalore', 'Royal Challengers Bengaluru', 'Sunrisers Hyderabad'] \n",
|
| 272 |
+
"\n",
|
| 273 |
+
"=== seasons in a dataset ===\n",
|
| 274 |
+
"['2007/08', '2009', '2009/10', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020/21', '2021', '2022', '2023', '2024', '2025', '2026'] \n",
|
| 275 |
+
"\n",
|
| 276 |
+
"=== Venues (top 15 by match count ===\n",
|
| 277 |
+
"venue\n",
|
| 278 |
+
"Eden Gardens 77\n",
|
| 279 |
+
"Wankhede Stadium 73\n",
|
| 280 |
+
"M Chinnaswamy Stadium 65\n",
|
| 281 |
+
"Feroz Shah Kotla 60\n",
|
| 282 |
+
"Wankhede Stadium, Mumbai 56\n",
|
| 283 |
+
"Rajiv Gandhi International Stadium, Uppal 49\n",
|
| 284 |
+
"MA Chidambaram Stadium, Chepauk 48\n",
|
| 285 |
+
"Sawai Mansingh Stadium 47\n",
|
| 286 |
+
"Dubai International Cricket Stadium 46\n",
|
| 287 |
+
"MA Chidambaram Stadium, Chepauk, Chennai 38\n",
|
| 288 |
+
"Narendra Modi Stadium, Ahmedabad 36\n",
|
| 289 |
+
"Punjab Cricket Association Stadium, Mohali 35\n",
|
| 290 |
+
"Sheikh Zayed Stadium 29\n",
|
| 291 |
+
"Sharjah Cricket Stadium 28\n",
|
| 292 |
+
"Arun Jaitley Stadium, Delhi 27\n",
|
| 293 |
+
"Name: count, dtype: int64 \n",
|
| 294 |
+
"\n",
|
| 295 |
+
"=== Toss Descision ===\n",
|
| 296 |
+
"toss_decision\n",
|
| 297 |
+
"field 704\n",
|
| 298 |
+
"bat 391\n",
|
| 299 |
+
"Name: count, dtype: int64 \n",
|
| 300 |
+
"\n"
|
| 301 |
+
]
|
| 302 |
+
}
|
| 303 |
+
],
|
| 304 |
+
"source": [
|
| 305 |
+
"print(\"=== unique teams in matches ===\")\n",
|
| 306 |
+
"all_teams = pd.concat([matches[\"team1\"], matches[\"team2\"]]).unique()\n",
|
| 307 |
+
"print(sorted(all_teams), \"\\n\")\n",
|
| 308 |
+
"\n",
|
| 309 |
+
"print(\"=== seasons in a dataset ===\")\n",
|
| 310 |
+
"print(sorted(matches[\"season\"].unique()), \"\\n\")\n",
|
| 311 |
+
"\n",
|
| 312 |
+
"print(\"=== Venues (top 15 by match count ===\")\n",
|
| 313 |
+
"print(matches[\"venue\"].value_counts().head(15), \"\\n\")\n",
|
| 314 |
+
"\n",
|
| 315 |
+
"print(\"=== Toss Descision ===\")\n",
|
| 316 |
+
"print(matches[\"toss_decision\"].value_counts(), \"\\n\")"
|
| 317 |
+
]
|
| 318 |
+
},
|
| 319 |
+
{
|
| 320 |
+
"cell_type": "code",
|
| 321 |
+
"execution_count": 6,
|
| 322 |
+
"id": "407af91d-cf0e-4b7a-bc1b-0b29aa72904c",
|
| 323 |
+
"metadata": {},
|
| 324 |
+
"outputs": [
|
| 325 |
+
{
|
| 326 |
+
"data": {
|
| 327 |
+
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAGGCAYAAACqvTJ0AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdZtJREFUeJzt3QncTOX///GPnazZKbelyFYpe2QvIXsLKes3JUuoSIVosVSobCmRb2lRaCcpKtklaaFFiFCJ25J9/o/39f/NfGdu9y3Luc99z9yv5+NxuOecM3POuc7MnGs+57o+V7pAIBAwAAAAAAAAwEfp/dwYAAAAAAAAIASlAAAAAAAA4DuCUgAAAAAAAPAdQSkAAAAAAAD4jqAUAAAAAAAAfEdQCgAAAAAAAL4jKAUAAAAAAADfEZQCAAAAAACA7whKAQAAAAAAwHcEpQB4avr06ZYuXTpbtWoVJQsAQAx6+OGH3bXeD/Xq1XNT0KJFi9y233zzTV+237lzZytRooSlZvv377f//Oc/VrhwYVc2ffv2tdQsGsoU3vv111/d+/PJJ5+keBGBoBQQpUEfTV988cVJywOBgBUrVswtv/76689qG48//rjNnTvXg72FvPvuu1a3bl0rWLCgnXfeeVaqVCm76aabbN68eRQQACDV1Cs0Zc2a1YoWLWqNGze2Z555xvbt2+fJdrZv3+6CWWvXrrXUJjXv2+nW23Qee/ToYf/973/ttttuS7Y63nfffefKSgEGpD0zZ860cePGpfRuIMYQlAKilCqNujAktHjxYvvtt98sS5YsZ/3aBKW8o7tBLVq0cBX9QYMG2dixY61t27b2448/2muvvebhlgAAOHvDhw93AY1JkyZZ79693Ty1uLn00ktt3bp1Ees+9NBD9s8//5xx4GfYsGFnHPj56KOP3JScTrVvzz//vG3YsMFSs08++cRq1KhhQ4cOtVtvvdUqV66crEEplRVBqbSJoBSSQ8ZkeVUAya5p06Y2a9YsdxczY8aMERcLVUb+/PNPzoIP1DLt0KFDli1btpOWHTt2zB555BG75pprEq1Q79q1i3MEAEgVmjRpYlWqVAk91o0UBTvU6lo3V77//vvQtU71jvC6R3I4ePCga12cOXNmS0mZMmVK0e2fDtUnypcvb2m5zhXrdNz6LKRPT5sSxB7e1UCUat++vf3111+2YMGC0LwjR464HAu33HJLkq12rrrqKsuXL5+7oCt4lTAng1r0HDhwwF566aVQU371/Q/atm2bdevWzTXtV2uskiVLuubi2na4w4cPW//+/a1AgQKWPXt2a926tf3xxx8n7dOHH35oV199tVsnZ86c1qxZM/v2228j1tmxY4d16dLFLrzwQrfNIkWKWMuWLf/1Lp32O0eOHPbLL7+4bgjahvZbd4NVsQl34sQJ1xy5QoUKrhVaoUKF7I477rC///47Yj3lQFAFff78+a7yrnJ87rnnEt2+AoPx8fFWq1atRJerO1/CMtNdzosvvtgdp7phDhgwwM0PN23aNGvQoIF7vtZTRVR3thNSXi8dd/78+d1+6lx17do1Yh2d63vuucdtS691ySWXuPdJwvLR+6BXr17u7mrFihXduioruiACQOzStWbw4MG2efNme/nll0+ZU0r1kdq1a1uePHnctVfXkwceeCCUB6pq1arub13Pg/ULdTkT5YzStWX16tVWp04dF4wKPjdhTqmg48ePu3WUR0nXdwXOtm7detI1O7wOExT+mv+2b4nlP/Lr2qlgk+pcqpOobnL55Ze7+lnC/FqbNm2y999/P7TvSdWP/q2O99VXX7ngZK5cudw5bNiwoS1btiy0XGVy4403ur/r168feg3th7z99tuuHhesI1500UXu5pzO1dlIqs4VzE0UPEcJj1Hvz4Tv1Z9++skdq96fuXPndudagc/TfQ+fSvA8v/LKK+45OleqY3/22Wcnrat6tOpiOqfB98OLL74YsU7wvKpFvVolXnDBBe4zoTrlv+VqmjBhgksTofWvvfZa95nQ+1LnQfVolaHq0Lt37454jdM5d/rM6H2m74PguQ//bChwpvIuU6aMKwPV19u0aWM///zzSfs8ZcoUtw1tS5+/lStX/ms5I3bRUgqIUroI1KxZ01599VVXgQgGePbu3Wvt2rVzLagSevrpp12lrUOHDi6IpIudKhfvvfeeuxCJmu4rWWa1atWse/fubp4uGsHm7Zq/Z88et6xs2bLu4qrAli7s4Xcz1fT//PPPd0EWXSwV8NEF+/XXXw+to2116tTJBU5GjRrlXkPBFVUIVDEKXujU3U2BKr2m5qmSporDli1b/jVRpi6m1113nWvWPnr0aFcR1D6pFZOCU0EKQKlyo0pKnz59XAVv/Pjxbj+WLFkScadUzfgV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I15j9+7d1qFDB8uVK5flyZPHunXrZvv370+BowEAAPgfglIAAACp2IEDB+zyyy+3CRMmnLTs4MGDtmbNGhs8eLD7f/bs2bZhwwZr0aJFxHoKSH377be2YMECe++991ygq3v37j4eBQAAwMkyJjIPAAAAqUSTJk3clJjcuXO7QFO48ePHW7Vq1WzLli0WFxdn33//vc2bN89WrlxpVapUces8++yz1rRpU3vyySdd6yoAAICUQEspAACAGLJ3717XzU/d9GTp0qXu72BASho1amTp06e35cuXp+CeAgCAtI6WUgAAADHi0KFDLsdU+/btXf4o2bFjhxUsWDBivYwZM1revHndsqQcPnzYTUHx8fHJuOcAACAtoqUUAABADFDS85tuuskCgYBNmjTpnF9vxIgRrntgcCpWrJgn+wkAABBEUAoAACBGAlKbN292OaaCraSkcOHCtmvXroj1jx075kbk07KkDBo0yHUFDE5bt25N1mMAAABpD933AAAAYiAg9eOPP9qnn35q+fLli1hes2ZN27Nnj61evdoqV67s5n3yySd24sQJq169epKvmyVLFjcBAACkmpZSDRo0cBWbhJRnQMsAAADgnf3799vatWvdJJs2bXJ/a3Q9BaRuuOEGW7Vqlb3yyit2/PhxlydK05EjR9z65cqVs+uuu85uv/12W7FihS1ZssR69epl7dq1Y+Q9AAAQXS2lFi1aFKrkJEys+fnnn3u1XwAAADBzAaf69euHyqJ///7u/06dOtnDDz9s77zzjntcqVKliPJSq6l69eq5vxWwUiCqYcOGbtS9tm3b2jPPPEP5AoCZxU0bcE7lsKXLaMoRSO6g1Lp160J/f/fddxGjteiu3Lx58+yCCy442/0AAABAIhRYUvLypJxqWZBG2ps5cyblCwAAojMopbtv6dKlc1Ni3fSyZctmzz77rNf7BwAAAAAAgLQclFL+At2JK1WqlMtHUKBAgdCyzJkzW8GCBS1DhgzJtZ8AAAAAAABIi4nOixcvbiVKlHAjtVSpUsU9Dk5FihQ5q4CU8iAEW18Fp7Jly0bkqerZs6cbRSZHjhwu/8HOnTvPeDsAAAAAAACI8kTnEhxyeNeuXS5IFW7IkCFn9FoVKlSwjz/++H87lPF/u9SvXz97//33bdasWZY7d26XoLNNmzZu1BgAAAAAAACkoaDU888/bz16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8uTJE7G+KnQ7duxI8vWU22rYsGFnvB8AAABeCI5MHKR8mcEbegAAADiHROeJyZs371k3Q1c+KgWgli9fbj169LBOnTrZd999d9b7MmjQINu7d29o2rp161m/FgAAgNdBKgAAAJxhS6muXbue1npK6Hkm1BpKLa5ESUBXrlxpTz/9tGvqfuTIEduzZ09EaymNvle4cOEkXy9LlixuAgAASAm6UZfwZh05pAAAAM4hKDV9+nQ3wt4VV1yRrHf8Tpw44XJCKUCVKVMmW7hwobVt29Yt0+h+W7Zscd39AAAAUiPVkzp37hy6SaYUBXfeeedJo+/Nnj07hfYQAAAgyoJS6lr36quv2qZNm6xLly526623um5750Jd7Zo0aeKSl+/bt8+NtLdo0SKbP3++5c6d27p162b9+/d328mVK5f17t3bBaQYeQ8AAKRWSkUQTnUmAAAAnENQasKECTZmzBh3V09d9BRQatasmQscXXvttWfVLH3Xrl3WsWNHN0KNglCXXXaZC0hdc801bvnYsWMtffr0rqWUWk8pyfrEiRPPeDsAAAB+mTZtGoUNAADg9eh7aobevn17N23evNl16bvrrrvs2LFj9u2337rR887E1KlTT7k8a9asLhimCQAAAInbtm2bDRw40I30d/DgQZevU8GxKlWqhLoUDh061J5//nmXr7NWrVo2adIkK126NEUKxIC4aQNSehcAwN/R99SCSa2jVMk5fvz42b4MAAAAzsHff//tgkzKxamglEYxfuqpp+z8888PrTN69Gh75plnbPLkyW7EY+W3Ugt05bsCAACIipZS6kIX7L73xRdf2PXXX2/jx4+36667zgWpAAAA4K9Ro0ZZsWLFIroNlixZMvS3biCOGzfOHnroIWvZsqWbN2PGDCtUqJDNnTvX2rVrxykDAAAp4rQjSeqmV6RIERs5cqQLRm3dutVmzZplTZs2JSAFAACQQt555x3XTe/GG2+0ggULupGS1U0vSIPU7Nixwxo1ahSap1ye1atXt6VLl57yZmR8fHzEBAAAkCItpdTcW6PklSpVyhYvXuymxDC8MQAAgH9++eUXlx9KIxY/8MADtnLlSuvTp49lzpzZjQSogJSoZVQ4PQ4uS8yIESNs2LBhyb7/AAAg7TrtoJRGyTubEfYAAACQfE6cOOFaSj3++OPusVpKrV+/3t1QVFDqbGmk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JZcETpw4EZqn/LJqfRTsSne63ffUMkldpc+kpZR+aq5du/Zf9zOxllL6jRKk/S9YsGBg0qRJ7nHv3r0DDRo0iDguANGLoFQg4JKg5suXzzUrbdy4ceDNN98MNWv12qFDhwJ33nmna0KrH3FqEqtJf2tejx493DpemjFjhktCfM899wQefPBB19T1/vvvd1/sujDkz58/sHHjxqg8Pj+3F8vH5vf2YvnY/N5eSnynTJ8+PZAxY8ZAu3btXKXzgw8+cJP+bt++fSBTpkzue8cLsVyWbC96zx0ApDaJBXtat24d6Ny5c8Q8BYkULArelE4qKDV+/Hg3KJJ+J2TPnt1d29UN8EyCUvr+TRg4Ot2g1OjRoyPWueyyy9wATbJ69epA3rx5A6VLl3YBqvnz55+ybACkbun0j6Vx6sqmIc41lPSLL75oH374oZ1//vnWsWNH1/2kXLlynm9T3QxWr14dMWx15cqVLVeuXJ5vS/uvJro333yze7xq1Spr3bq1bdmyxdKlS2ft2rWzI0eO2OzZs6Py+PzeXiwfm9/bi+Vj83t7fm6rTJkydvfdd1vPnj0TXT5x4kQbO3as/fjjj55tM1bLku1Fd1kCQGpRr149q1Spko0bNy40r02bNpY7d26bNm1aaN7XX3/t1tu8ebPr+pbY81577TXr0qWL60JXs2ZNy5kzpz3xxBO2fPlyW7t2rVtHXQL37Nljc+fOTXR/pk+fbn379nXrhGvQoIFdeumlrutgULNmzVy3QT1HSpQo4Z6rKUj72KpVK/ebJvh9r99sH3/8setm2KhRI9fND0D0IadUsCAyZnRfdJp+//1396WoL3D9sKpevbr95z//sa5du3pW8Kog169f3/ygi46OIahKlSquwq7jLFq0qPXv398aN27s6Tb9PD6/txfLx+b39mL52Pzenp/bUkBblb+kKD/dPffc4+k2Y7Us2V50lyUApBaZM2d2uWMT3ph+66231DPG3YiWJUuWuCCTckYl9Tytc9VVV9ldd90Vmvfzzz97sp8KPuk3SJC2vX79+jP+7tb3vW64a7rhhhvsuuuus927d1vevHk92U8A/knv47ZSreCXdJCS+A0aNMgl/lu4cKFddNFF1qdPH8+2988//9gXX3xh33333UnLDh065BIRekl3G9Q6KmjNmjWudVihQoXcY315Hz16NGqPz8/txfKx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",
|
| 328 |
+
"text/plain": [
|
| 329 |
+
"<Figure size 1200x400 with 2 Axes>"
|
| 330 |
+
]
|
| 331 |
+
},
|
| 332 |
+
"metadata": {},
|
| 333 |
+
"output_type": "display_data"
|
| 334 |
+
},
|
| 335 |
+
{
|
| 336 |
+
"name": "stdout",
|
| 337 |
+
"output_type": "stream",
|
| 338 |
+
"text": [
|
| 339 |
+
"Sanity check chart saved\n"
|
| 340 |
+
]
|
| 341 |
+
}
|
| 342 |
+
],
|
| 343 |
+
"source": [
|
| 344 |
+
"fig, axes = plt.subplots(1, 2, figsize=(12, 4))\n",
|
| 345 |
+
"\n",
|
| 346 |
+
"matches[\"season\"].value_counts().sort_index().plot(\n",
|
| 347 |
+
" kind=\"bar\", ax=axes[0], color=\"#7F77DD\"\n",
|
| 348 |
+
")\n",
|
| 349 |
+
"axes[0].set_title(\"Matches per Season\")\n",
|
| 350 |
+
"axes[0].set_xlabel(\"Season\")\n",
|
| 351 |
+
"axes[0].set_ylabel(\"Match Count\")\n",
|
| 352 |
+
"\n",
|
| 353 |
+
"deliveries.groupby(\"match_id\")[\"total_runs\"].sum().plot(\n",
|
| 354 |
+
" kind=\"hist\", bins=30, ax=axes[1], color=\"#1D9E75\"\n",
|
| 355 |
+
")\n",
|
| 356 |
+
"axes[1].set_title(\"Distribution of total runs per match\")\n",
|
| 357 |
+
"axes[1].set_xlabel(\"total runs\")\n",
|
| 358 |
+
"\n",
|
| 359 |
+
"plt.tight_layout()\n",
|
| 360 |
+
"plt.savefig(r\"E:\\ipl-analytics\\data\\processed\\sanity_check.png\", dpi=120)\n",
|
| 361 |
+
"plt.show()\n",
|
| 362 |
+
"print(\"Sanity check chart saved\")"
|
| 363 |
+
]
|
| 364 |
+
},
|
| 365 |
+
{
|
| 366 |
+
"cell_type": "code",
|
| 367 |
+
"execution_count": 9,
|
| 368 |
+
"id": "5274f225-3cea-43c7-8a1e-f2b2ce7661a2",
|
| 369 |
+
"metadata": {},
|
| 370 |
+
"outputs": [
|
| 371 |
+
{
|
| 372 |
+
"name": "stdout",
|
| 373 |
+
"output_type": "stream",
|
| 374 |
+
"text": [
|
| 375 |
+
"=== Merged Shappe\n",
|
| 376 |
+
"(287271, 21)\n",
|
| 377 |
+
"\n",
|
| 378 |
+
"=== Merge null check (winner column) ===\n",
|
| 379 |
+
"490 unmatched rows\n",
|
| 380 |
+
"\n",
|
| 381 |
+
"=== Sample merged rows ===\n",
|
| 382 |
+
" match_id inning batting_team bowling_team over ball batter bowler non_striker batsman_runs extra_runs total_runs extras_type is_wicket player_dismissed dismissal_kind fielder season team1 team2 winner\n",
|
| 383 |
+
"0 335982 1 Kolkata Knight Riders Royal Challengers Bangalore 0 1 SC Ganguly P Kumar BB McCullum 0 1 1 legbyes 0 NaN NaN NaN 2007/08 Royal Challengers Bangalore Kolkata Knight Riders Kolkata Knight Riders\n",
|
| 384 |
+
"1 335982 1 Kolkata Knight Riders Royal Challengers Bangalore 0 2 BB McCullum P Kumar SC Ganguly 0 0 0 NaN 0 NaN NaN NaN 2007/08 Royal Challengers Bangalore Kolkata Knight Riders Kolkata Knight Riders\n",
|
| 385 |
+
"2 335982 1 Kolkata Knight Riders Royal Challengers Bangalore 0 3 BB McCullum P Kumar SC Ganguly 0 1 1 wides 0 NaN NaN NaN 2007/08 Royal Challengers Bangalore Kolkata Knight Riders Kolkata Knight Riders\n"
|
| 386 |
+
]
|
| 387 |
+
}
|
| 388 |
+
],
|
| 389 |
+
"source": [
|
| 390 |
+
"merged = deliveries.merge(\n",
|
| 391 |
+
" matches[[\"match_id\", \"season\", \"team1\", \"team2\", \"winner\"]],\n",
|
| 392 |
+
" left_on=\"match_id\",\n",
|
| 393 |
+
" right_on=\"match_id\",\n",
|
| 394 |
+
" how=\"left\"\n",
|
| 395 |
+
")\n",
|
| 396 |
+
"\n",
|
| 397 |
+
"print(\"=== Merged Shappe\")\n",
|
| 398 |
+
"print(merged.shape)\n",
|
| 399 |
+
"\n",
|
| 400 |
+
"print(\"\\n=== Merge null check (winner column) ===\")\n",
|
| 401 |
+
"print(merged[\"winner\"].isnull().sum(), \"unmatched rows\")\n",
|
| 402 |
+
"\n",
|
| 403 |
+
"print(\"\\n=== Sample merged rows ===\")\n",
|
| 404 |
+
"print(merged.head(3).to_string())"
|
| 405 |
+
]
|
| 406 |
+
},
|
| 407 |
+
{
|
| 408 |
+
"cell_type": "code",
|
| 409 |
+
"execution_count": 11,
|
| 410 |
+
"id": "afe201b0-7494-4a78-9c8c-c0a28174be68",
|
| 411 |
+
"metadata": {},
|
| 412 |
+
"outputs": [
|
| 413 |
+
{
|
| 414 |
+
"name": "stdout",
|
| 415 |
+
"output_type": "stream",
|
| 416 |
+
"text": [
|
| 417 |
+
"\n",
|
| 418 |
+
"=== Anomaly Report ===\n",
|
| 419 |
+
" duplicate_match_ids : 0\n",
|
| 420 |
+
" matches_without_winner : 5\n",
|
| 421 |
+
" deliveries_without_batsman : 0\n",
|
| 422 |
+
" total_seasons : 19\n",
|
| 423 |
+
" total_teams_ever : 19\n",
|
| 424 |
+
" total_matches : 1208\n",
|
| 425 |
+
" total_deliveries : 287271\n"
|
| 426 |
+
]
|
| 427 |
+
}
|
| 428 |
+
],
|
| 429 |
+
"source": [
|
| 430 |
+
"anomalies = {\n",
|
| 431 |
+
" \"duplicate_match_ids\": int(matches[\"match_id\"].duplicated().sum()),\n",
|
| 432 |
+
" \"matches_without_winner\": int(matches[\"winner\"].isnull().sum()),\n",
|
| 433 |
+
" \"deliveries_without_batsman\": int(deliveries[\"batter\"].isnull().sum()),\n",
|
| 434 |
+
" \"total_seasons\": int(matches[\"season\"].nunique()),\n",
|
| 435 |
+
" \"total_teams_ever\": len(all_teams),\n",
|
| 436 |
+
" \"total_matches\": len(matches),\n",
|
| 437 |
+
" \"total_deliveries\": len(deliveries),\n",
|
| 438 |
+
"}\n",
|
| 439 |
+
"\n",
|
| 440 |
+
"print(\"\\n=== Anomaly Report ===\")\n",
|
| 441 |
+
"for k, v in anomalies.items():\n",
|
| 442 |
+
" print(f\" {k:<35}: {v}\")"
|
| 443 |
+
]
|
| 444 |
+
},
|
| 445 |
+
{
|
| 446 |
+
"cell_type": "code",
|
| 447 |
+
"execution_count": null,
|
| 448 |
+
"id": "40da6ce3-2a15-42b9-82e4-7fecc8d6168b",
|
| 449 |
+
"metadata": {},
|
| 450 |
+
"outputs": [],
|
| 451 |
+
"source": []
|
| 452 |
+
}
|
| 453 |
+
],
|
| 454 |
+
"metadata": {
|
| 455 |
+
"kernelspec": {
|
| 456 |
+
"display_name": "Python 3 (ipykernel)",
|
| 457 |
+
"language": "python",
|
| 458 |
+
"name": "python3"
|
| 459 |
+
},
|
| 460 |
+
"language_info": {
|
| 461 |
+
"codemirror_mode": {
|
| 462 |
+
"name": "ipython",
|
| 463 |
+
"version": 3
|
| 464 |
+
},
|
| 465 |
+
"file_extension": ".py",
|
| 466 |
+
"mimetype": "text/x-python",
|
| 467 |
+
"name": "python",
|
| 468 |
+
"nbconvert_exporter": "python",
|
| 469 |
+
"pygments_lexer": "ipython3",
|
| 470 |
+
"version": "3.13.5"
|
| 471 |
+
}
|
| 472 |
+
},
|
| 473 |
+
"nbformat": 4,
|
| 474 |
+
"nbformat_minor": 5
|
| 475 |
+
}
|
notebooks/02_cleaning_and_features.ipynb
ADDED
|
@@ -0,0 +1,503 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "code",
|
| 5 |
+
"execution_count": 1,
|
| 6 |
+
"id": "812251b0-5245-4688-8c4d-c7371abe6af6",
|
| 7 |
+
"metadata": {},
|
| 8 |
+
"outputs": [],
|
| 9 |
+
"source": [
|
| 10 |
+
"import sys\n",
|
| 11 |
+
"sys.path.append(\"..\")\n",
|
| 12 |
+
"\n",
|
| 13 |
+
"import pandas as pd\n",
|
| 14 |
+
"from pathlib import Path\n",
|
| 15 |
+
"from src.clean import clean_matches, clean_deliveries\n",
|
| 16 |
+
"from src.features import (\n",
|
| 17 |
+
" build_batting_features,\n",
|
| 18 |
+
" build_bowling_features,\n",
|
| 19 |
+
" build_match_summary,\n",
|
| 20 |
+
" build_team_season_stats,\n",
|
| 21 |
+
")\n",
|
| 22 |
+
"RAW = Path(r\"E:\\ipl-analytics\\data\\raw\")\n",
|
| 23 |
+
"PROCESSED = Path(r\"E:\\ipl-analytics\\data\\processed\")"
|
| 24 |
+
]
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"cell_type": "code",
|
| 28 |
+
"execution_count": 2,
|
| 29 |
+
"id": "9c4a93ae-ed2a-4d10-92b2-77b736e4617a",
|
| 30 |
+
"metadata": {},
|
| 31 |
+
"outputs": [
|
| 32 |
+
{
|
| 33 |
+
"name": "stdout",
|
| 34 |
+
"output_type": "stream",
|
| 35 |
+
"text": [
|
| 36 |
+
"RAW matches: (1209, 20)\n",
|
| 37 |
+
"RAW deliveries: (1209, 20)\n",
|
| 38 |
+
"\n",
|
| 39 |
+
"Raw season (before cleaning):\n",
|
| 40 |
+
"['2007/08', '2009', '2009/10', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020/21', '2021', '2022', '2023', '2024', '2025', '2026']\n"
|
| 41 |
+
]
|
| 42 |
+
}
|
| 43 |
+
],
|
| 44 |
+
"source": [
|
| 45 |
+
"matches_raw = pd.read_csv(RAW / \"matches.csv\")\n",
|
| 46 |
+
"deliveries_raw = pd.read_csv(RAW / \"deliveries.csv\", low_memory=False)\n",
|
| 47 |
+
"\n",
|
| 48 |
+
"print(f\"RAW matches: {matches_raw.shape}\")\n",
|
| 49 |
+
"print(f\"RAW deliveries: {matches_raw.shape}\")\n",
|
| 50 |
+
"print(f\"\\nRaw season (before cleaning):\")\n",
|
| 51 |
+
"print(sorted(matches_raw[\"season\"].astype(str).unique()))"
|
| 52 |
+
]
|
| 53 |
+
},
|
| 54 |
+
{
|
| 55 |
+
"cell_type": "code",
|
| 56 |
+
"execution_count": 3,
|
| 57 |
+
"id": "13eb99e8-d89d-4e10-9894-8354fbb0fe73",
|
| 58 |
+
"metadata": {},
|
| 59 |
+
"outputs": [
|
| 60 |
+
{
|
| 61 |
+
"name": "stdout",
|
| 62 |
+
"output_type": "stream",
|
| 63 |
+
"text": [
|
| 64 |
+
"OK — all seasons are valid IPL years.\n",
|
| 65 |
+
"OK — all expected IPL seasons are present.\n",
|
| 66 |
+
"\n",
|
| 67 |
+
"Season distribution : [np.int32(2008), np.int32(2009), np.int32(2010), np.int32(2011), np.int32(2012), np.int32(2013), np.int32(2014), np.int32(2015), np.int32(2016), np.int32(2017), np.int32(2018), np.int32(2019), np.int32(2020), np.int32(2021), np.int32(2022), np.int32(2023), np.int32(2024), np.int32(2025), np.int32(2026)]\n",
|
| 68 |
+
"Season range : 2008 – 2026\n",
|
| 69 |
+
"Total seasons : 19\n",
|
| 70 |
+
"Total matches : 1209\n",
|
| 71 |
+
"\n",
|
| 72 |
+
"clean_matches done: (1209, 20) → (1209, 24)\n",
|
| 73 |
+
"Remaining nulls:\n",
|
| 74 |
+
"city 51\n",
|
| 75 |
+
"match_type 114\n",
|
| 76 |
+
"target_overs 117\n",
|
| 77 |
+
"super_over 114\n",
|
| 78 |
+
"method 1188\n",
|
| 79 |
+
"umpire1 114\n",
|
| 80 |
+
"umpire2 114\n",
|
| 81 |
+
"\n",
|
| 82 |
+
"clean_deliveries: (287513, 17) → (287513, 24)\n",
|
| 83 |
+
" Nulls remaining:\n",
|
| 84 |
+
"extras_type 273388\n",
|
| 85 |
+
"fielder 277108\n"
|
| 86 |
+
]
|
| 87 |
+
}
|
| 88 |
+
],
|
| 89 |
+
"source": [
|
| 90 |
+
"matches = clean_matches(matches_raw)\n",
|
| 91 |
+
"deliveries = clean_deliveries(deliveries_raw)"
|
| 92 |
+
]
|
| 93 |
+
},
|
| 94 |
+
{
|
| 95 |
+
"cell_type": "code",
|
| 96 |
+
"execution_count": 4,
|
| 97 |
+
"id": "aa7b3c1d-e6d1-42c0-b0e4-9679559bab1c",
|
| 98 |
+
"metadata": {},
|
| 99 |
+
"outputs": [
|
| 100 |
+
{
|
| 101 |
+
"name": "stdout",
|
| 102 |
+
"output_type": "stream",
|
| 103 |
+
"text": [
|
| 104 |
+
"All assertions passed.\n"
|
| 105 |
+
]
|
| 106 |
+
}
|
| 107 |
+
],
|
| 108 |
+
"source": [
|
| 109 |
+
"assert pd.api.types.is_datetime64_any_dtype(matches[\"date\"]), \\\n",
|
| 110 |
+
" \"date column should be datetime64\"\n",
|
| 111 |
+
"\n",
|
| 112 |
+
"matches[\"season\"] = pd.to_numeric(matches[\"season\"], errors='coerce').astype('int64')\n",
|
| 113 |
+
"\n",
|
| 114 |
+
"assert matches[\"season\"].dtype == int or matches[\"season\"].dtype == \"int64\", \\\n",
|
| 115 |
+
" \"season should be int\"\n",
|
| 116 |
+
"\n",
|
| 117 |
+
"assert matches[\"season\"].min() == 2008, \\\n",
|
| 118 |
+
" f\"Earliest season should be 2008, got {matches['season'].min()}\"\n",
|
| 119 |
+
"\n",
|
| 120 |
+
"assert 2007 not in matches[\"season\"].values, \\\n",
|
| 121 |
+
" \"2007 should not exist - IPL started in 2008\"\n",
|
| 122 |
+
"\n",
|
| 123 |
+
"assert deliveries[\"is_wicket\"].sum() > 0, \\\n",
|
| 124 |
+
" \"is_ wicket column looks wrong - no wickets found\"\n",
|
| 125 |
+
"\n",
|
| 126 |
+
"assert deliveries[\"is_four\"].sum() > 0, \\\n",
|
| 127 |
+
" \"is_four columns wrong - no fours found\"\n",
|
| 128 |
+
"\n",
|
| 129 |
+
"assert (\n",
|
| 130 |
+
" deliveries[\"match_id\"].isin(matches[\"match_id\"]).all()\n",
|
| 131 |
+
"), \"some delivery match_ids have no corresponding match row\" \n",
|
| 132 |
+
"\n",
|
| 133 |
+
"print(\"All assertions passed.\")"
|
| 134 |
+
]
|
| 135 |
+
},
|
| 136 |
+
{
|
| 137 |
+
"cell_type": "code",
|
| 138 |
+
"execution_count": 5,
|
| 139 |
+
"id": "3fdd4af4-e1fc-490f-9a89-e0111f89d692",
|
| 140 |
+
"metadata": {},
|
| 141 |
+
"outputs": [
|
| 142 |
+
{
|
| 143 |
+
"name": "stdout",
|
| 144 |
+
"output_type": "stream",
|
| 145 |
+
"text": [
|
| 146 |
+
"Raw season values that might be 2020:\n",
|
| 147 |
+
"['2007/08', '2009', '2009/10', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020/21', '2021', '2022', '2023', '2024', '2025', '2026']\n",
|
| 148 |
+
"\n",
|
| 149 |
+
"Matches with dates in 2020: 60\n",
|
| 150 |
+
"Their season values: <StringArray>\n",
|
| 151 |
+
"['2020/21']\n",
|
| 152 |
+
"Length: 1, dtype: str\n"
|
| 153 |
+
]
|
| 154 |
+
}
|
| 155 |
+
],
|
| 156 |
+
"source": [
|
| 157 |
+
"print(\"Raw season values that might be 2020:\")\n",
|
| 158 |
+
"raw_seasons = matches_raw[\"season\"].astype(str).unique()\n",
|
| 159 |
+
"candidates = [s for s in raw_seasons if \"20\" in s]\n",
|
| 160 |
+
"print(sorted(candidates))\n",
|
| 161 |
+
"\n",
|
| 162 |
+
"if \"date\" in matches_raw.columns:\n",
|
| 163 |
+
" matches_raw[\"_date\"] = pd.to_datetime(matches_raw[\"date\"], errors=\"coerce\")\n",
|
| 164 |
+
" year_2020 = matches_raw[matches_raw[\"_date\"].dt.year == 2020]\n",
|
| 165 |
+
" print(f\"\\nMatches with dates in 2020: {len(year_2020)}\")\n",
|
| 166 |
+
" if len(year_2020) > 0:\n",
|
| 167 |
+
" print(f\"Their season values: {year_2020['season'].unique()}\")"
|
| 168 |
+
]
|
| 169 |
+
},
|
| 170 |
+
{
|
| 171 |
+
"cell_type": "code",
|
| 172 |
+
"execution_count": 6,
|
| 173 |
+
"id": "3053c77c-a9a4-42ce-8614-c1569c9da973",
|
| 174 |
+
"metadata": {},
|
| 175 |
+
"outputs": [
|
| 176 |
+
{
|
| 177 |
+
"name": "stdout",
|
| 178 |
+
"output_type": "stream",
|
| 179 |
+
"text": [
|
| 180 |
+
"build_batting_features: 460 batters with 30+ balls faced\n",
|
| 181 |
+
"build_bowling_features: 402 bowlers with 60+ balls bowled\n",
|
| 182 |
+
"build_match_summary: (1209, 45)\n",
|
| 183 |
+
"build_team_season_stats: (166, 7)\n"
|
| 184 |
+
]
|
| 185 |
+
}
|
| 186 |
+
],
|
| 187 |
+
"source": [
|
| 188 |
+
"batting_stats = build_batting_features(deliveries)\n",
|
| 189 |
+
"bowling_stats = build_bowling_features(deliveries)\n",
|
| 190 |
+
"match_summary = build_match_summary(matches, deliveries)\n",
|
| 191 |
+
"team_season_stats = build_team_season_stats(match_summary)"
|
| 192 |
+
]
|
| 193 |
+
},
|
| 194 |
+
{
|
| 195 |
+
"cell_type": "code",
|
| 196 |
+
"execution_count": 7,
|
| 197 |
+
"id": "be5a9fd0-9446-4c7b-94d8-30e0e6f3d8f2",
|
| 198 |
+
"metadata": {},
|
| 199 |
+
"outputs": [
|
| 200 |
+
{
|
| 201 |
+
"name": "stdout",
|
| 202 |
+
"output_type": "stream",
|
| 203 |
+
"text": [
|
| 204 |
+
"\n",
|
| 205 |
+
"All files saved to data/processed/\n"
|
| 206 |
+
]
|
| 207 |
+
}
|
| 208 |
+
],
|
| 209 |
+
"source": [
|
| 210 |
+
"matches.to_csv(PROCESSED / \"matches_clean.csv\", index=False)\n",
|
| 211 |
+
"deliveries.to_csv(PROCESSED / \"deliveries_clean.csv\", index=False)\n",
|
| 212 |
+
"batting_stats.to_csv(PROCESSED / \"batting_features.csv\", index=False)\n",
|
| 213 |
+
"bowling_stats.to_csv(PROCESSED / \"bowling_features.csv\", index=False)\n",
|
| 214 |
+
"match_summary.to_csv(PROCESSED / \"match_summary.csv\", index=False)\n",
|
| 215 |
+
"team_season_stats.to_csv(PROCESSED / \"team_season_stats.csv\", index=False)\n",
|
| 216 |
+
"\n",
|
| 217 |
+
"print(\"\\nAll files saved to data/processed/\")"
|
| 218 |
+
]
|
| 219 |
+
},
|
| 220 |
+
{
|
| 221 |
+
"cell_type": "code",
|
| 222 |
+
"execution_count": 8,
|
| 223 |
+
"id": "ec238a06-b38a-41f3-a11e-efeedb404d62",
|
| 224 |
+
"metadata": {},
|
| 225 |
+
"outputs": [
|
| 226 |
+
{
|
| 227 |
+
"name": "stdout",
|
| 228 |
+
"output_type": "stream",
|
| 229 |
+
"text": [
|
| 230 |
+
"SQLite DB saved: data/processed/ipl.db\n"
|
| 231 |
+
]
|
| 232 |
+
}
|
| 233 |
+
],
|
| 234 |
+
"source": [
|
| 235 |
+
"import sqlite3\n",
|
| 236 |
+
"\n",
|
| 237 |
+
"conn = sqlite3.connect(PROCESSED / \"ipl.db\")\n",
|
| 238 |
+
"matches.to_sql(\"matches\", conn, if_exists=\"replace\", index=False)\n",
|
| 239 |
+
"deliveries.to_sql(\"deliveries\", conn, if_exists=\"replace\", index=False)\n",
|
| 240 |
+
"batting_stats.to_sql(\"batting\", conn, if_exists=\"replace\", index=False)\n",
|
| 241 |
+
"bowling_stats.to_sql(\"bowling\", conn, if_exists=\"replace\", index=False)\n",
|
| 242 |
+
"match_summary.to_sql(\"match_summary\", conn, if_exists=\"replace\", index=False)\n",
|
| 243 |
+
"team_season_stats.to_sql(\"team_season\", conn, if_exists=\"replace\", index=False)\n",
|
| 244 |
+
"conn.close()\n",
|
| 245 |
+
"\n",
|
| 246 |
+
"print(\"SQLite DB saved: data/processed/ipl.db\")"
|
| 247 |
+
]
|
| 248 |
+
},
|
| 249 |
+
{
|
| 250 |
+
"cell_type": "code",
|
| 251 |
+
"execution_count": 9,
|
| 252 |
+
"id": "d22080d1-858d-4b86-a9f5-7e30fa4d9409",
|
| 253 |
+
"metadata": {},
|
| 254 |
+
"outputs": [
|
| 255 |
+
{
|
| 256 |
+
"name": "stdout",
|
| 257 |
+
"output_type": "stream",
|
| 258 |
+
"text": [
|
| 259 |
+
"\n",
|
| 260 |
+
"=== OUTPUT SUMMARY ===\n",
|
| 261 |
+
" matches_clean : shape=(1209, 24) nulls=1812\n",
|
| 262 |
+
" deliveries_clean : shape=(287513, 24) nulls=550496\n",
|
| 263 |
+
" batting_features : shape=(460, 19) nulls=164\n",
|
| 264 |
+
" bowling_features : shape=(402, 20) nulls=37\n",
|
| 265 |
+
" match_summary : shape=(1209, 45) nulls=1866\n",
|
| 266 |
+
" team_season_stats : shape=(166, 7) nulls=0\n"
|
| 267 |
+
]
|
| 268 |
+
}
|
| 269 |
+
],
|
| 270 |
+
"source": [
|
| 271 |
+
"print(\"\\n=== OUTPUT SUMMARY ===\")\n",
|
| 272 |
+
"for name, df in {\n",
|
| 273 |
+
" \"matches_clean\" : matches,\n",
|
| 274 |
+
" \"deliveries_clean\": deliveries,\n",
|
| 275 |
+
" \"batting_features\": batting_stats,\n",
|
| 276 |
+
" \"bowling_features\": bowling_stats,\n",
|
| 277 |
+
" \"match_summary\": match_summary,\n",
|
| 278 |
+
" \"team_season_stats\": team_season_stats,\n",
|
| 279 |
+
"}.items():\n",
|
| 280 |
+
" nulls = df.isnull().sum().sum()\n",
|
| 281 |
+
" print(f\" {name:<22}: shape={str(df.shape):<16} nulls={nulls}\")"
|
| 282 |
+
]
|
| 283 |
+
},
|
| 284 |
+
{
|
| 285 |
+
"cell_type": "code",
|
| 286 |
+
"execution_count": 10,
|
| 287 |
+
"id": "48df6a69-39d5-4cc2-b329-0b988fb458dd",
|
| 288 |
+
"metadata": {},
|
| 289 |
+
"outputs": [
|
| 290 |
+
{
|
| 291 |
+
"name": "stdout",
|
| 292 |
+
"output_type": "stream",
|
| 293 |
+
"text": [
|
| 294 |
+
"\n",
|
| 295 |
+
"=== Top 10 run scorers ===\n",
|
| 296 |
+
" batter total_runs batting_average strike_rate hundreds fifties\n",
|
| 297 |
+
" V Kohli 9022 38.07 133.80 8 66\n",
|
| 298 |
+
" RG Sharma 7185 28.86 132.64 2 48\n",
|
| 299 |
+
" S Dhawan 6769 35.07 127.62 2 51\n",
|
| 300 |
+
" DA Warner 6567 40.04 140.26 4 62\n",
|
| 301 |
+
" KL Rahul 5593 45.47 138.17 6 42\n",
|
| 302 |
+
" SK Raina 5536 33.15 137.54 1 39\n",
|
| 303 |
+
" MS Dhoni 5439 34.42 137.91 0 24\n",
|
| 304 |
+
" AM Rahane 5194 29.85 124.92 2 34\n",
|
| 305 |
+
"AB de Villiers 5181 41.45 152.38 3 40\n",
|
| 306 |
+
" SV Samson 5008 31.90 140.83 5 26\n",
|
| 307 |
+
"\n",
|
| 308 |
+
"=== Top 10 wicket takers ===\n",
|
| 309 |
+
" bowler wickets economy_rate bowling_average dot_ball_pct\n",
|
| 310 |
+
" YS Chahal 237 8.11 22.59 34.59\n",
|
| 311 |
+
" B Kumar 228 7.84 25.35 43.80\n",
|
| 312 |
+
" SP Narine 221 6.92 23.59 39.68\n",
|
| 313 |
+
" DJ Bravo 207 8.53 21.43 33.78\n",
|
| 314 |
+
" JJ Bumrah 206 7.43 21.23 42.51\n",
|
| 315 |
+
" R Ashwin 205 7.28 27.91 35.35\n",
|
| 316 |
+
" PP Chawla 201 8.07 25.77 35.27\n",
|
| 317 |
+
"SL Malinga 188 7.40 18.54 43.07\n",
|
| 318 |
+
" RA Jadeja 185 7.74 29.11 33.06\n",
|
| 319 |
+
" A Mishra 183 7.46 22.91 36.19\n",
|
| 320 |
+
"\n",
|
| 321 |
+
"=== New columns in deliveries ===\n",
|
| 322 |
+
" is_wicket is_four is_six is_dot_ball over_phase is_legal_delivery\n",
|
| 323 |
+
" 0 0 0 1 powerplay 1\n",
|
| 324 |
+
" 0 0 0 1 powerplay 1\n",
|
| 325 |
+
" 0 0 0 0 powerplay 0\n",
|
| 326 |
+
" 0 0 0 1 powerplay 1\n",
|
| 327 |
+
" 0 0 0 1 powerplay 1\n",
|
| 328 |
+
" 0 0 0 1 powerplay 1\n",
|
| 329 |
+
" 0 0 0 1 powerplay 1\n",
|
| 330 |
+
" 0 0 0 1 powerplay 1\n",
|
| 331 |
+
" 0 1 0 0 powerplay 1\n",
|
| 332 |
+
" 0 1 0 0 powerplay 1\n"
|
| 333 |
+
]
|
| 334 |
+
}
|
| 335 |
+
],
|
| 336 |
+
"source": [
|
| 337 |
+
"print(\"\\n=== Top 10 run scorers ===\")\n",
|
| 338 |
+
"print(batting_stats[[\"batter\", \"total_runs\", \"batting_average\", \"strike_rate\", \"hundreds\", \"fifties\"]].head(10).to_string(index=False))\n",
|
| 339 |
+
"\n",
|
| 340 |
+
"print(\"\\n=== Top 10 wicket takers ===\")\n",
|
| 341 |
+
"print(bowling_stats[[\"bowler\", \"wickets\", \"economy_rate\", \"bowling_average\", \"dot_ball_pct\"]].head(10).to_string(index=False))\n",
|
| 342 |
+
"\n",
|
| 343 |
+
"print(\"\\n=== New columns in deliveries ===\")\n",
|
| 344 |
+
"new_cols = [\"is_wicket\", \"is_four\", \"is_six\", \"is_dot_ball\", \"over_phase\", \"is_legal_delivery\"]\n",
|
| 345 |
+
"print(deliveries[new_cols].head(10).to_string(index=False))"
|
| 346 |
+
]
|
| 347 |
+
},
|
| 348 |
+
{
|
| 349 |
+
"cell_type": "code",
|
| 350 |
+
"execution_count": 11,
|
| 351 |
+
"id": "67d96b8e-4306-4fb3-b00d-859b4ca6efdc",
|
| 352 |
+
"metadata": {},
|
| 353 |
+
"outputs": [
|
| 354 |
+
{
|
| 355 |
+
"name": "stdout",
|
| 356 |
+
"output_type": "stream",
|
| 357 |
+
"text": [
|
| 358 |
+
"True\n",
|
| 359 |
+
"['match_id', 'season', 'city', 'date', 'match_type', 'player_of_match', 'venue', 'team1', 'team2', 'toss_winner', 'toss_decision', 'winner', 'result', 'result_margin', 'target_runs', 'target_overs', 'super_over', 'method', 'umpire1', 'umpire2', 'result_type', 'is_no_result', 'day_of_week', 'month', 'inn1_batting_team', 'inn1_total_runs', 'inn1_total_wickets', 'inn1_total_balls', 'inn1_total_fours', 'inn1_total_sixes', 'inn1_dot_balls', 'inn1_run_rate', 'inn2_batting_team', 'inn2_total_runs', 'inn2_total_wickets', 'inn2_total_balls', 'inn2_total_fours', 'inn2_total_sixes', 'inn2_dot_balls', 'inn2_run_rate', 'toss_winner_won', 'batting_first_team', 'batting_first_won', 'score_diff', 'season_num']\n"
|
| 360 |
+
]
|
| 361 |
+
}
|
| 362 |
+
],
|
| 363 |
+
"source": [
|
| 364 |
+
"# Quick check — run this in a notebook\n",
|
| 365 |
+
"import pandas as pd\n",
|
| 366 |
+
"summary = pd.read_csv(r\"E:/ipl-analytics/data/processed/match_summary.csv\")\n",
|
| 367 |
+
"print(\"batting_first_won\" in summary.columns)\n",
|
| 368 |
+
"print(summary.columns.tolist())"
|
| 369 |
+
]
|
| 370 |
+
},
|
| 371 |
+
{
|
| 372 |
+
"cell_type": "code",
|
| 373 |
+
"execution_count": 12,
|
| 374 |
+
"id": "b9a549cc-5eaf-46e3-a89a-08def3234b43",
|
| 375 |
+
"metadata": {},
|
| 376 |
+
"outputs": [
|
| 377 |
+
{
|
| 378 |
+
"name": "stdout",
|
| 379 |
+
"output_type": "stream",
|
| 380 |
+
"text": [
|
| 381 |
+
"['match_id', 'season', 'city', 'date', 'match_type']\n"
|
| 382 |
+
]
|
| 383 |
+
}
|
| 384 |
+
],
|
| 385 |
+
"source": [
|
| 386 |
+
"# In callbacks.py, check these lines at the top\n",
|
| 387 |
+
"matches = pd.read_csv(PROCESSED / \"matches_clean.csv\", parse_dates=[\"date\"])\n",
|
| 388 |
+
"print(matches.columns.tolist()[:5])"
|
| 389 |
+
]
|
| 390 |
+
},
|
| 391 |
+
{
|
| 392 |
+
"cell_type": "code",
|
| 393 |
+
"execution_count": 13,
|
| 394 |
+
"id": "9edf3ceb-9a25-423a-9461-175553fc6431",
|
| 395 |
+
"metadata": {},
|
| 396 |
+
"outputs": [
|
| 397 |
+
{
|
| 398 |
+
"name": "stdout",
|
| 399 |
+
"output_type": "stream",
|
| 400 |
+
"text": [
|
| 401 |
+
"['A_form5', 'B_form5', 'form_diff5', 'A_form10', 'B_form10', 'form_diff10', 'A_overall_wr', 'B_overall_wr', 'overall_wr_diff', 'A_venue_wr', 'B_venue_wr', 'venue_wr_diff', 'venue_bat_first_wr', 'A_avg_score', 'B_avg_score', 'score_diff', 'A_avg_wickets', 'B_avg_wickets', 'wicket_diff', 'h2h_wr_A', 'h2h_n', 'toss_decision_bat', 'toss_correct', 'A_consistency', 'B_consistency', 'season_stage']\n"
|
| 402 |
+
]
|
| 403 |
+
}
|
| 404 |
+
],
|
| 405 |
+
"source": [
|
| 406 |
+
"import json\n",
|
| 407 |
+
"with open(r\"E:/ipl-analytics/data/processed/models/win_prob_features.json\") as f:\n",
|
| 408 |
+
" print(json.load(f))\n",
|
| 409 |
+
" "
|
| 410 |
+
]
|
| 411 |
+
},
|
| 412 |
+
{
|
| 413 |
+
"cell_type": "code",
|
| 414 |
+
"execution_count": 14,
|
| 415 |
+
"id": "aa04d396-d78c-478b-8269-c10d2f2a508e",
|
| 416 |
+
"metadata": {},
|
| 417 |
+
"outputs": [
|
| 418 |
+
{
|
| 419 |
+
"name": "stdout",
|
| 420 |
+
"output_type": "stream",
|
| 421 |
+
"text": [
|
| 422 |
+
"True\n",
|
| 423 |
+
"(1209, 45)\n"
|
| 424 |
+
]
|
| 425 |
+
}
|
| 426 |
+
],
|
| 427 |
+
"source": [
|
| 428 |
+
"import pandas as pd\n",
|
| 429 |
+
"df = pd.read_csv(r\"E:/ipl-analytics/data/processed/match_summary.csv\")\n",
|
| 430 |
+
"print(\"batting_first_won\" in df.columns)\n",
|
| 431 |
+
"print(df.shape)"
|
| 432 |
+
]
|
| 433 |
+
},
|
| 434 |
+
{
|
| 435 |
+
"cell_type": "code",
|
| 436 |
+
"execution_count": 17,
|
| 437 |
+
"id": "74439927-12bc-4a07-bc8d-177e3e1f06be",
|
| 438 |
+
"metadata": {},
|
| 439 |
+
"outputs": [
|
| 440 |
+
{
|
| 441 |
+
"name": "stderr",
|
| 442 |
+
"output_type": "stream",
|
| 443 |
+
"text": [
|
| 444 |
+
"C:\\Users\\BHUMI\\AppData\\Local\\Temp\\ipykernel_25556\\3219913361.py:3: DtypeWarning: Columns (0: extras_type) have mixed types. Specify dtype option on import or set low_memory=False.\n",
|
| 445 |
+
" deliveries = pd.read_csv(r\"E:/ipl-analytics/data/processed/deliveries_clean.csv\")\n"
|
| 446 |
+
]
|
| 447 |
+
},
|
| 448 |
+
{
|
| 449 |
+
"name": "stdout",
|
| 450 |
+
"output_type": "stream",
|
| 451 |
+
"text": [
|
| 452 |
+
"batting_team\n",
|
| 453 |
+
"Mumbai Indians 34133\n",
|
| 454 |
+
"Royal Challengers Bangalore 32592\n",
|
| 455 |
+
"Delhi Capitals 32365\n",
|
| 456 |
+
"Kolkata Knight Riders 31779\n",
|
| 457 |
+
"Chennai Super Kings 31414\n",
|
| 458 |
+
"Name: count, dtype: int64\n",
|
| 459 |
+
"['match_id', 'inning', 'batting_team', 'bowling_team', 'over', 'ball', 'batter', 'bowler', 'non_striker', 'batsman_runs', 'extra_runs', 'total_runs', 'extras_type', 'is_wicket', 'player_dismissed', 'dismissal_kind', 'fielder', 'is_wide', 'is_noball', 'is_four', 'is_six', 'is_dot_ball', 'over_phase', 'is_legal_delivery']\n"
|
| 460 |
+
]
|
| 461 |
+
}
|
| 462 |
+
],
|
| 463 |
+
"source": [
|
| 464 |
+
"# In your notebook or terminal\n",
|
| 465 |
+
"import pandas as pd\n",
|
| 466 |
+
"deliveries = pd.read_csv(r\"E:/ipl-analytics/data/processed/deliveries_clean.csv\")\n",
|
| 467 |
+
"\n",
|
| 468 |
+
"# Check what batting_team values look like\n",
|
| 469 |
+
"print(deliveries[\"batting_team\"].value_counts().head(5))\n",
|
| 470 |
+
"print(deliveries.columns.tolist())"
|
| 471 |
+
]
|
| 472 |
+
},
|
| 473 |
+
{
|
| 474 |
+
"cell_type": "code",
|
| 475 |
+
"execution_count": null,
|
| 476 |
+
"id": "66c87d74-17eb-4828-b5b6-ac0a2b18b3c9",
|
| 477 |
+
"metadata": {},
|
| 478 |
+
"outputs": [],
|
| 479 |
+
"source": []
|
| 480 |
+
}
|
| 481 |
+
],
|
| 482 |
+
"metadata": {
|
| 483 |
+
"kernelspec": {
|
| 484 |
+
"display_name": "Python 3 (ipykernel)",
|
| 485 |
+
"language": "python",
|
| 486 |
+
"name": "python3"
|
| 487 |
+
},
|
| 488 |
+
"language_info": {
|
| 489 |
+
"codemirror_mode": {
|
| 490 |
+
"name": "ipython",
|
| 491 |
+
"version": 3
|
| 492 |
+
},
|
| 493 |
+
"file_extension": ".py",
|
| 494 |
+
"mimetype": "text/x-python",
|
| 495 |
+
"name": "python",
|
| 496 |
+
"nbconvert_exporter": "python",
|
| 497 |
+
"pygments_lexer": "ipython3",
|
| 498 |
+
"version": "3.13.5"
|
| 499 |
+
}
|
| 500 |
+
},
|
| 501 |
+
"nbformat": 4,
|
| 502 |
+
"nbformat_minor": 5
|
| 503 |
+
}
|
notebooks/03_eda_visualisations.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
notebooks/04_ml_models.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
render.yaml
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
services:
|
| 2 |
+
- type: web
|
| 3 |
+
name: ipl-analytics
|
| 4 |
+
runtime: python
|
| 5 |
+
buildCommand: pip install -r requirements.txt
|
| 6 |
+
startCommand: python waitress_server.py
|
requirements.txt
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
pandas
|
| 2 |
+
numpy
|
| 3 |
+
matplotlib
|
| 4 |
+
seaborn
|
| 5 |
+
plotly
|
| 6 |
+
dash
|
| 7 |
+
dash-bootstrap-components
|
| 8 |
+
scikit-learn
|
| 9 |
+
xgboost
|
| 10 |
+
statsmodels
|
| 11 |
+
shap
|
| 12 |
+
jupyter
|
| 13 |
+
ipykernel
|
| 14 |
+
waitress
|
src/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
from .models import get_available_teams, get_available_venues
|
src/clean.py
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
import numpy as np
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
|
| 5 |
+
RAW = Path("E:/ipl-analytics/data/raw")
|
| 6 |
+
PROCESSED = Path("E:/ipl-analytics/data/processed")
|
| 7 |
+
PROCESSED.mkdir(parents=True, exist_ok=True)
|
| 8 |
+
|
| 9 |
+
TEAM_NAME_MAP = {
|
| 10 |
+
"Rising Pune Supergiant" : "Rising Pune Supergiants",
|
| 11 |
+
"King XI Punjab" : "Punjab Kings",
|
| 12 |
+
"Pune Warriors" : "Pune Warriors India",
|
| 13 |
+
"Deccan Chargrers" : "Sunrisers Hyderabad",
|
| 14 |
+
"Delhi Daredevils" : "Delhi Capitals",
|
| 15 |
+
"Royal Challengers Bengaluru" : "Royal Challengers Bangalore",
|
| 16 |
+
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
VENUE_KEYWORDS = {
|
| 20 |
+
"Wankhede": "Wankhede Stadium",
|
| 21 |
+
"Chinnaswamy": "M Chinnaswamy Stadium",
|
| 22 |
+
"Chidambaram": "MA Chidambaram Stadium",
|
| 23 |
+
"Chepauk": "MA Chidambaram Stadium",
|
| 24 |
+
"Eden Gardens": "Eden Gardens",
|
| 25 |
+
"Arun Jaitley": "Feroz Shah Kotla",
|
| 26 |
+
"Feroz Shah Kotla": "Feroz Shah Kotla",
|
| 27 |
+
"Rajasekhara": "Vizag Stadium",
|
| 28 |
+
"Yadavindra": "Mullanpur Stadium",
|
| 29 |
+
"Ekana": "Ekana Stadium",
|
| 30 |
+
"Rajiv Gandhi": "Uppal Stadium",
|
| 31 |
+
"IS Bindra": "PCA Stadium",
|
| 32 |
+
"Mohali": "PCA Stadium",
|
| 33 |
+
"Narendra Modi": "Motera Stadium",
|
| 34 |
+
"Dy Patil": "DY Patil Stadium",
|
| 35 |
+
"Brabourne": "Brabourne Stadium",
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
IPL_VALID_SEASONS = set(range(2008, 2025))
|
| 39 |
+
|
| 40 |
+
import datetime
|
| 41 |
+
IPL_VALID_SEASONS = set(range(2008, datetime.date.today().year + 1))
|
| 42 |
+
|
| 43 |
+
SLASH_SEASON_MAP = {
|
| 44 |
+
"2007/08" : 2008,
|
| 45 |
+
"2009/10" : 2010,
|
| 46 |
+
"2020/21" : 2020,
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
def clean_matches(matches: pd.DataFrame) -> pd.DataFrame:
|
| 50 |
+
df = matches.copy()
|
| 51 |
+
|
| 52 |
+
if "id" in df.columns:
|
| 53 |
+
df = df.rename(columns={"id": "match_id"})
|
| 54 |
+
|
| 55 |
+
df["date"] = pd.to_datetime(df["date"], errors="coerce")
|
| 56 |
+
|
| 57 |
+
def fix_season(val):
|
| 58 |
+
val = str(val).strip()
|
| 59 |
+
|
| 60 |
+
if val in SLASH_SEASON_MAP:
|
| 61 |
+
return SLASH_SEASON_MAP[val]
|
| 62 |
+
|
| 63 |
+
if "/" in val:
|
| 64 |
+
parts = val.split("/")
|
| 65 |
+
suffix = parts[1].strip()
|
| 66 |
+
prefix = parts[0].strip()[:2]
|
| 67 |
+
return int(prefix + suffix)
|
| 68 |
+
|
| 69 |
+
val_clean = val.replace("IPL", "").replace("Season", "").strip()
|
| 70 |
+
year = int(float(val_clean))
|
| 71 |
+
|
| 72 |
+
if year == 2007:
|
| 73 |
+
return 2008
|
| 74 |
+
return year
|
| 75 |
+
|
| 76 |
+
df["season"] = df["season"].apply(fix_season).astype("int32")
|
| 77 |
+
|
| 78 |
+
detected = set(df["season"].unique())
|
| 79 |
+
unexpected = detected - IPL_VALID_SEASONS
|
| 80 |
+
missing = IPL_VALID_SEASONS - detected
|
| 81 |
+
|
| 82 |
+
if unexpected:
|
| 83 |
+
print(f"WARNING — unexpected seasons found : {sorted(unexpected)}")
|
| 84 |
+
print(f" Dropping {len(df[df['season'].isin(unexpected)])} rows.")
|
| 85 |
+
df = df[df["season"].isin(IPL_VALID_SEASONS)].copy()
|
| 86 |
+
else:
|
| 87 |
+
print("OK — all seasons are valid IPL years.")
|
| 88 |
+
|
| 89 |
+
if missing:
|
| 90 |
+
print(f"INFO — seasons not in dataset : {sorted(missing)}")
|
| 91 |
+
print(f" Expected if your CSV doesn't cover those years yet.")
|
| 92 |
+
else:
|
| 93 |
+
print("OK — all expected IPL seasons are present.")
|
| 94 |
+
|
| 95 |
+
print(f"\nSeason distribution : {sorted(df['season'].unique())}")
|
| 96 |
+
print(f"Season range : {df['season'].min()} – {df['season'].max()}")
|
| 97 |
+
print(f"Total seasons : {df['season'].nunique()}")
|
| 98 |
+
print(f"Total matches : {len(df)}")
|
| 99 |
+
|
| 100 |
+
df["venue"] = df["venue"].astype(str).str.strip()
|
| 101 |
+
for keyword, clean_name in VENUE_KEYWORDS.items():
|
| 102 |
+
mask = df["venue"].str.contains(keyword, case=False, na=False)
|
| 103 |
+
df.loc[mask, "venue"] = clean_name
|
| 104 |
+
|
| 105 |
+
for col in ["result_margin", "dl_applied", "target_runs"]:
|
| 106 |
+
if col in df.columns:
|
| 107 |
+
df[col] = pd.to_numeric(df[col], errors="coerce").fillna(0).astype(int)
|
| 108 |
+
|
| 109 |
+
for col in ["team1", "team2", "winner", "toss_winner"]:
|
| 110 |
+
if col in df.columns:
|
| 111 |
+
df[col] = df[col].replace(TEAM_NAME_MAP)
|
| 112 |
+
|
| 113 |
+
df["player_of_match"] = df["player_of_match"].fillna("N/A")
|
| 114 |
+
|
| 115 |
+
def result_type(row):
|
| 116 |
+
r = str(row.get("result", "")).lower().strip()
|
| 117 |
+
if r == "runs": return "runs"
|
| 118 |
+
if r == "wickets": return "wickets"
|
| 119 |
+
return "no_result"
|
| 120 |
+
|
| 121 |
+
df["result_type"] = df.apply(result_type, axis=1)
|
| 122 |
+
|
| 123 |
+
df["is_no_result"] = df["winner"].isna().astype(int)
|
| 124 |
+
df["winner"] = df["winner"].fillna("No Result")
|
| 125 |
+
|
| 126 |
+
df["day_of_week"] = df["date"].dt.day_name()
|
| 127 |
+
df["month"] = df["date"].dt.month
|
| 128 |
+
|
| 129 |
+
df = df.sort_values(["season", "date"]).reset_index(drop=True)
|
| 130 |
+
|
| 131 |
+
print(f"\nclean_matches done: {matches.shape} → {df.shape}")
|
| 132 |
+
remaining_nulls = df.isnull().sum()
|
| 133 |
+
remaining_nulls = remaining_nulls[remaining_nulls > 0]
|
| 134 |
+
if len(remaining_nulls):
|
| 135 |
+
print(f"Remaining nulls:\n{remaining_nulls.to_string()}")
|
| 136 |
+
else:
|
| 137 |
+
print("No nulls remaining.")
|
| 138 |
+
|
| 139 |
+
return df
|
| 140 |
+
|
| 141 |
+
def clean_deliveries(deliveries: pd.DataFrame) -> pd.DataFrame:
|
| 142 |
+
df = deliveries.copy()
|
| 143 |
+
|
| 144 |
+
df = df.rename(columns={"batter":"batsman"})
|
| 145 |
+
|
| 146 |
+
for col in ["batting_team", "bowling_team"]:
|
| 147 |
+
if col in df.columns:
|
| 148 |
+
df[col] = df[col].replace(TEAM_NAME_MAP)
|
| 149 |
+
|
| 150 |
+
num_cols = ["inning", "over", "ball", "batsman_runs", "extra_runs", "total_runs"]
|
| 151 |
+
for col in num_cols:
|
| 152 |
+
if col in df.columns:
|
| 153 |
+
df[col] = pd.to_numeric(df[col], errors="coerce").fillna(0).astype(int)
|
| 154 |
+
|
| 155 |
+
df["is_wide"] = (df["extras_type"] == "wides").astype(int)
|
| 156 |
+
df["is_noball"] = (df["extras_type"] == "noballs").astype(int)
|
| 157 |
+
|
| 158 |
+
for col in ["batting_team", "bowling_team"]:
|
| 159 |
+
df[col] = df[col].replace(TEAM_NAME_MAP)
|
| 160 |
+
|
| 161 |
+
df["player_dismissed"] = df["player_dismissed"].fillna("not_out")
|
| 162 |
+
df["dismissal_kind"] = df["dismissal_kind"].fillna("not_out")
|
| 163 |
+
|
| 164 |
+
df["is_wicket"] = df["is_wicket"].fillna(0).astype(int)
|
| 165 |
+
|
| 166 |
+
df["is_four"] = (df["batsman_runs"] == 4).astype(int)
|
| 167 |
+
df["is_six"] = (df["batsman_runs"] == 6).astype(int)
|
| 168 |
+
|
| 169 |
+
df["is_dot_ball"] = (
|
| 170 |
+
(df["batsman_runs"] == 0) &
|
| 171 |
+
(df["is_wide"] == 0) &
|
| 172 |
+
(df["is_noball"] == 0)
|
| 173 |
+
).astype(int)
|
| 174 |
+
|
| 175 |
+
def over_phase(over):
|
| 176 |
+
if over <= 6: return "powerplay"
|
| 177 |
+
if over <= 15: return "middle"
|
| 178 |
+
return "death"
|
| 179 |
+
|
| 180 |
+
df["over_phase"] = df["over"].apply(over_phase)
|
| 181 |
+
|
| 182 |
+
df["is_legal_delivery"] = ((df["is_wide"] == 0) & (df["is_noball"] == 0)).astype(int)
|
| 183 |
+
|
| 184 |
+
df = df.sort_values(["match_id", "inning", "over", "ball"]).reset_index(drop=True)
|
| 185 |
+
print(f"\nclean_deliveries: {deliveries.shape} → {df.shape}")
|
| 186 |
+
print(f" Nulls remaining:\n{df.isnull().sum()[df.isnull().sum()>0].to_string()}")
|
| 187 |
+
return df
|
src/diagnose_cricsheet.py
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# src/diagnose_cricsheet.py
|
| 2 |
+
from pathlib import Path
|
| 3 |
+
import pandas as pd
|
| 4 |
+
|
| 5 |
+
cricsheet_dir = Path("E:/ipl-analytics/data/raw/cricsheet_ipl")
|
| 6 |
+
|
| 7 |
+
match_files = sorted([f for f in cricsheet_dir.glob("*.csv")
|
| 8 |
+
if "_info" not in f.stem])
|
| 9 |
+
|
| 10 |
+
print(f"Match files : {len(match_files)}")
|
| 11 |
+
|
| 12 |
+
print("\nScanning all match files for seasons (30 seconds)...")
|
| 13 |
+
season_counts = {}
|
| 14 |
+
for fp in match_files:
|
| 15 |
+
try:
|
| 16 |
+
row = pd.read_csv(fp, usecols=["season"], nrows=1)
|
| 17 |
+
s = str(row["season"].iloc[0]).strip()
|
| 18 |
+
season_counts[s] = season_counts.get(s, 0) + 1
|
| 19 |
+
except Exception:
|
| 20 |
+
continue
|
| 21 |
+
|
| 22 |
+
print(f"\nAll unique season labels in Cricsheet:")
|
| 23 |
+
for s in sorted(season_counts):
|
| 24 |
+
print(f" '{s}' : {season_counts[s]} matches")
|
src/features.py
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
import numpy as np
|
| 3 |
+
|
| 4 |
+
def build_batting_features(deliveries: pd.DataFrame) -> pd.DataFrame:
|
| 5 |
+
|
| 6 |
+
d = deliveries[deliveries["is_wide"] == 0].copy()
|
| 7 |
+
|
| 8 |
+
agg = d.groupby("batter").agg(
|
| 9 |
+
total_runs = ("batsman_runs", "sum"),
|
| 10 |
+
balls_faced = ("is_legal_delivery", "sum"),
|
| 11 |
+
matches_batted = ("match_id", "nunique"),
|
| 12 |
+
innings = ("inning", "count"),
|
| 13 |
+
fours = ("is_four", "sum"),
|
| 14 |
+
sixes = ("is_six", "sum"),
|
| 15 |
+
dot_balls = ("is_dot_ball", "sum"),
|
| 16 |
+
dismissals = ("is_wicket", "sum"),
|
| 17 |
+
).reset_index()
|
| 18 |
+
|
| 19 |
+
agg["strike_rate"] = (agg["total_runs"] / agg["balls_faced"].replace(0, np.nan) * 100).round(2)
|
| 20 |
+
agg["batting_average"] = (agg["total_runs"] / agg["dismissals"].replace(0, np.nan)).round(2)
|
| 21 |
+
agg["boundary_rate"] = ((agg["fours"] + agg["sixes"]) / agg["balls_faced"].replace(0, np.nan) * 100).round(2)
|
| 22 |
+
agg["dot_ball_pct"] = (agg["dot_balls"] / agg["balls_faced"].replace(0, np.nan) * 100).round(2)
|
| 23 |
+
agg["runs_per_match"] = (agg["total_runs"] / agg["matches_batted"].replace(0, np.nan)).round(2)
|
| 24 |
+
|
| 25 |
+
for phase in ["powerplay", "middle", "death"]:
|
| 26 |
+
phase_df = d[d["over_phase"] == phase].groupby("batter").agg(
|
| 27 |
+
_runs = ("batsman_runs", "sum"),
|
| 28 |
+
_balls = ("is_legal_delivery", "sum"),
|
| 29 |
+
).reset_index()
|
| 30 |
+
phase_df[f"sr_{phase}"] = (phase_df["_runs"] / phase_df["_balls"].replace(0, np.nan) * 100).round(2)
|
| 31 |
+
agg = agg.merge(phase_df[["batter", f"sr_{phase}"]], on="batter", how="left")
|
| 32 |
+
|
| 33 |
+
inning_scores = d.groupby(["batter", "match_id", "inning"])["batsman_runs"].sum().reset_index()
|
| 34 |
+
inning_scores.columns = ["batter", "match_id", "inning", "innings_runs"]
|
| 35 |
+
|
| 36 |
+
fifties = inning_scores[inning_scores["innings_runs"].between(50, 99)].groupby("batter").size().rename("fifties")
|
| 37 |
+
hundreds = inning_scores[inning_scores["innings_runs"] >= 100].groupby("batter").size().rename("hundreds")
|
| 38 |
+
|
| 39 |
+
agg = agg.merge(fifties, on="batter", how="left")
|
| 40 |
+
agg = agg.merge(hundreds, on="batter", how="left")
|
| 41 |
+
agg["fifties"] = agg["fifties"].fillna(0).astype(int)
|
| 42 |
+
agg["hundreds"] = agg["hundreds"].fillna(0).astype(int)
|
| 43 |
+
|
| 44 |
+
agg = agg[agg["balls_faced"] >= 30].copy()
|
| 45 |
+
|
| 46 |
+
print(f"build_batting_features: {len(agg)} batters with 30+ balls faced")
|
| 47 |
+
return agg.sort_values("total_runs", ascending=False).reset_index(drop=True)
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
def build_bowling_features(deliveries: pd.DataFrame) -> pd.DataFrame:
|
| 51 |
+
d = deliveries.copy()
|
| 52 |
+
|
| 53 |
+
agg = d.groupby("bowler").agg(
|
| 54 |
+
balls_bowled = ("is_legal_delivery", "sum"),
|
| 55 |
+
runs_conceded = ("total_runs", "sum"),
|
| 56 |
+
wickets = ("is_wicket", "sum"),
|
| 57 |
+
dot_balls = ("is_dot_ball", "sum"),
|
| 58 |
+
wides = ("is_wide", "sum"),
|
| 59 |
+
no_balls = ("is_noball", "sum"),
|
| 60 |
+
matches_bowled = ("match_id", "nunique"),
|
| 61 |
+
fours_conceded = ("is_four", "sum"),
|
| 62 |
+
sixes_conceded = ("is_six", "sum"),
|
| 63 |
+
).reset_index()
|
| 64 |
+
|
| 65 |
+
overs = agg["balls_bowled"] / 6
|
| 66 |
+
agg["economy_rate"] = (agg["runs_conceded"] / overs.replace(0, np.nan)).round(2)
|
| 67 |
+
agg["bowling_average"] = (agg["runs_conceded"] / agg["wickets"].replace(0, np.nan)).round(2)
|
| 68 |
+
agg["bowling_sr"] = (agg["balls_bowled"] / agg["wickets"].replace(0, np.nan)).round(2)
|
| 69 |
+
agg["dot_ball_pct"] = (agg["dot_balls"] / agg["balls_bowled"].replace(0, np.nan) * 100).round(2)
|
| 70 |
+
agg["wickets_per_match"] = (agg["wickets"] / agg["matches_bowled"].replace(0, np.nan)).round(2)
|
| 71 |
+
|
| 72 |
+
for phase in ["powerplay", "middle", 'death']:
|
| 73 |
+
phase_df = d[d["over_phase"] == phase].groupby("bowler").agg(
|
| 74 |
+
_runs = ("total_runs", "sum"),
|
| 75 |
+
_balls = ("is_legal_delivery", "sum"),
|
| 76 |
+
).reset_index()
|
| 77 |
+
phase_df[f"economy_{phase}"] = (phase_df["_runs"] / (phase_df["_balls"] / 6).replace(0, np.nan)).round(2)
|
| 78 |
+
agg = agg.merge(phase_df[["bowler", f"economy_{phase}"]], on="bowler", how="left")
|
| 79 |
+
|
| 80 |
+
inning_wkt = d.groupby(["bowler", "match_id", "inning"])["is_wicket"].sum().reset_index()
|
| 81 |
+
inning_wkt.columns = ["bowler", "match_id", "inning", "wickets_in_inning"]
|
| 82 |
+
|
| 83 |
+
three_wkt = inning_wkt[inning_wkt["wickets_in_inning"] >= 3].groupby("bowler").size().rename("three_wicket_haul")
|
| 84 |
+
five_wkt = inning_wkt[inning_wkt["wickets_in_inning"] >= 5].groupby("bowler").size().rename("five_wicket_haul")
|
| 85 |
+
|
| 86 |
+
agg = agg.merge(three_wkt, on="bowler", how="left")
|
| 87 |
+
agg = agg.merge(five_wkt, on="bowler", how="left")
|
| 88 |
+
agg["three_wicket_haul"] = agg["three_wicket_haul"].fillna(0).astype(int)
|
| 89 |
+
agg["five_wicket_haul"] = agg["five_wicket_haul"].fillna(0).astype(int)
|
| 90 |
+
|
| 91 |
+
agg = agg[agg["balls_bowled"] >= 60].copy()
|
| 92 |
+
|
| 93 |
+
print(f"build_bowling_features: {len(agg)} bowlers with 60+ balls bowled")
|
| 94 |
+
return agg.sort_values("wickets", ascending=False).reset_index(drop=True)
|
| 95 |
+
|
| 96 |
+
def build_match_summary(matches: pd.DataFrame, deliveries: pd.DataFrame) -> pd.DataFrame:
|
| 97 |
+
|
| 98 |
+
innings_total = deliveries.groupby(["match_id", "inning", "batting_team"]).agg(
|
| 99 |
+
total_runs = ("total_runs", "sum"),
|
| 100 |
+
total_wickets = ("is_wicket", "sum"),
|
| 101 |
+
total_balls = ("is_legal_delivery", "sum"),
|
| 102 |
+
total_fours = ("is_four", "sum"),
|
| 103 |
+
total_sixes = ("is_six", "sum"),
|
| 104 |
+
dot_balls = ("is_dot_ball", "sum"),
|
| 105 |
+
).reset_index()
|
| 106 |
+
|
| 107 |
+
innings_total["run_rate"] = (
|
| 108 |
+
innings_total["total_runs"] / (innings_total["total_balls"] / 6).replace(0, np.nan)
|
| 109 |
+
).round(2)
|
| 110 |
+
|
| 111 |
+
inn1 = innings_total[innings_total["inning"] == 1].add_prefix("inn1_").rename(columns={"inn1_match_id": "match_id"})
|
| 112 |
+
inn2 = innings_total[innings_total["inning"] == 2].add_prefix("inn2_").rename(columns={"inn2_match_id": "match_id"})
|
| 113 |
+
|
| 114 |
+
summary = matches.merge(inn1.drop(columns=["inn1_inning"]), on="match_id", how="left")
|
| 115 |
+
summary = summary.merge(inn2.drop(columns=["inn2_inning"]), on="match_id", how="left")
|
| 116 |
+
|
| 117 |
+
summary["toss_winner_won"] = (summary["toss_winner"] == summary["winner"]).astype(int)
|
| 118 |
+
summary["batting_first_team"] = summary["inn1_batting_team"]
|
| 119 |
+
|
| 120 |
+
summary["batting_first_won"] = (
|
| 121 |
+
summary["inn1_batting_team"] == summary["winner"]
|
| 122 |
+
).astype(int)
|
| 123 |
+
|
| 124 |
+
summary["score_diff"] = summary["inn1_total_runs"] - summary["inn2_total_runs"]
|
| 125 |
+
|
| 126 |
+
min_season = summary["season"].min()
|
| 127 |
+
summary["season_num"] = summary["season"] - min_season + 1
|
| 128 |
+
|
| 129 |
+
print(f"build_match_summary: {summary.shape}")
|
| 130 |
+
return summary.reset_index(drop=True)
|
| 131 |
+
|
| 132 |
+
def build_team_season_stats(matches: pd.DataFrame) -> pd.DataFrame:
|
| 133 |
+
|
| 134 |
+
records = []
|
| 135 |
+
for season in sorted(matches["season"].unique()):
|
| 136 |
+
season_df = matches[matches["season"] == season]
|
| 137 |
+
all_teams = pd.concat([season_df["team1"], season_df["team2"]]).unique()
|
| 138 |
+
|
| 139 |
+
for team in all_teams:
|
| 140 |
+
played = season_df[(season_df["team1"] == team) | (season_df["team2"] == team)]
|
| 141 |
+
won = season_df[season_df["winner"] == team]
|
| 142 |
+
|
| 143 |
+
bat_first = played[played["inn1_batting_team"] == team] if "inn1_batting_team" in played.columns else pd.DataFrame()
|
| 144 |
+
toss_won = played[played["toss_winner"] == team]
|
| 145 |
+
toss_bat = toss_won[toss_won["toss_decision"] == "bat"]
|
| 146 |
+
|
| 147 |
+
records.append({
|
| 148 |
+
"season": season,
|
| 149 |
+
"team": team,
|
| 150 |
+
"matches_played": len(played),
|
| 151 |
+
"matches_won": len(won),
|
| 152 |
+
"win_pct": round(len(won) / len(played) * 100, 1) if len(played) > 0 else 0,
|
| 153 |
+
"toss_wins": len(toss_won),
|
| 154 |
+
"toss_bat_choice": len(toss_bat),
|
| 155 |
+
})
|
| 156 |
+
|
| 157 |
+
df = pd.DataFrame(records)
|
| 158 |
+
print(f"build_team_season_stats: {df.shape}")
|
| 159 |
+
return df
|
src/fix_raw_ids.py
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
from pathlib import Path
|
| 3 |
+
|
| 4 |
+
RAW = Path("E:/ipl-analytics/data/raw")
|
| 5 |
+
|
| 6 |
+
matches = pd.read_csv(RAW / "matches.csv")
|
| 7 |
+
deliveries = pd.read_csv(RAW / "deliveries.csv")
|
| 8 |
+
|
| 9 |
+
print("=== RAW matches.csv ===")
|
| 10 |
+
print(f" shape : {matches.shape}")
|
| 11 |
+
print(f" columns : {matches.columns.tolist()}")
|
| 12 |
+
|
| 13 |
+
print("\n=== RAW deliveries.csv ===")
|
| 14 |
+
print(f" shape : {deliveries.shape}")
|
| 15 |
+
print(f" columns : {deliveries.columns.tolist()}")
|
| 16 |
+
|
| 17 |
+
match_id_col = "match_id" if "match_id" in matches.columns else "id"
|
| 18 |
+
delivery_id_col = "match_id" if "match_id" in deliveries.columns else "id"
|
| 19 |
+
|
| 20 |
+
print(f"\nMatches ID col : '{match_id_col}'")
|
| 21 |
+
print(f"Deliveries ID col : '{delivery_id_col}'")
|
| 22 |
+
|
| 23 |
+
print(f"\nMatches {match_id_col} nulls : {matches[match_id_col].isna().sum()}")
|
| 24 |
+
print(f"Deliveries {delivery_id_col} nulls : {deliveries[delivery_id_col].isna().sum()}")
|
| 25 |
+
|
| 26 |
+
null_mask = matches[match_id_col].isna()
|
| 27 |
+
print(f"\nRows with null match ID : {null_mask.sum()}")
|
| 28 |
+
|
| 29 |
+
if null_mask.sum() > 0:
|
| 30 |
+
last_valid_id = int(matches[match_id_col].dropna().max())
|
| 31 |
+
new_ids = range(last_valid_id + 1,
|
| 32 |
+
last_valid_id + 1 + null_mask.sum())
|
| 33 |
+
matches.loc[null_mask, match_id_col] = list(new_ids)
|
| 34 |
+
matches[match_id_col] = matches[match_id_col].astype(int)
|
| 35 |
+
print(f"Assigned new IDs : {last_valid_id + 1} → {last_valid_id + null_mask.sum()}")
|
| 36 |
+
else:
|
| 37 |
+
print("No null match IDs — matches.csv is fine.")
|
| 38 |
+
|
| 39 |
+
if match_id_col == "id":
|
| 40 |
+
matches = matches.rename(columns={"id": "match_id"})
|
| 41 |
+
print("Renamed 'id' → 'match_id' in matches.csv")
|
| 42 |
+
match_id_col = "match_id"
|
| 43 |
+
|
| 44 |
+
if delivery_id_col == "id":
|
| 45 |
+
deliveries = deliveries.rename(columns={"id": "match_id"})
|
| 46 |
+
print("Renamed 'id' → 'match_id' in deliveries.csv")
|
| 47 |
+
delivery_id_col = "match_id"
|
| 48 |
+
|
| 49 |
+
valid_ids = set(matches["match_id"].unique())
|
| 50 |
+
delivery_ids = set(deliveries["match_id"].unique())
|
| 51 |
+
orphans = delivery_ids - valid_ids
|
| 52 |
+
|
| 53 |
+
print(f"\nOrphaned delivery match_ids : {len(orphans)}")
|
| 54 |
+
|
| 55 |
+
if orphans:
|
| 56 |
+
print(f"Sample orphan IDs : {list(orphans)[:10]}")
|
| 57 |
+
|
| 58 |
+
new_id_range = set(range(last_valid_id + 1,
|
| 59 |
+
last_valid_id + 1 + null_mask.sum())) \
|
| 60 |
+
if null_mask.sum() > 0 else set()
|
| 61 |
+
|
| 62 |
+
recoverable = orphans & new_id_range
|
| 63 |
+
unrecoverable = orphans - new_id_range
|
| 64 |
+
|
| 65 |
+
print(f" Recoverable (within new ID range) : {len(recoverable)}")
|
| 66 |
+
print(f" Unrecoverable (unknown origin) : {len(unrecoverable)}")
|
| 67 |
+
|
| 68 |
+
if unrecoverable:
|
| 69 |
+
print(f" Dropping {len(unrecoverable)} truly orphaned match_ids from deliveries")
|
| 70 |
+
deliveries = deliveries[
|
| 71 |
+
~deliveries["match_id"].isin(unrecoverable)
|
| 72 |
+
].copy()
|
| 73 |
+
|
| 74 |
+
orphans_after = set(deliveries["match_id"].unique()) - set(matches["match_id"].unique())
|
| 75 |
+
print(f"\nOrphaned deliveries after fix : {len(orphans_after)}")
|
| 76 |
+
|
| 77 |
+
matches.to_csv(RAW / "matches.csv", index=False)
|
| 78 |
+
deliveries.to_csv(RAW / "deliveries.csv", index=False)
|
| 79 |
+
|
| 80 |
+
print("\n=== Saved ===")
|
| 81 |
+
print(f" matches.csv : {matches.shape}")
|
| 82 |
+
print(f" deliveries.csv : {deliveries.shape}")
|
| 83 |
+
print(f" Seasons : {sorted(matches['season'].unique())}")
|
| 84 |
+
|
| 85 |
+
m2 = pd.read_csv(RAW / "matches.csv")
|
| 86 |
+
d2 = pd.read_csv(RAW / "deliveries.csv")
|
| 87 |
+
|
| 88 |
+
print("\n=== Post-save verification ===")
|
| 89 |
+
print(f" matches ID col : {'match_id' if 'match_id' in m2.columns else 'id'}")
|
| 90 |
+
print(f" deliveries ID col : {'match_id' if 'match_id' in d2.columns else 'id'}")
|
| 91 |
+
print(f" match_id nulls : {m2['match_id'].isna().sum() if 'match_id' in m2.columns else d2['id'].isna().sum()}")
|
| 92 |
+
final_orphans = set(d2["match_id" if "match_id" in d2.columns else "id"].unique()) - \
|
| 93 |
+
set(m2["match_id" if "match_id" in m2.columns else "id"].unique())
|
| 94 |
+
print(f" Final orphan count : {len(final_orphans)}")
|
| 95 |
+
|
| 96 |
+
if len(final_orphans) == 0:
|
| 97 |
+
print("\nAll clean. Re-run notebook 02 now.")
|
| 98 |
+
else:
|
| 99 |
+
print(f"\nWARNING — {len(final_orphans)} orphans remain. Share output for further diagnosis.")
|
src/models.py
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import joblib, json
|
| 2 |
+
import pandas as pd
|
| 3 |
+
import numpy as np
|
| 4 |
+
from pathlib import Path
|
| 5 |
+
import warnings
|
| 6 |
+
warnings.filterwarnings("ignore", category=UserWarning, module="sklearn")
|
| 7 |
+
|
| 8 |
+
# ── Paths ─────────────────────────────────────────────────────────────
|
| 9 |
+
_BASE = Path(__file__).parent.parent # project root
|
| 10 |
+
MODELS = _BASE / "data" / "processed" / "models"
|
| 11 |
+
DATA = _BASE / "data" / "processed"
|
| 12 |
+
|
| 13 |
+
# ── Load artefacts once at import time ────────────────────────────────
|
| 14 |
+
_wp_model = joblib.load(MODELS / "win_prob_model.pkl")
|
| 15 |
+
_auc_model = joblib.load(MODELS / "auction_model.pkl")
|
| 16 |
+
|
| 17 |
+
with open(MODELS / "win_prob_features.json") as f: _wp_features = json.load(f)
|
| 18 |
+
with open(MODELS / "auction_features.json") as f: _auc_features = json.load(f)
|
| 19 |
+
|
| 20 |
+
_matches = pd.read_csv(DATA / "matches_clean.csv", parse_dates=["date"])
|
| 21 |
+
_deliveries = pd.read_csv(DATA / "deliveries_clean.csv", low_memory=False)
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
# ── Internal helpers ──────────────────────────────────────────────────
|
| 25 |
+
|
| 26 |
+
def _recent_form(team: str, past: pd.DataFrame, n: int = 5) -> float:
|
| 27 |
+
t = past[(past["team1"]==team)|(past["team2"]==team)].tail(n)
|
| 28 |
+
if len(t) == 0:
|
| 29 |
+
return 0.5
|
| 30 |
+
return round((t["winner"]==team).sum() / len(t), 4)
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
def _h2h_win_rate(team_a: str, team_b: str, past: pd.DataFrame) -> tuple:
|
| 34 |
+
h = past[
|
| 35 |
+
((past["team1"]==team_a)&(past["team2"]==team_b))|
|
| 36 |
+
((past["team1"]==team_b)&(past["team2"]==team_a))
|
| 37 |
+
]
|
| 38 |
+
if len(h) == 0:
|
| 39 |
+
return 0.5, 0
|
| 40 |
+
return round((h["winner"]==team_a).sum() / len(h), 4), len(h)
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
def _venue_win_rate(team: str, venue: str, past: pd.DataFrame) -> float:
|
| 44 |
+
v = past[past["venue"]==venue]
|
| 45 |
+
vt = v[(v["team1"]==team)|(v["team2"]==team)]
|
| 46 |
+
if len(vt) == 0:
|
| 47 |
+
return 0.5
|
| 48 |
+
return round((vt["winner"]==team).sum() / len(vt), 4)
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
def _team_avg_score(team: str, past_ids: list) -> float:
|
| 52 |
+
d = _deliveries[_deliveries["match_id"].isin(past_ids)]
|
| 53 |
+
if d.empty:
|
| 54 |
+
return 150.0
|
| 55 |
+
scores = d[d["batting_team"]==team].groupby("match_id")["total_runs"].sum()
|
| 56 |
+
return round(scores.mean() if len(scores) > 0 else 150.0, 2)
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
def _team_avg_wickets(team: str, past_ids: list) -> float:
|
| 60 |
+
d = _deliveries[_deliveries["match_id"].isin(past_ids)]
|
| 61 |
+
if d.empty:
|
| 62 |
+
return 7.0
|
| 63 |
+
wkts = d[d["bowling_team"]==team].groupby("match_id")["is_wicket"].sum()
|
| 64 |
+
return round(wkts.mean() if len(wkts) > 0 else 7.0, 2)
|
| 65 |
+
|
| 66 |
+
|
| 67 |
+
def _form_std(team: str, past: pd.DataFrame, n: int = 8) -> float:
|
| 68 |
+
t = past[(past["team1"]==team)|(past["team2"]==team)].tail(n)
|
| 69 |
+
if len(t) < 3:
|
| 70 |
+
return 0.3
|
| 71 |
+
return round(float(np.std((t["winner"]==team).astype(int).tolist())), 4)
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
# ── Public API ────────────────────────────────────────────────────────
|
| 75 |
+
|
| 76 |
+
def get_available_teams() -> list:
|
| 77 |
+
"""Return sorted list of all IPL team names in the dataset."""
|
| 78 |
+
all_teams = pd.concat([
|
| 79 |
+
_matches["team1"], _matches["team2"]
|
| 80 |
+
]).dropna().unique()
|
| 81 |
+
return sorted(all_teams.tolist())
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
def get_available_venues() -> list:
|
| 85 |
+
"""Return sorted list of all venues in the dataset."""
|
| 86 |
+
return sorted(_matches["venue"].dropna().unique().tolist())
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
def predict_winner(team1: str, team2: str, venue: str,
|
| 90 |
+
toss_winner: str, toss_decision: str,
|
| 91 |
+
season: int = None) -> dict:
|
| 92 |
+
"""
|
| 93 |
+
Predict win probability for a match before it starts.
|
| 94 |
+
|
| 95 |
+
team_A is always the toss winner — consistent with how the model
|
| 96 |
+
was trained (toss_winner_won as target).
|
| 97 |
+
|
| 98 |
+
Returns
|
| 99 |
+
-------
|
| 100 |
+
dict with keys:
|
| 101 |
+
toss_winner : str
|
| 102 |
+
other_team : str
|
| 103 |
+
toss_winner_prob : float (0–100)
|
| 104 |
+
other_team_prob : float (0–100)
|
| 105 |
+
predicted_winner : str
|
| 106 |
+
key_factors : dict
|
| 107 |
+
"""
|
| 108 |
+
|
| 109 |
+
|
| 110 |
+
past = _matches[
|
| 111 |
+
_matches["winner"].notna() &
|
| 112 |
+
(_matches["winner"] != "No Result")
|
| 113 |
+
].copy()
|
| 114 |
+
past_ids = past["match_id"].tolist()
|
| 115 |
+
|
| 116 |
+
team_A = toss_winner
|
| 117 |
+
team_B = team2 if toss_winner == team1 else team1
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
def _venue_exp(team):
|
| 121 |
+
v = past[past["venue"] == venue]
|
| 122 |
+
vt = v[(v["team1"] == team) | (v["team2"] == team)]
|
| 123 |
+
return len(vt)
|
| 124 |
+
|
| 125 |
+
A_venue_exp = _venue_exp(team_A)
|
| 126 |
+
B_venue_exp = _venue_exp(team_B)
|
| 127 |
+
venue_exp_diff = A_venue_exp - B_venue_exp
|
| 128 |
+
|
| 129 |
+
A_form5 = _recent_form(team_A, past, 5)
|
| 130 |
+
B_form5 = _recent_form(team_B, past, 5)
|
| 131 |
+
A_form10 = _recent_form(team_A, past, 10)
|
| 132 |
+
B_form10 = _recent_form(team_B, past, 10)
|
| 133 |
+
A_overall = _recent_form(team_A, past, len(past))
|
| 134 |
+
B_overall = _recent_form(team_B, past, len(past))
|
| 135 |
+
A_venue = _venue_win_rate(team_A, venue, past)
|
| 136 |
+
B_venue = _venue_win_rate(team_B, venue, past)
|
| 137 |
+
A_score = _team_avg_score(team_A, past_ids)
|
| 138 |
+
B_score = _team_avg_score(team_B, past_ids)
|
| 139 |
+
A_wkts = _team_avg_wickets(team_A, past_ids)
|
| 140 |
+
B_wkts = _team_avg_wickets(team_B, past_ids)
|
| 141 |
+
h2h_wr, h2h_n = _h2h_win_rate(team_A, team_B, past)
|
| 142 |
+
A_cons = _form_std(team_A, past)
|
| 143 |
+
B_cons = _form_std(team_B, past)
|
| 144 |
+
|
| 145 |
+
v_past = past[past["venue"] == venue]
|
| 146 |
+
if len(v_past) >= 5 and "batting_first_won" in v_past.columns:
|
| 147 |
+
vbfwr = round(
|
| 148 |
+
(v_past["batting_first_won"]==1).sum() / len(v_past), 4
|
| 149 |
+
)
|
| 150 |
+
else:
|
| 151 |
+
vbfwr = 0.5
|
| 152 |
+
|
| 153 |
+
toss_correct = int(
|
| 154 |
+
(toss_decision == "bat" and vbfwr >= 0.5) or
|
| 155 |
+
(toss_decision == "field" and vbfwr < 0.5)
|
| 156 |
+
)
|
| 157 |
+
|
| 158 |
+
features = {
|
| 159 |
+
"A_form5" : A_form5,
|
| 160 |
+
"B_form5" : B_form5,
|
| 161 |
+
"form_diff5" : round(A_form5 - B_form5, 4),
|
| 162 |
+
"A_form10" : A_form10,
|
| 163 |
+
"B_form10" : B_form10,
|
| 164 |
+
"form_diff10" : round(A_form10 - B_form10, 4),
|
| 165 |
+
"A_overall_wr" : A_overall,
|
| 166 |
+
"B_overall_wr" : B_overall,
|
| 167 |
+
"overall_wr_diff" : round(A_overall - B_overall, 4),
|
| 168 |
+
"A_venue_wr" : A_venue,
|
| 169 |
+
"B_venue_wr" : B_venue,
|
| 170 |
+
"venue_wr_diff" : round(A_venue - B_venue, 4),
|
| 171 |
+
"A_venue_exp" : A_venue_exp,
|
| 172 |
+
"B_venue_exp" : B_venue_exp,
|
| 173 |
+
"venue_exp_diff" : venue_exp_diff,
|
| 174 |
+
"venue_bat_first_wr": vbfwr,
|
| 175 |
+
"A_avg_score" : A_score,
|
| 176 |
+
"B_avg_score" : B_score,
|
| 177 |
+
"score_diff" : round(A_score - B_score, 2),
|
| 178 |
+
"A_avg_wickets" : A_wkts,
|
| 179 |
+
"B_avg_wickets" : B_wkts,
|
| 180 |
+
"wicket_diff" : round(A_wkts - B_wkts, 2),
|
| 181 |
+
"h2h_wr_A" : h2h_wr,
|
| 182 |
+
"h2h_n" : h2h_n,
|
| 183 |
+
"toss_decision_bat" : 1 if toss_decision == "bat" else 0,
|
| 184 |
+
"toss_correct" : toss_correct,
|
| 185 |
+
"A_consistency" : A_cons,
|
| 186 |
+
"B_consistency" : B_cons,
|
| 187 |
+
"season_stage" : 1,
|
| 188 |
+
}
|
| 189 |
+
|
| 190 |
+
df = pd.DataFrame([features])[_wp_features]
|
| 191 |
+
prob = _wp_model.predict_proba(df)[0]
|
| 192 |
+
a_prob = round(float(prob[1]) * 100, 1)
|
| 193 |
+
b_prob = round(100 - a_prob, 1)
|
| 194 |
+
|
| 195 |
+
return {
|
| 196 |
+
"toss_winner" : team_A,
|
| 197 |
+
"other_team" : team_B,
|
| 198 |
+
"toss_winner_prob": a_prob,
|
| 199 |
+
"other_team_prob" : b_prob,
|
| 200 |
+
"predicted_winner": team_A if a_prob >= 50 else team_B,
|
| 201 |
+
"key_factors" : {
|
| 202 |
+
"form_edge" : team_A if A_form5 > B_form5 else team_B,
|
| 203 |
+
"venue_edge": team_A if A_venue > B_venue else team_B,
|
| 204 |
+
"h2h_edge" : team_A if h2h_wr > 0.5 else team_B,
|
| 205 |
+
"score_edge": team_A if A_score > B_score else team_B,
|
| 206 |
+
},
|
| 207 |
+
}
|
| 208 |
+
|
| 209 |
+
|
| 210 |
+
def predict_auction_value(player_stats: dict) -> dict:
|
| 211 |
+
"""
|
| 212 |
+
Predict IPL auction price given a player stats dictionary.
|
| 213 |
+
|
| 214 |
+
Returns
|
| 215 |
+
-------
|
| 216 |
+
dict with keys:
|
| 217 |
+
predicted_price_cr : float
|
| 218 |
+
tier : str
|
| 219 |
+
"""
|
| 220 |
+
defaults = {
|
| 221 |
+
"total_runs":0, "batting_average":0, "strike_rate":0,
|
| 222 |
+
"hundreds":0, "fifties":0, "boundary_rate":0,
|
| 223 |
+
"sr_powerplay":110, "sr_death":120, "dot_ball_pct_bat":30,
|
| 224 |
+
"wickets":0, "economy_rate":10.5, "bowling_average":50,
|
| 225 |
+
"bowling_sr":40, "dot_ball_pct_bowl":30, "economy_death":11,
|
| 226 |
+
"economy_powerplay":9, "three_wicket_haul":0,
|
| 227 |
+
"matches_batted":0, "matches_bowled":0, "role":0,
|
| 228 |
+
}
|
| 229 |
+
defaults.update(player_stats)
|
| 230 |
+
|
| 231 |
+
df = pd.DataFrame([defaults])[_auc_features]
|
| 232 |
+
price = round(float(_auc_model.predict(df)[0]), 2)
|
| 233 |
+
price = max(0.2, price)
|
| 234 |
+
|
| 235 |
+
if price >= 12: tier = "Icon (12 Cr+)"
|
| 236 |
+
elif price >= 7: tier = "Premium (7–12 Cr)"
|
| 237 |
+
elif price >= 3: tier = "Standard (3–7 Cr)"
|
| 238 |
+
else: tier = "Emerging (< 3 Cr)"
|
| 239 |
+
|
| 240 |
+
return {"predicted_price_cr": price, "tier": tier}
|
src/update_dataset.py
ADDED
|
@@ -0,0 +1,399 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# src/update_dataset.py
|
| 2 |
+
import requests, zipfile, io, datetime, json
|
| 3 |
+
import pandas as pd
|
| 4 |
+
import numpy as np
|
| 5 |
+
from pathlib import Path
|
| 6 |
+
|
| 7 |
+
RAW = Path("E:/ipl-analytics/data/raw")
|
| 8 |
+
|
| 9 |
+
SLASH_SEASON_MAP = {
|
| 10 |
+
"2007/08" : 2008,
|
| 11 |
+
"2009/10" : 2010,
|
| 12 |
+
"2020/21" : 2020,
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
def normalize_season(val) -> int:
|
| 16 |
+
val = str(val).strip()
|
| 17 |
+
if val in SLASH_SEASON_MAP:
|
| 18 |
+
return SLASH_SEASON_MAP[val]
|
| 19 |
+
if "/" in val:
|
| 20 |
+
parts = val.split("/")
|
| 21 |
+
prefix = parts[0].strip()[:2]
|
| 22 |
+
suffix = parts[1].strip()
|
| 23 |
+
return int(prefix + suffix)
|
| 24 |
+
return int(float(val.replace("IPL","").replace("Season","").strip()))
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
def safe_int(val, default: int = 0) -> int:
|
| 28 |
+
try:
|
| 29 |
+
if val is None:
|
| 30 |
+
return default
|
| 31 |
+
if isinstance(val, float) and np.isnan(val):
|
| 32 |
+
return default
|
| 33 |
+
return int(float(val))
|
| 34 |
+
except (ValueError, TypeError):
|
| 35 |
+
return default
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
def download_cricsheet_json() -> Path:
|
| 39 |
+
url = "https://cricsheet.org/downloads/ipl_json.zip"
|
| 40 |
+
print("Fetching Cricsheet IPL JSON data...")
|
| 41 |
+
r = requests.get(url, timeout=180)
|
| 42 |
+
r.raise_for_status()
|
| 43 |
+
out = RAW / "cricsheet_ipl_json"
|
| 44 |
+
out.mkdir(parents=True, exist_ok=True)
|
| 45 |
+
zipfile.ZipFile(io.BytesIO(r.content)).extractall(out)
|
| 46 |
+
json_files = list(out.glob("*.json"))
|
| 47 |
+
print(f" {len(json_files)} JSON match files extracted.")
|
| 48 |
+
return out
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
def get_existing_seasons(matches_path: Path) -> set:
|
| 52 |
+
df = pd.read_csv(matches_path, usecols=["season"])
|
| 53 |
+
return set(df["season"].apply(normalize_season).unique())
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
def parse_json_match(filepath: Path, match_id: int) -> tuple:
|
| 57 |
+
try:
|
| 58 |
+
with open(filepath, encoding="utf-8") as f:
|
| 59 |
+
data = json.load(f)
|
| 60 |
+
except Exception:
|
| 61 |
+
return None, []
|
| 62 |
+
|
| 63 |
+
info = data.get("info", {})
|
| 64 |
+
|
| 65 |
+
# ── Season ────────────────────────────────────────────────────────
|
| 66 |
+
try:
|
| 67 |
+
season = normalize_season(info.get("season", ""))
|
| 68 |
+
except Exception:
|
| 69 |
+
return None, []
|
| 70 |
+
|
| 71 |
+
# ── Teams ─────────────────────────────────────────────────────────
|
| 72 |
+
teams = info.get("teams", [])
|
| 73 |
+
if len(teams) < 2:
|
| 74 |
+
return None, []
|
| 75 |
+
team1 = teams[0]
|
| 76 |
+
team2 = teams[1]
|
| 77 |
+
|
| 78 |
+
# ── Date ──────────────────────────────────────────────────────────
|
| 79 |
+
dates = info.get("dates", [])
|
| 80 |
+
raw_date = dates[0] if dates else np.nan
|
| 81 |
+
parsed_date = pd.to_datetime(raw_date, errors="coerce")
|
| 82 |
+
day_of_week = parsed_date.day_name() if pd.notna(parsed_date) else np.nan
|
| 83 |
+
month = int(parsed_date.month) if pd.notna(parsed_date) else np.nan
|
| 84 |
+
|
| 85 |
+
# ── Toss — directly from info["toss"] dict ────────────────────────
|
| 86 |
+
toss = info.get("toss", {})
|
| 87 |
+
toss_winner = toss.get("winner", np.nan)
|
| 88 |
+
toss_decision = toss.get("decision", np.nan)
|
| 89 |
+
|
| 90 |
+
# ── Outcome ───────────────────────────────────────────────────────
|
| 91 |
+
outcome = info.get("outcome", {})
|
| 92 |
+
winner = outcome.get("winner", np.nan)
|
| 93 |
+
is_no_result = 0
|
| 94 |
+
|
| 95 |
+
if pd.isna(winner) or winner == "":
|
| 96 |
+
if outcome.get("result") == "no result" or "result" in outcome:
|
| 97 |
+
winner = "No Result"
|
| 98 |
+
is_no_result = 1
|
| 99 |
+
else:
|
| 100 |
+
winner = "No Result"
|
| 101 |
+
|
| 102 |
+
by = outcome.get("by", {})
|
| 103 |
+
result_margin = 0
|
| 104 |
+
result_type = "normal"
|
| 105 |
+
if "runs" in by:
|
| 106 |
+
result_margin = safe_int(by["runs"])
|
| 107 |
+
result_type = "runs"
|
| 108 |
+
elif "wickets" in by:
|
| 109 |
+
result_margin = safe_int(by["wickets"])
|
| 110 |
+
result_type = "wickets"
|
| 111 |
+
|
| 112 |
+
# ── Player of match ───────────────────────────────────────────────
|
| 113 |
+
pom_list = info.get("player_of_match", [])
|
| 114 |
+
player_of_match = pom_list[0] if pom_list else np.nan
|
| 115 |
+
|
| 116 |
+
# ── Venue / city ──────────────────────────────────────────────────
|
| 117 |
+
venue = info.get("venue", np.nan)
|
| 118 |
+
city = info.get("city", np.nan)
|
| 119 |
+
|
| 120 |
+
match_row = {
|
| 121 |
+
"match_id" : match_id,
|
| 122 |
+
"season" : season,
|
| 123 |
+
"date" : raw_date,
|
| 124 |
+
"team1" : team1,
|
| 125 |
+
"team2" : team2,
|
| 126 |
+
"toss_winner" : toss_winner,
|
| 127 |
+
"toss_decision" : toss_decision,
|
| 128 |
+
"winner" : winner,
|
| 129 |
+
"player_of_match" : player_of_match,
|
| 130 |
+
"venue" : venue,
|
| 131 |
+
"result" : result_type,
|
| 132 |
+
"result_margin" : result_margin,
|
| 133 |
+
"method" : info.get("method", np.nan),
|
| 134 |
+
"city" : city,
|
| 135 |
+
"is_no_result" : is_no_result,
|
| 136 |
+
"result_type" : result_type,
|
| 137 |
+
"day_of_week" : day_of_week,
|
| 138 |
+
"month" : month,
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
+
# ── Deliveries ────────────────────────────────────────────────────
|
| 142 |
+
delivery_rows = []
|
| 143 |
+
|
| 144 |
+
for inning_idx, inning in enumerate(data.get("innings", []), start=1):
|
| 145 |
+
batting_team = inning.get("team", np.nan)
|
| 146 |
+
bowling_team = team2 if batting_team == team1 else team1
|
| 147 |
+
|
| 148 |
+
for over_data in inning.get("overs", []):
|
| 149 |
+
over_num = safe_int(over_data.get("over", 0)) + 1
|
| 150 |
+
|
| 151 |
+
if over_num <= 6: phase = "powerplay"
|
| 152 |
+
elif over_num <= 15: phase = "middle"
|
| 153 |
+
else: phase = "death"
|
| 154 |
+
|
| 155 |
+
for ball_idx, delivery in enumerate(
|
| 156 |
+
over_data.get("deliveries", []), start=1
|
| 157 |
+
):
|
| 158 |
+
runs = delivery.get("runs", {})
|
| 159 |
+
bat_runs = safe_int(runs.get("batter", 0))
|
| 160 |
+
extra_runs = safe_int(runs.get("extras", 0))
|
| 161 |
+
total_runs = safe_int(runs.get("total", 0))
|
| 162 |
+
|
| 163 |
+
extras = delivery.get("extras", {})
|
| 164 |
+
wide_runs = safe_int(extras.get("wides", 0))
|
| 165 |
+
noball = safe_int(extras.get("noballs", 0))
|
| 166 |
+
bye_runs = safe_int(extras.get("byes", 0))
|
| 167 |
+
legbye_runs = safe_int(extras.get("legbyes", 0))
|
| 168 |
+
is_legal = 1 if (wide_runs == 0 and noball == 0) else 0
|
| 169 |
+
|
| 170 |
+
wickets = delivery.get("wickets", [])
|
| 171 |
+
is_wicket = 1 if wickets else 0
|
| 172 |
+
wicket_type = np.nan
|
| 173 |
+
player_dismissed = np.nan
|
| 174 |
+
fielder = np.nan
|
| 175 |
+
|
| 176 |
+
if wickets:
|
| 177 |
+
w = wickets[0]
|
| 178 |
+
wicket_type = w.get("kind", np.nan)
|
| 179 |
+
player_dismissed = w.get("player_out", np.nan)
|
| 180 |
+
fielders = w.get("fielders", [])
|
| 181 |
+
fielder = (fielders[0].get("name", np.nan)
|
| 182 |
+
if fielders else np.nan)
|
| 183 |
+
|
| 184 |
+
delivery_rows.append({
|
| 185 |
+
"match_id" : match_id,
|
| 186 |
+
"inning" : inning_idx,
|
| 187 |
+
"batting_team" : batting_team,
|
| 188 |
+
"bowling_team" : bowling_team,
|
| 189 |
+
"over" : over_num,
|
| 190 |
+
"ball" : ball_idx,
|
| 191 |
+
"batter" : delivery.get("batter", np.nan),
|
| 192 |
+
"non_striker" : delivery.get("non_striker", np.nan),
|
| 193 |
+
"bowler" : delivery.get("bowler", np.nan),
|
| 194 |
+
"wide_runs" : wide_runs,
|
| 195 |
+
"bye_runs" : bye_runs,
|
| 196 |
+
"legbye_runs" : legbye_runs,
|
| 197 |
+
"noball_runs" : noball,
|
| 198 |
+
"batsman_runs" : bat_runs,
|
| 199 |
+
"extra_runs" : extra_runs,
|
| 200 |
+
"total_runs" : total_runs,
|
| 201 |
+
"player_dismissed" : player_dismissed,
|
| 202 |
+
"dismissal_kind" : wicket_type,
|
| 203 |
+
"fielder" : fielder,
|
| 204 |
+
"extras_type" : np.nan,
|
| 205 |
+
"is_wicket" : is_wicket,
|
| 206 |
+
"is_four" : 1 if bat_runs == 4 else 0,
|
| 207 |
+
"is_six" : 1 if bat_runs == 6 else 0,
|
| 208 |
+
"is_dot_ball" : 1 if (bat_runs == 0 and
|
| 209 |
+
wide_runs == 0 and
|
| 210 |
+
noball == 0) else 0,
|
| 211 |
+
"is_legal_delivery": is_legal,
|
| 212 |
+
"over_phase" : phase,
|
| 213 |
+
})
|
| 214 |
+
|
| 215 |
+
return match_row, delivery_rows
|
| 216 |
+
|
| 217 |
+
|
| 218 |
+
def build_dataframes_from_json(json_dir: Path,
|
| 219 |
+
seasons_to_add: list,
|
| 220 |
+
start_match_id: int) -> tuple:
|
| 221 |
+
json_files = sorted(json_dir.glob("*.json"))
|
| 222 |
+
print(f"Scanning {len(json_files)} JSON files "
|
| 223 |
+
f"for seasons {seasons_to_add}...")
|
| 224 |
+
|
| 225 |
+
match_rows = []
|
| 226 |
+
delivery_rows = []
|
| 227 |
+
next_id = start_match_id
|
| 228 |
+
skipped = 0
|
| 229 |
+
|
| 230 |
+
for fp in json_files:
|
| 231 |
+
try:
|
| 232 |
+
with open(fp, encoding="utf-8") as f:
|
| 233 |
+
peek = json.load(f)
|
| 234 |
+
season = normalize_season(
|
| 235 |
+
peek.get("info", {}).get("season", "")
|
| 236 |
+
)
|
| 237 |
+
except Exception:
|
| 238 |
+
skipped += 1
|
| 239 |
+
continue
|
| 240 |
+
|
| 241 |
+
if season not in seasons_to_add:
|
| 242 |
+
continue
|
| 243 |
+
|
| 244 |
+
match_row, deliveries = parse_json_match(fp, next_id)
|
| 245 |
+
if match_row is None:
|
| 246 |
+
skipped += 1
|
| 247 |
+
continue
|
| 248 |
+
|
| 249 |
+
match_rows.append(match_row)
|
| 250 |
+
delivery_rows.extend(deliveries)
|
| 251 |
+
next_id += 1
|
| 252 |
+
|
| 253 |
+
new_matches = pd.DataFrame(match_rows)
|
| 254 |
+
new_deliveries = pd.DataFrame(delivery_rows)
|
| 255 |
+
|
| 256 |
+
if not new_matches.empty:
|
| 257 |
+
print(f" Parsed : {len(new_matches)} matches, "
|
| 258 |
+
f"{len(new_deliveries):,} deliveries")
|
| 259 |
+
print(f" toss_winner nulls : "
|
| 260 |
+
f"{new_matches['toss_winner'].isna().sum()}")
|
| 261 |
+
print(f" winner nulls : "
|
| 262 |
+
f"{new_matches['winner'].isna().sum()}")
|
| 263 |
+
print(f" Skipped : {skipped} files")
|
| 264 |
+
|
| 265 |
+
return new_matches, new_deliveries
|
| 266 |
+
|
| 267 |
+
|
| 268 |
+
def append_new_seasons(seasons_to_add: list = None,
|
| 269 |
+
force: list = None):
|
| 270 |
+
matches_path = RAW / "matches.csv"
|
| 271 |
+
deliveries_path = RAW / "deliveries.csv"
|
| 272 |
+
|
| 273 |
+
existing_matches = pd.read_csv(matches_path)
|
| 274 |
+
existing_deliveries = pd.read_csv(
|
| 275 |
+
deliveries_path, low_memory=False
|
| 276 |
+
)
|
| 277 |
+
|
| 278 |
+
# ── Normalise ID column ────────────────────────────────────────────
|
| 279 |
+
if "id" in existing_matches.columns \
|
| 280 |
+
and "match_id" not in existing_matches.columns:
|
| 281 |
+
existing_matches = existing_matches.rename(
|
| 282 |
+
columns={"id": "match_id"}
|
| 283 |
+
)
|
| 284 |
+
existing_matches.to_csv(matches_path, index=False)
|
| 285 |
+
print("Renamed 'id' → 'match_id' in matches.csv")
|
| 286 |
+
|
| 287 |
+
if "id" in existing_deliveries.columns \
|
| 288 |
+
and "match_id" not in existing_deliveries.columns:
|
| 289 |
+
existing_deliveries = existing_deliveries.rename(
|
| 290 |
+
columns={"id": "match_id"}
|
| 291 |
+
)
|
| 292 |
+
existing_deliveries.to_csv(deliveries_path, index=False)
|
| 293 |
+
print("Renamed 'id' → 'match_id' in deliveries.csv")
|
| 294 |
+
|
| 295 |
+
existing_seasons = get_existing_seasons(matches_path)
|
| 296 |
+
print(f"Existing seasons : {sorted(existing_seasons)}")
|
| 297 |
+
|
| 298 |
+
current_year = datetime.date.today().year
|
| 299 |
+
if seasons_to_add is None:
|
| 300 |
+
seasons_to_add = list(range(2025, current_year + 1))
|
| 301 |
+
|
| 302 |
+
# ── Force refresh ──────────────────────────────────────────────────
|
| 303 |
+
if force:
|
| 304 |
+
print(f"Force-refreshing : {force}")
|
| 305 |
+
existing_matches["_season_norm"] = (
|
| 306 |
+
existing_matches["season"].apply(normalize_season)
|
| 307 |
+
)
|
| 308 |
+
forced_match_ids = set(
|
| 309 |
+
existing_matches.loc[
|
| 310 |
+
existing_matches["_season_norm"].isin(force),
|
| 311 |
+
"match_id"
|
| 312 |
+
].tolist()
|
| 313 |
+
)
|
| 314 |
+
existing_matches = existing_matches[
|
| 315 |
+
~existing_matches["_season_norm"].isin(force)
|
| 316 |
+
].drop(columns=["_season_norm"]).copy()
|
| 317 |
+
|
| 318 |
+
existing_deliveries = existing_deliveries[
|
| 319 |
+
~existing_deliveries["match_id"].isin(forced_match_ids)
|
| 320 |
+
].copy()
|
| 321 |
+
|
| 322 |
+
existing_seasons -= set(force)
|
| 323 |
+
print(f" Removed {len(forced_match_ids)} matches "
|
| 324 |
+
f"and their deliveries.")
|
| 325 |
+
|
| 326 |
+
seasons_to_add = [
|
| 327 |
+
s for s in seasons_to_add if s not in existing_seasons
|
| 328 |
+
]
|
| 329 |
+
|
| 330 |
+
if not seasons_to_add:
|
| 331 |
+
print("All requested seasons already present.")
|
| 332 |
+
print("To refresh: python update_dataset.py 2026 --force")
|
| 333 |
+
return
|
| 334 |
+
|
| 335 |
+
print(f"Seasons to add : {seasons_to_add}")
|
| 336 |
+
|
| 337 |
+
json_dir = download_cricsheet_json()
|
| 338 |
+
next_id = int(existing_matches["match_id"].max()) + 1
|
| 339 |
+
|
| 340 |
+
new_matches, new_deliveries = build_dataframes_from_json(
|
| 341 |
+
json_dir, seasons_to_add, next_id
|
| 342 |
+
)
|
| 343 |
+
|
| 344 |
+
if new_matches.empty:
|
| 345 |
+
print(f"No matches found for {seasons_to_add}.")
|
| 346 |
+
return
|
| 347 |
+
|
| 348 |
+
# ── Align columns ──────────────────────────────────────────────────
|
| 349 |
+
for col in existing_matches.columns:
|
| 350 |
+
if col not in new_matches.columns:
|
| 351 |
+
new_matches[col] = np.nan
|
| 352 |
+
new_matches = new_matches[existing_matches.columns]
|
| 353 |
+
|
| 354 |
+
for col in existing_deliveries.columns:
|
| 355 |
+
if col not in new_deliveries.columns:
|
| 356 |
+
new_deliveries[col] = np.nan
|
| 357 |
+
new_deliveries = new_deliveries[existing_deliveries.columns]
|
| 358 |
+
|
| 359 |
+
assert new_matches["match_id"].notna().all(), \
|
| 360 |
+
"Null match_id in new matches after alignment — abort"
|
| 361 |
+
|
| 362 |
+
# ── Concat and save ───────────────────────────────────────────────
|
| 363 |
+
combined_matches = pd.concat(
|
| 364 |
+
[existing_matches, new_matches], ignore_index=True
|
| 365 |
+
)
|
| 366 |
+
combined_deliveries = pd.concat(
|
| 367 |
+
[existing_deliveries, new_deliveries], ignore_index=True
|
| 368 |
+
)
|
| 369 |
+
|
| 370 |
+
combined_matches.to_csv(matches_path, index=False)
|
| 371 |
+
combined_deliveries.to_csv(deliveries_path, index=False)
|
| 372 |
+
|
| 373 |
+
print(f"\nDone:")
|
| 374 |
+
print(f" matches.csv : {len(combined_matches):,} rows "
|
| 375 |
+
f"(added {len(new_matches)})")
|
| 376 |
+
print(f" deliveries.csv : {len(combined_deliveries):,} rows "
|
| 377 |
+
f"(added {len(new_deliveries):,})")
|
| 378 |
+
print(f" New seasons : "
|
| 379 |
+
f"{sorted(new_matches['season'].unique())}")
|
| 380 |
+
print(f" toss_winner nulls : "
|
| 381 |
+
f"{new_matches['toss_winner'].isna().sum()}")
|
| 382 |
+
print(f" winner nulls : "
|
| 383 |
+
f"{new_matches['winner'].isna().sum()}")
|
| 384 |
+
|
| 385 |
+
|
| 386 |
+
# ── CLI ───────────────────────────────────────────────────────────────
|
| 387 |
+
if __name__ == "__main__":
|
| 388 |
+
import sys
|
| 389 |
+
|
| 390 |
+
args = [a for a in sys.argv[1:] if not a.startswith("--")]
|
| 391 |
+
flags = [a for a in sys.argv[1:] if a.startswith("--")]
|
| 392 |
+
|
| 393 |
+
force_refresh = [int(a) for a in args] if "--force" in flags else None
|
| 394 |
+
seasons = [int(a) for a in args] if "--force" not in flags else None
|
| 395 |
+
|
| 396 |
+
append_new_seasons(
|
| 397 |
+
seasons_to_add=seasons,
|
| 398 |
+
force=force_refresh,
|
| 399 |
+
)
|
waitress_server.py
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import sys
|
| 2 |
+
from pathlib import Path
|
| 3 |
+
|
| 4 |
+
ROOT = Path(__file__).parent
|
| 5 |
+
DASHBOARD = ROOT / "dashboard"
|
| 6 |
+
sys.path.insert(0, str(ROOT))
|
| 7 |
+
sys.path.insert(0, str(DASHBOARD))
|
| 8 |
+
|
| 9 |
+
from waitress import serve
|
| 10 |
+
from dashboard.app import server
|
| 11 |
+
|
| 12 |
+
if __name__ == "__main__":
|
| 13 |
+
print("Starting IPL Analytics Platform...")
|
| 14 |
+
print("Open http://0.0.0.0:8050 in your browser")
|
| 15 |
+
serve(server, host="0.0.0.0", port=8050, threads=4)
|