├── download (2).png
├── Progressive Passing Plot
├── output.png
├── analysis.csv
└── Progressive_Passing_Fullbacks.ipynb
├── README.md
├── LICENSE
└── radar.py
/download (2).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AIAnytime/Football-Analytics/main/download (2).png
--------------------------------------------------------------------------------
/Progressive Passing Plot/output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AIAnytime/Football-Analytics/main/Progressive Passing Plot/output.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Football-Analytics
2 | I am creating a new repository that will have all the codes and explanation regrading football data analytics. The repo will be updated every week with new analysis on various datasets. It will include basic EDA, Plotting, ML Modelling, and few end to end projects.
3 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Sonu Kumar
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/radar.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 | import matplotlib.pyplot as plt
3 | from soccerplots.radar_chart import Radar
4 |
5 | data = pd.read_csv("/home/sonu/Downloads/fol/radars.csv")
6 |
7 |
8 | data['Player'] = data['Player'].str.split('\\',expand=True)[0]
9 |
10 | data.Player.unique()
11 |
12 | data = data[(data['Player']=='Bruno Fernandes') | (data['Player']=='İlkay Gündoğan')].reset_index()
13 |
14 | data = data.drop(['index','Rk','Nation','Pos','Squad','Age','Born','90s','FK','PK','PKatt','Matches'],axis=1)
15 |
16 | params = list(data.columns)
17 | params = params[1:]
18 |
19 | #add ranges to list of tuple pairs
20 | ranges = []
21 | a_values = []
22 | b_values = []
23 |
24 | for x in params:
25 | a = min(data[params][x])
26 | a = a - (a*.25)
27 |
28 | b = max(data[params][x])
29 | b = b + (b*.25)
30 |
31 | ranges.append((a,b))
32 |
33 | for x in range(len(data['Player'])):
34 | if data['Player'][x] == 'Bruno Fernandes':
35 | a_values = data.iloc[x].values.tolist()
36 | if data['Player'][x] == 'İlkay Gündoğan':
37 | b_values = data.iloc[x].values.tolist()
38 |
39 | a_values = a_values[1:]
40 | b_values = b_values[1:]
41 |
42 | values = [a_values,b_values]
43 |
44 |
45 |
46 | ## title
47 | title = dict(
48 | title_name='Bruno Fernandes',
49 | title_color='#F0FFF0',
50 | subtitle_name='Manchester United',
51 | subtitle_color='#D43E2A',
52 | title_name_2='İlkay Gündoğan',
53 | title_color_2='#F0FFF0',
54 | subtitle_name_2='Manchester City',
55 | subtitle_color_2='#C7E0EC',
56 | title_fontsize=20,
57 | subtitle_fontsize=18,
58 | )
59 |
60 | ## endnote
61 | endnote = "Visualization made by: Sonu. All units are in per90"
62 |
63 | radar = Radar(background_color="#121212", patch_color="#28252C", label_color="#F2A365",
64 | range_color="#F0FFF0")
65 |
66 | ## plot radar
67 | fig, ax = radar.plot_radar(ranges=ranges, params=params, values=values,
68 | radar_color=['#D43E2A', '#C7E0EC'],
69 | title=title, endnote=endnote,
70 | alphas=[.75,.6], compare=True)
--------------------------------------------------------------------------------
/Progressive Passing Plot/analysis.csv:
--------------------------------------------------------------------------------
1 | ,index,Player,Pos,Squad,90s,Prog,ProgPer90
2 | 0,0,Patrick van Aanholt,DF,Crystal Palace,12.7,79.0,6.220472440944882
3 | 1,1,Tammy Abraham,FW,Chelsea,10.8,11.0,1.0185185185185184
4 | 2,2,Che Adams,FW,Southampton,19.3,38.0,1.9689119170984455
5 | 3,3,Tosin Adarabioyo,DF,Fulham,19.0,39.0,2.0526315789473686
6 | 4,6,Ola Aina,DF,Fulham,18.7,73.0,3.9037433155080214
7 | 5,7,Rayan Aït Nouri,DF,Wolves,7.7,18.0,2.3376623376623376
8 | 6,8,Semi Ajayi,DF,West Brom,23.0,49.0,2.130434782608696
9 | 7,10,Marc Albrighton,"FW,DF",Leicester City,12.4,52.0,4.193548387096774
10 | 8,11,Thiago Alcántara,MF,Liverpool,9.1,87.0,9.56043956043956
11 | 9,12,Toby Alderweireld,DF,Tottenham,13.9,31.0,2.2302158273381294
12 | 10,14,Trent Alexander-Arnold,DF,Liverpool,20.5,178.0,8.682926829268293
13 | 11,15,Ezgjan Alioski,"DF,MF",Leeds United,15.6,63.0,4.038461538461538
14 | 12,17,Allan,MF,Everton,11.4,26.0,2.280701754385965
15 | 13,19,Miguel Almirón,"MF,FW",Newcastle Utd,16.2,40.0,2.469135802469136
16 | 14,21,Steven Alzate,"MF,DF",Brighton,7.5,24.0,3.2
17 | 15,23,Ethan Ampadu,"DF,MF",Sheffield Utd,15.8,58.0,3.670886075949367
18 | 16,24,Joachim Andersen,DF,Fulham,16.7,54.0,3.2335329341317367
19 | 17,27,Michail Antonio,FW,West Ham,11.9,10.0,0.8403361344537815
20 | 18,29,Stuart Armstrong,MF,Southampton,17.2,56.0,3.255813953488372
21 | 19,31,Pierre-Emerick Aubameyang,FW,Arsenal,18.5,42.0,2.27027027027027
22 | 20,32,Serge Aurier,DF,Tottenham,11.9,40.0,3.361344537815126
23 | 21,34,Jordan Ayew,"FW,MF",Crystal Palace,13.6,28.0,2.058823529411765
24 | 22,35,Luke Ayling,DF,Leeds United,22.8,146.0,6.4035087719298245
25 | 23,36,César Azpilicueta,DF,Chelsea,12.6,57.0,4.523809523809524
26 | 24,38,Fabián Balbuena,DF,West Ham,12.0,27.0,2.25
27 | 25,39,George Baldock,DF,Sheffield Utd,18.5,38.0,2.054054054054054
28 | 26,41,Patrick Bamford,FW,Leeds United,21.8,14.0,0.6422018348623852
29 | 27,43,Ross Barkley,MF,Aston Villa,11.0,44.0,4.0
30 | 28,45,Ashley Barnes,FW,Burnley,13.4,18.0,1.3432835820895521
31 | 29,46,Harvey Barnes,"FW,MF",Leicester City,20.1,58.0,2.8855721393034823
32 | 30,47,Kyle Bartley,DF,West Brom,14.8,14.0,0.9459459459459459
33 | 31,48,Chris Basham,"DF,MF",Sheffield Utd,22.1,52.0,2.352941176470588
34 | 32,49,Michy Batshuayi,FW,Crystal Palace,7.8,9.0,1.153846153846154
35 | 33,50,Jan Bednarek,DF,Southampton,21.9,64.0,2.9223744292237446
36 | 34,52,Héctor Bellerín,DF,Arsenal,20.2,74.0,3.6633663366336635
37 | 35,53,Saïd Benrahma,"MF,FW",West Ham,9.5,29.0,3.0526315789473686
38 | 36,55,Christian Benteke,FW,Crystal Palace,8.9,18.0,2.0224719101123596
39 | 37,56,Jóhann Berg Guðmundsson,MF,Burnley,7.9,21.0,2.6582278481012658
40 | 38,57,Sander Berge,MF,Sheffield Utd,11.3,29.0,2.566371681415929
41 | 39,58,Steven Bergwijn,"FW,MF",Tottenham,11.3,14.0,1.238938053097345
42 | 40,61,Ryan Bertrand,DF,Southampton,20.9,73.0,3.4928229665071773
43 | 41,62,Yves Bissouma,MF,Brighton,20.6,77.0,3.7378640776699026
44 | 42,63,Jayden Bogle,DF,Sheffield Utd,7.8,17.0,2.1794871794871797
45 | 43,64,Willy Boly,DF,Wolves,16.0,33.0,2.0625
46 | 44,65,Jarrod Bowen,"FW,MF",West Ham,19.6,30.0,1.530612244897959
47 | 45,66,Robbie Brady,MF,Burnley,10.9,29.0,2.6605504587155964
48 | 46,67,Rhian Brewster,FW,Sheffield Utd,8.2,10.0,1.2195121951219514
49 | 47,68,Josh Brownhill,MF,Burnley,17.5,26.0,1.4857142857142858
50 | 48,71,Oliver Burke,FW,Sheffield Utd,10.0,6.0,0.6
51 | 49,72,Dan Burn,DF,Brighton,13.4,46.0,3.432835820895522
52 | 50,76,Gary Cahill,DF,Crystal Palace,9.0,18.0,2.0
53 | 51,77,Tom Cairney,MF,Fulham,8.4,32.0,3.8095238095238093
54 | 52,78,Dominic Calvert-Lewin,FW,Everton,19.6,18.0,0.9183673469387754
55 | 53,79,João Cancelo,DF,Manchester City,16.9,119.0,7.041420118343196
56 | 54,82,Matty Cash,DF,Aston Villa,20.2,42.0,2.0792079207920793
57 | 55,84,Timothy Castagne,DF,Leicester City,12.1,40.0,3.3057851239669422
58 | 56,86,Ivan Cavaleiro,"FW,MF",Fulham,16.1,30.0,1.8633540372670805
59 | 57,87,Edinson Cavani,FW,Manchester Utd,9.5,13.0,1.368421052631579
60 | 58,88,Dani Ceballos,MF,Arsenal,12.3,84.0,6.829268292682927
61 | 59,89,Ben Chilwell,DF,Chelsea,16.5,96.0,5.818181818181818
62 | 60,91,Andreas Christensen,DF,Chelsea,7.1,23.0,3.23943661971831
63 | 61,92,Ciaran Clark,DF,Newcastle Utd,12.4,27.0,2.1774193548387095
64 | 62,93,Nathaniel Clyne,DF,Crystal Palace,12.7,25.0,1.968503937007874
65 | 63,94,Conor Coady,DF,Wolves,22.7,37.0,1.6299559471365639
66 | 64,95,Séamus Coleman,DF,Everton,8.0,21.0,2.625
67 | 65,96,Aaron Connolly,FW,Brighton,7.4,3.0,0.4054054054054054
68 | 66,97,Liam Cooper,DF,Leeds United,16.8,47.0,2.7976190476190474
69 | 67,99,Hélder Costa,MF,Leeds United,8.2,11.0,1.3414634146341464
70 | 68,100,Vladimír Coufal,DF,West Ham,19.9,77.0,3.869346733668342
71 | 69,101,Aaron Cresswell,DF,West Ham,24.0,88.0,3.6666666666666665
72 | 70,103,Stuart Dallas,"DF,MF",Leeds United,22.9,117.0,5.109170305676856
73 | 71,104,Scott Dann,DF,Crystal Palace,12.0,26.0,2.1666666666666665
74 | 72,106,Ben Davies,DF,Tottenham,13.6,39.0,2.8676470588235294
75 | 73,107,Tom Davies,"MF,DF",Everton,7.9,25.0,3.1645569620253164
76 | 74,110,Craig Dawson,DF,West Ham,9.0,15.0,1.6666666666666667
77 | 75,111,Kevin De Bruyne,MF,Manchester City,15.6,118.0,7.564102564102564
78 | 76,114,Leander Dendoncker,"MF,DF",Wolves,16.7,38.0,2.2754491017964074
79 | 77,117,Grady Diangana,"MF,FW",West Brom,11.9,23.0,1.9327731092436975
80 | 78,118,Raphael Dias Belloli,MF,Leeds United,15.0,92.0,6.133333333333334
81 | 79,119,Rúben Dias,DF,Manchester City,19.8,69.0,3.484848484848485
82 | 80,120,Eric Dier,DF,Tottenham,20.0,42.0,2.1
83 | 81,121,Lucas Digne,"DF,MF",Everton,13.8,57.0,4.130434782608695
84 | 82,124,Moussa Djenepo,MF,Southampton,9.3,20.0,2.150537634408602
85 | 83,125,Matt Doherty,DF,Tottenham,9.1,29.0,3.186813186813187
86 | 84,126,Gabriel Dos Santos,DF,Arsenal,14.2,30.0,2.1126760563380285
87 | 85,127,Abdoulaye Doucouré,MF,Everton,20.0,45.0,2.25
88 | 86,129,Lewis Dunk,DF,Brighton,21.0,43.0,2.0476190476190474
89 | 87,133,John Egan,DF,Sheffield Utd,21.1,46.0,2.1800947867298577
90 | 88,135,Mohamed Elneny,MF,Arsenal,10.3,31.0,3.0097087378640777
91 | 89,136,Jonny Evans,DF,Leicester City,19.7,39.0,1.9796954314720814
92 | 90,137,Eberechi Eze,MF,Crystal Palace,17.7,81.0,4.576271186440678
93 | 91,139,Fabinho,"DF,MF",Liverpool,17.4,57.0,3.2758620689655173
94 | 92,140,Bruno Fernandes,MF,Manchester Utd,22.4,163.0,7.276785714285714
95 | 93,141,Federico Fernández,DF,Newcastle Utd,15.3,15.0,0.9803921568627451
96 | 94,144,Roberto Firmino,FW,Liverpool,20.8,71.0,3.4134615384615383
97 | 95,145,John Fleck,MF,Sheffield Utd,14.7,60.0,4.081632653061225
98 | 96,146,Phil Foden,FW,Manchester City,12.4,42.0,3.3870967741935485
99 | 97,147,Wesley Fofana,DF,Leicester City,15.5,44.0,2.838709677419355
100 | 98,148,Pablo Fornals,"FW,MF",West Ham,17.1,60.0,3.508771929824561
101 | 99,151,Ryan Fraser,"MF,FW",Newcastle Utd,6.6,15.0,2.272727272727273
102 | 100,152,Fred,MF,Manchester Utd,15.6,95.0,6.08974358974359
103 | 101,154,Christian Fuchs,DF,Leicester City,7.8,33.0,4.230769230769231
104 | 102,155,Darnell Furlong,DF,West Brom,18.6,44.0,2.365591397849462
105 | 103,156,Conor Gallagher,MF,West Brom,17.1,34.0,1.9883040935672514
106 | 104,161,Kieran Gibbs,DF,West Brom,9.0,16.0,1.7777777777777777
107 | 105,164,Olivier Giroud,FW,Chelsea,7.1,1.0,0.14084507042253522
108 | 106,165,Ben Godfrey,DF,Everton,14.7,24.0,1.6326530612244898
109 | 107,166,André Gomes,MF,Everton,10.7,44.0,4.112149532710281
110 | 108,167,Joe Gomez,DF,Liverpool,6.6,38.0,5.757575757575758
111 | 109,169,Karlan Grant,"FW,MF",West Brom,12.0,8.0,0.6666666666666666
112 | 110,171,Jack Grealish,"FW,MF",Aston Villa,22.0,150.0,6.818181818181818
113 | 111,172,Mason Greenwood,FW,Manchester Utd,11.1,24.0,2.1621621621621623
114 | 112,173,Pascal Groß,MF,Brighton,14.0,61.0,4.357142857142857
115 | 113,176,İlkay Gündoğan,MF,Manchester City,15.3,91.0,5.947712418300653
116 | 114,178,Sébastien Haller,FW,West Ham,10.4,19.0,1.8269230769230769
117 | 115,180,Jack Harrison,MF,Leeds United,20.0,70.0,3.5
118 | 116,182,Kai Havertz,"MF,FW",Chelsea,10.9,32.0,2.935779816513761
119 | 117,183,Isaac Hayden,"MF,DF",Newcastle Utd,17.1,22.0,1.286549707602339
120 | 118,187,Jordan Henderson,"MF,DF",Liverpool,18.6,140.0,7.526881720430107
121 | 119,188,Jeff Hendrick,MF,Newcastle Utd,14.5,34.0,2.3448275862068964
122 | 120,190,Son Heung-min,FW,Tottenham,21.9,40.0,1.8264840182648403
123 | 121,192,Rob Holding,DF,Arsenal,19.5,74.0,3.7948717948717947
124 | 122,193,Mason Holgate,DF,Everton,11.8,33.0,2.796610169491525
125 | 123,195,Callum Hudson-Odoi,"FW,DF",Chelsea,8.3,36.0,4.337349397590361
126 | 124,197,Pierre Højbjerg,MF,Tottenham,23.0,118.0,5.130434782608695
127 | 125,200,Danny Ings,FW,Southampton,16.3,31.0,1.901840490797546
128 | 126,201,Branislav Ivanović,DF,West Brom,8.2,10.0,1.2195121951219514
129 | 127,202,Alex Iwobi,"FW,DF",Everton,11.6,49.0,4.224137931034483
130 | 128,206,Reece James,DF,Chelsea,15.4,75.0,4.87012987012987
131 | 129,208,Gabriel Jesus,FW,Manchester City,12.0,12.0,1.0
132 | 130,209,Raúl Jiménez,FW,Wolves,9.1,19.0,2.087912087912088
133 | 131,210,Joelinton,"FW,MF",Newcastle Utd,12.5,13.0,1.04
134 | 132,213,Curtis Jones,MF,Liverpool,9.9,56.0,5.656565656565657
135 | 133,214,Jorginho,MF,Chelsea,12.8,62.0,4.84375
136 | 134,217,James Justin,DF,Leicester City,23.0,92.0,4.0
137 | 135,220,Harry Kane,FW,Tottenham,20.4,87.0,4.264705882352941
138 | 136,221,N'Golo Kanté,MF,Chelsea,17.0,70.0,4.117647058823529
139 | 137,223,Michael Keane,DF,Everton,19.2,57.0,2.96875
140 | 138,229,Max Kilman,DF,Wolves,12.5,35.0,2.8
141 | 139,231,Mateusz Klich,MF,Leeds United,20.0,118.0,5.9
142 | 140,232,Robin Koch,DF,Leeds United,10.1,38.0,3.7623762376237626
143 | 141,234,Ezri Konsa,DF,Aston Villa,19.5,14.0,0.717948717948718
144 | 142,235,Cheikhou Kouyaté,DF,Crystal Palace,20.7,22.0,1.0628019323671498
145 | 143,236,Mateo Kovačić,MF,Chelsea,14.1,105.0,7.446808510638298
146 | 144,239,Alexandre Lacazette,FW,Arsenal,14.6,29.0,1.9863013698630136
147 | 145,240,Adam Lallana,"MF,FW",Brighton,9.4,30.0,3.1914893617021276
148 | 146,242,Tariq Lamptey,DF,Brighton,9.8,27.0,2.7551020408163263
149 | 147,244,Aymeric Laporte,DF,Manchester City,7.4,31.0,4.189189189189189
150 | 148,245,Jamaal Lascelles,DF,Newcastle Utd,12.1,23.0,1.9008264462809918
151 | 149,247,Mario Lemina,MF,Fulham,8.6,30.0,3.488372093023256
152 | 150,249,Jamal Lewis,DF,Newcastle Utd,18.3,28.0,1.530054644808743
153 | 151,250,Victor Lindelöf,DF,Manchester Utd,17.7,61.0,3.446327683615819
154 | 152,252,Jake Livermore,MF,West Brom,13.6,24.0,1.7647058823529411
155 | 153,256,Ruben Loftus-Cheek,"FW,MF",Fulham,13.5,43.0,3.185185185185185
156 | 154,261,Sean Longstaff,MF,Newcastle Utd,9.2,30.0,3.2608695652173916
157 | 155,262,Ademola Lookman,FW,Fulham,18.4,66.0,3.586956521739131
158 | 156,264,Matthew Lowton,DF,Burnley,19.0,64.0,3.3684210526315788
159 | 157,265,David Luiz,DF,Arsenal,10.8,41.0,3.796296296296296
160 | 158,266,Douglas Luiz,MF,Aston Villa,19.4,66.0,3.4020618556701034
161 | 159,267,John Lundstram,MF,Sheffield Utd,15.5,53.0,3.4193548387096775
162 | 160,268,Alexis Mac Allister,"MF,FW",Brighton,7.0,22.0,3.142857142857143
163 | 161,269,James Maddison,"MF,FW",Leicester City,17.4,71.0,4.080459770114943
164 | 162,270,Harry Maguire,DF,Manchester Utd,24.0,70.0,2.9166666666666665
165 | 163,271,Riyad Mahrez,FW,Manchester City,12.4,50.0,4.032258064516129
166 | 164,275,Sadio Mané,FW,Liverpool,19.8,67.0,3.3838383838383836
167 | 165,276,Javier Manquillo,DF,Newcastle Utd,8.0,17.0,2.125
168 | 166,277,Fernando Marçal,DF,Wolves,6.6,24.0,3.6363636363636367
169 | 167,278,Solly March,DF,Brighton,18.6,77.0,4.139784946236559
170 | 168,280,Anthony Martial,FW,Manchester Utd,14.6,39.0,2.671232876712329
171 | 169,283,Arthur Masuaku,DF,West Ham,9.4,32.0,3.404255319148936
172 | 170,286,Nemanja Matić,MF,Manchester Utd,8.1,51.0,6.296296296296297
173 | 171,287,Joël Matip,DF,Liverpool,7.7,15.0,1.948051948051948
174 | 172,288,Neal Maupay,"FW,MF",Brighton,17.9,29.0,1.6201117318435756
175 | 173,289,James McArthur,MF,Crystal Palace,16.3,58.0,3.558282208588957
176 | 174,290,Oliver McBurnie,FW,Sheffield Utd,11.1,34.0,3.0630630630630633
177 | 175,293,John McGinn,MF,Aston Villa,21.0,96.0,4.571428571428571
178 | 176,294,David McGoldrick,"FW,MF",Sheffield Utd,15.8,34.0,2.151898734177215
179 | 177,295,Dwight McNeil,MF,Burnley,19.7,37.0,1.8781725888324874
180 | 178,296,Scott McTominay,MF,Manchester Utd,14.7,65.0,4.421768707482993
181 | 179,297,Ben Mee,DF,Burnley,16.9,28.0,1.656804733727811
182 | 180,300,Nampalys Mendy,MF,Leicester City,14.2,46.0,3.23943661971831
183 | 181,302,Luka Milivojević,MF,Crystal Palace,15.6,71.0,4.551282051282051
184 | 182,303,James Milner,"MF,DF",Liverpool,6.9,52.0,7.536231884057971
185 | 183,304,Yerry Mina,DF,Everton,18.0,41.0,2.2777777777777777
186 | 184,307,Tyrone Mings,DF,Aston Villa,20.5,58.0,2.8292682926829267
187 | 185,308,Tyrick Mitchell,DF,Crystal Palace,12.0,43.0,3.5833333333333335
188 | 186,309,Aleksandar Mitrović,FW,Fulham,11.2,15.0,1.3392857142857144
189 | 187,312,Mason Mount,"MF,FW",Chelsea,20.7,116.0,5.603864734299517
190 | 188,313,Lucas Moura,"FW,MF",Tottenham,7.3,20.0,2.73972602739726
191 | 189,315,João Moutinho,MF,Wolves,17.6,74.0,4.204545454545454
192 | 190,317,Jacob Murphy,"DF,MF",Newcastle Utd,8.2,20.0,2.439024390243903
193 | 191,320,Wilfred Ndidi,"MF,DF",Leicester City,10.6,20.0,1.8867924528301887
194 | 192,321,Tanguy Ndombele,MF,Tottenham,15.1,60.0,3.9735099337748347
195 | 193,323,Pedro Neto,"FW,MF",Wolves,22.0,34.0,1.5454545454545454
196 | 194,324,Rúben Neves,MF,Wolves,18.3,85.0,4.644808743169398
197 | 195,329,Oliver Norwood,MF,Sheffield Utd,12.1,55.0,4.545454545454546
198 | 196,331,Dara O'Shea,DF,West Brom,15.4,37.0,2.4025974025974026
199 | 197,334,Angelo Ogbonna,DF,West Ham,22.7,21.0,0.9251101321585904
200 | 198,338,Ben Osborn,"MF,DF",Sheffield Utd,9.5,36.0,3.789473684210526
201 | 199,342,Thomas Partey,MF,Arsenal,7.5,49.0,6.533333333333333
202 | 200,346,Nicolas Pépé,"FW,MF",Arsenal,9.0,17.0,1.8888888888888888
203 | 201,347,Matheus Pereira,"MF,FW",West Brom,16.3,55.0,3.374233128834356
204 | 202,349,Ayoze Pérez,"FW,MF",Leicester City,9.8,35.0,3.571428571428571
205 | 203,350,Kalvin Phillips,MF,Leeds United,17.5,75.0,4.285714285714286
206 | 204,351,Matt Phillips,"MF,DF",West Brom,8.7,18.0,2.0689655172413794
207 | 205,354,Erik Pieters,"DF,MF",Burnley,11.4,23.0,2.017543859649123
208 | 206,355,Daniel Podence,"FW,MF",Wolves,14.6,55.0,3.767123287671233
209 | 207,356,Paul Pogba,"MF,FW",Manchester Utd,15.0,78.0,5.2
210 | 208,358,Dennis Praet,"MF,FW",Leicester City,7.3,18.0,2.4657534246575343
211 | 209,360,Christian Pulisic,"FW,MF",Chelsea,10.7,39.0,3.6448598130841123
212 | 210,365,Marcus Rashford,FW,Manchester Utd,21.6,58.0,2.685185185185185
213 | 211,367,Nathan Redmond,"MF,FW",Southampton,8.0,37.0,4.625
214 | 212,368,Harrison Reed,MF,Fulham,14.9,56.0,3.7583892617449663
215 | 213,369,Sergio Reguilón,DF,Tottenham,11.8,36.0,3.0508474576271185
216 | 214,370,Bobby Reid,"DF,FW",Fulham,16.2,42.0,2.5925925925925926
217 | 215,371,Declan Rice,MF,West Ham,24.0,76.0,3.1666666666666665
218 | 216,372,Richarlison,"FW,MF",Everton,16.1,20.0,1.2422360248447204
219 | 217,373,Jaïro Riedewald,MF,Crystal Palace,10.6,31.0,2.9245283018867925
220 | 218,376,Andrew Robertson,DF,Liverpool,23.9,178.0,7.447698744769875
221 | 219,377,Antonee Robinson,DF,Fulham,16.3,60.0,3.680981595092024
222 | 220,378,Callum Robinson,"FW,MF",West Brom,13.2,9.0,0.6818181818181819
223 | 221,379,Jack Robinson,DF,Sheffield Utd,6.7,17.0,2.5373134328358207
224 | 222,383,Rodri,MF,Manchester City,20.1,110.0,5.4726368159203975
225 | 223,384,Rodrigo,MF,Leeds United,11.0,46.0,4.181818181818182
226 | 224,385,James Rodríguez,"FW,MF",Everton,14.0,101.0,7.214285714285714
227 | 225,386,Jay Rodriguez,"FW,MF",Burnley,9.5,14.0,1.4736842105263157
228 | 226,387,Oriol Romeu,MF,Southampton,17.5,75.0,4.285714285714286
229 | 227,388,Antonio Rüdiger,DF,Chelsea,9.0,20.0,2.2222222222222223
230 | 228,391,Allan Saint-Maximin,"FW,MF",Newcastle Utd,9.1,22.0,2.417582417582418
231 | 229,392,Romain Saïss,DF,Wolves,14.7,63.0,4.285714285714286
232 | 230,393,Bukayo Saka,"FW,DF",Arsenal,19.7,48.0,2.436548223350254
233 | 231,395,Mohamed Salah,FW,Liverpool,21.4,85.0,3.97196261682243
234 | 232,397,Davinson Sánchez,DF,Tottenham,8.5,18.0,2.1176470588235294
235 | 233,400,Romaine Sawyers,MF,West Brom,16.5,52.0,3.1515151515151514
236 | 234,402,Fabian Schär,DF,Newcastle Utd,13.4,37.0,2.761194029850746
237 | 235,403,Jeffrey Schlupp,MF,Crystal Palace,10.8,23.0,2.1296296296296293
238 | 236,405,Nélson Semedo,DF,Wolves,20.7,60.0,2.898550724637681
239 | 237,409,Luke Shaw,DF,Manchester Utd,17.5,100.0,5.714285714285714
240 | 238,410,Jonjo Shelvey,MF,Newcastle Utd,15.1,65.0,4.304635761589404
241 | 239,411,Gylfi Sigurðsson,"MF,FW",Everton,13.3,28.0,2.1052631578947367
242 | 240,412,Bernardo Silva,"MF,FW",Manchester City,14.5,46.0,3.1724137931034484
243 | 241,413,Fábio Silva,FW,Wolves,8.2,7.0,0.853658536585366
244 | 242,414,Thiago Silva,DF,Chelsea,16.2,66.0,4.074074074074074
245 | 243,415,Moussa Sissoko,MF,Tottenham,15.3,30.0,1.9607843137254901
246 | 244,418,Emile Smith-Rowe,MF,Arsenal,8.8,24.0,2.727272727272727
247 | 245,422,Tomáš Souček,MF,West Ham,24.0,66.0,2.75
248 | 246,423,Çağlar Söyüncü,DF,Leicester City,8.2,25.0,3.048780487804878
249 | 247,426,Jack Stephens,DF,Southampton,11.4,38.0,3.333333333333333
250 | 248,427,Raheem Sterling,FW,Manchester City,19.0,38.0,2.0
251 | 249,428,Enda Stevens,DF,Sheffield Utd,16.0,61.0,3.8125
252 | 250,429,John Stones,DF,Manchester City,14.0,47.0,3.357142857142857
253 | 251,430,Pascal Struijk,"DF,MF",Leeds United,12.2,29.0,2.377049180327869
254 | 252,432,Matt Targett,DF,Aston Villa,21.8,134.0,6.146788990825688
255 | 253,433,James Tarkowski,DF,Burnley,21.0,32.0,1.5238095238095237
256 | 254,435,Charlie Taylor,DF,Burnley,14.6,34.0,2.328767123287671
257 | 255,440,Kenny Tete,DF,Fulham,7.6,28.0,3.68421052631579
258 | 256,442,Youri Tielemans,MF,Leicester City,23.3,131.0,5.622317596566523
259 | 257,443,Kieran Tierney,DF,Arsenal,16.9,76.0,4.497041420118344
260 | 258,446,Ferrán Torres,FW,Manchester City,8.2,21.0,2.5609756097560976
261 | 259,448,Andros Townsend,MF,Crystal Palace,16.3,49.0,3.0061349693251533
262 | 260,449,Conor Townsend,DF,West Brom,10.8,65.0,6.018518518518518
263 | 261,450,Adama Traoré,"FW,DF",Wolves,16.8,35.0,2.083333333333333
264 | 262,451,Bertrand Traoré,FW,Aston Villa,12.3,30.0,2.4390243902439024
265 | 263,452,Trézéguet,FW,Aston Villa,9.0,21.0,2.3333333333333335
266 | 264,453,Leandro Trossard,"FW,MF",Brighton,17.3,67.0,3.8728323699421963
267 | 265,458,Jamie Vardy,FW,Leicester City,17.7,14.0,0.7909604519774012
268 | 266,459,Joël Veltman,DF,Brighton,15.3,73.0,4.771241830065359
269 | 267,460,Jannik Vestergaard,DF,Southampton,14.5,36.0,2.4827586206896552
270 | 268,466,Theo Walcott,"MF,FW",Southampton,13.7,20.0,1.4598540145985401
271 | 269,468,Kyle Walker,DF,Manchester City,13.3,62.0,4.661654135338345
272 | 270,469,Kyle Walker-Peters,DF,Southampton,18.8,55.0,2.9255319148936167
273 | 271,470,Aaron Wan-Bissaka,DF,Manchester Utd,22.0,82.0,3.727272727272727
274 | 272,471,Joel Ward,DF,Crystal Palace,11.1,31.0,2.7927927927927927
275 | 273,472,James Ward-Prowse,MF,Southampton,23.0,101.0,4.391304347826087
276 | 274,473,Ollie Watkins,FW,Aston Villa,22.0,21.0,0.9545454545454546
277 | 275,475,Adam Webster,DF,Brighton,21.8,86.0,3.944954128440367
278 | 276,476,Danny Welbeck,FW,Brighton,7.3,9.0,1.2328767123287672
279 | 277,477,Timo Werner,FW,Chelsea,19.3,45.0,2.33160621761658
280 | 278,478,Ashley Westwood,MF,Burnley,22.9,116.0,5.065502183406114
281 | 279,479,Ben White,"DF,MF",Brighton,22.5,68.0,3.022222222222222
282 | 280,480,Georginio Wijnaldum,MF,Liverpool,21.7,65.0,2.9953917050691246
283 | 281,484,Willian,"FW,MF",Arsenal,11.4,33.0,2.8947368421052633
284 | 282,487,Callum Wilson,FW,Newcastle Utd,20.1,19.0,0.9452736318407959
285 | 283,489,Chris Wood,FW,Burnley,18.7,18.0,0.9625668449197862
286 | 284,490,Granit Xhaka,MF,Arsenal,18.1,140.0,7.734806629834254
287 | 285,494,Wilfried Zaha,FW,Crystal Palace,18.5,39.0,2.108108108108108
288 | 286,495,Andre-Frank Zambo Anguissa,MF,Fulham,18.8,74.0,3.9361702127659575
289 | 287,497,Oleksandr Zinchenko,DF,Manchester City,8.1,45.0,5.555555555555555
290 | 288,498,Hakim Ziyech,"FW,MF",Chelsea,7.0,41.0,5.857142857142857
291 | 289,499,Kurt Zouma,DF,Chelsea,15.0,46.0,3.066666666666667
292 |
--------------------------------------------------------------------------------
/Progressive Passing Plot/Progressive_Passing_Fullbacks.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 27,
6 | "id": "accomplished-madrid",
7 | "metadata": {},
8 | "outputs": [],
9 | "source": [
10 | "import pandas as pd\n",
11 | "import matplotlib.pyplot as plt\n",
12 | "import matplotlib as mpl\n",
13 | "import seaborn as sns"
14 | ]
15 | },
16 | {
17 | "cell_type": "code",
18 | "execution_count": 2,
19 | "id": "virgin-royalty",
20 | "metadata": {},
21 | "outputs": [],
22 | "source": [
23 | "#import data\n",
24 | "data = pd.read_csv(\"epl.csv\")"
25 | ]
26 | },
27 | {
28 | "cell_type": "code",
29 | "execution_count": 3,
30 | "id": "later-senior",
31 | "metadata": {},
32 | "outputs": [
33 | {
34 | "data": {
35 | "text/html": [
36 | "
\n",
37 | "\n",
50 | "
\n",
51 | " \n",
52 | " \n",
53 | " | \n",
54 | " Player | \n",
55 | " League | \n",
56 | " Player.1 | \n",
57 | " Pos | \n",
58 | " Squad | \n",
59 | " 90s | \n",
60 | " Total: Cmp | \n",
61 | " Total: Att | \n",
62 | " Total: Cmp% | \n",
63 | " Total: TotDist | \n",
64 | " ... | \n",
65 | " Body Parts: Left | \n",
66 | " Body Parts: Right | \n",
67 | " Body Parts: Head | \n",
68 | " Body Parts: TI | \n",
69 | " Body Parts: Other | \n",
70 | " Outcomes: Cmp | \n",
71 | " Outcomes: Off | \n",
72 | " Outcomes: Out | \n",
73 | " Outcomes: Int | \n",
74 | " Outcomes: Blocks | \n",
75 | "
\n",
76 | " \n",
77 | " \n",
78 | " \n",
79 | " | 0 | \n",
80 | " Patrick van Aanholt | \n",
81 | " Premier-League | \n",
82 | " Patrick van Aanholt | \n",
83 | " DF | \n",
84 | " Crystal Palace | \n",
85 | " 12.7 | \n",
86 | " 613.0 | \n",
87 | " 769.0 | \n",
88 | " 79.7 | \n",
89 | " 10191.0 | \n",
90 | " ... | \n",
91 | " 519.0 | \n",
92 | " 137.0 | \n",
93 | " 16.0 | \n",
94 | " 89.0 | \n",
95 | " 3.0 | \n",
96 | " 613.0 | \n",
97 | " 9.0 | \n",
98 | " 14.0 | \n",
99 | " 18.0 | \n",
100 | " 18.0 | \n",
101 | "
\n",
102 | " \n",
103 | " | 1 | \n",
104 | " Tammy Abraham | \n",
105 | " Premier-League | \n",
106 | " Tammy Abraham | \n",
107 | " FW | \n",
108 | " Chelsea | \n",
109 | " 10.8 | \n",
110 | " 138.0 | \n",
111 | " 201.0 | \n",
112 | " 68.7 | \n",
113 | " 1925.0 | \n",
114 | " ... | \n",
115 | " 17.0 | \n",
116 | " 135.0 | \n",
117 | " 16.0 | \n",
118 | " 0.0 | \n",
119 | " 11.0 | \n",
120 | " 138.0 | \n",
121 | " 0.0 | \n",
122 | " 3.0 | \n",
123 | " 3.0 | \n",
124 | " 12.0 | \n",
125 | "
\n",
126 | " \n",
127 | " | 2 | \n",
128 | " Che Adams | \n",
129 | " Premier-League | \n",
130 | " Che Adams | \n",
131 | " FW | \n",
132 | " Southampton | \n",
133 | " 19.3 | \n",
134 | " 289.0 | \n",
135 | " 417.0 | \n",
136 | " 69.3 | \n",
137 | " 4747.0 | \n",
138 | " ... | \n",
139 | " 27.0 | \n",
140 | " 334.0 | \n",
141 | " 22.0 | \n",
142 | " 0.0 | \n",
143 | " 17.0 | \n",
144 | " 289.0 | \n",
145 | " 4.0 | \n",
146 | " 8.0 | \n",
147 | " 16.0 | \n",
148 | " 24.0 | \n",
149 | "
\n",
150 | " \n",
151 | " | 3 | \n",
152 | " Tosin Adarabioyo | \n",
153 | " Premier-League | \n",
154 | " Tosin Adarabioyo | \n",
155 | " DF | \n",
156 | " Fulham | \n",
157 | " 19.0 | \n",
158 | " 835.0 | \n",
159 | " 971.0 | \n",
160 | " 86.0 | \n",
161 | " 19751.0 | \n",
162 | " ... | \n",
163 | " 140.0 | \n",
164 | " 753.0 | \n",
165 | " 51.0 | \n",
166 | " 4.0 | \n",
167 | " 3.0 | \n",
168 | " 835.0 | \n",
169 | " 1.0 | \n",
170 | " 20.0 | \n",
171 | " 8.0 | \n",
172 | " 8.0 | \n",
173 | "
\n",
174 | " \n",
175 | " | 4 | \n",
176 | " Adrián | \n",
177 | " Premier-League | \n",
178 | " Adrián | \n",
179 | " GK | \n",
180 | " Liverpool | \n",
181 | " 2.0 | \n",
182 | " 43.0 | \n",
183 | " 62.0 | \n",
184 | " 69.4 | \n",
185 | " 1147.0 | \n",
186 | " ... | \n",
187 | " 9.0 | \n",
188 | " 38.0 | \n",
189 | " 0.0 | \n",
190 | " 0.0 | \n",
191 | " 14.0 | \n",
192 | " 43.0 | \n",
193 | " 1.0 | \n",
194 | " 1.0 | \n",
195 | " 0.0 | \n",
196 | " 0.0 | \n",
197 | "
\n",
198 | " \n",
199 | " | 5 | \n",
200 | " Sergio Agüero | \n",
201 | " Premier-League | \n",
202 | " Sergio Agüero | \n",
203 | " FW | \n",
204 | " Manchester City | \n",
205 | " 1.6 | \n",
206 | " 33.0 | \n",
207 | " 42.0 | \n",
208 | " 78.6 | \n",
209 | " 386.0 | \n",
210 | " ... | \n",
211 | " 5.0 | \n",
212 | " 33.0 | \n",
213 | " 2.0 | \n",
214 | " 0.0 | \n",
215 | " 1.0 | \n",
216 | " 33.0 | \n",
217 | " 0.0 | \n",
218 | " 0.0 | \n",
219 | " 0.0 | \n",
220 | " 4.0 | \n",
221 | "
\n",
222 | " \n",
223 | " | 6 | \n",
224 | " Ola Aina | \n",
225 | " Premier-League | \n",
226 | " Ola Aina | \n",
227 | " DF | \n",
228 | " Fulham | \n",
229 | " 18.7 | \n",
230 | " 851.0 | \n",
231 | " 1091.0 | \n",
232 | " 78.0 | \n",
233 | " 16580.0 | \n",
234 | " ... | \n",
235 | " 135.0 | \n",
236 | " 729.0 | \n",
237 | " 67.0 | \n",
238 | " 148.0 | \n",
239 | " 4.0 | \n",
240 | " 851.0 | \n",
241 | " 0.0 | \n",
242 | " 14.0 | \n",
243 | " 23.0 | \n",
244 | " 25.0 | \n",
245 | "
\n",
246 | " \n",
247 | " | 7 | \n",
248 | " Rayan Aït Nouri | \n",
249 | " Premier-League | \n",
250 | " Rayan Aït Nouri | \n",
251 | " DF | \n",
252 | " Wolves | \n",
253 | " 7.7 | \n",
254 | " 299.0 | \n",
255 | " 357.0 | \n",
256 | " 83.8 | \n",
257 | " 4712.0 | \n",
258 | " ... | \n",
259 | " 263.0 | \n",
260 | " 30.0 | \n",
261 | " 11.0 | \n",
262 | " 49.0 | \n",
263 | " 0.0 | \n",
264 | " 299.0 | \n",
265 | " 0.0 | \n",
266 | " 1.0 | \n",
267 | " 3.0 | \n",
268 | " 15.0 | \n",
269 | "
\n",
270 | " \n",
271 | " | 8 | \n",
272 | " Semi Ajayi | \n",
273 | " Premier-League | \n",
274 | " Semi Ajayi | \n",
275 | " DF | \n",
276 | " West Brom | \n",
277 | " 23.0 | \n",
278 | " 568.0 | \n",
279 | " 782.0 | \n",
280 | " 72.6 | \n",
281 | " 12345.0 | \n",
282 | " ... | \n",
283 | " 41.0 | \n",
284 | " 604.0 | \n",
285 | " 57.0 | \n",
286 | " 38.0 | \n",
287 | " 2.0 | \n",
288 | " 568.0 | \n",
289 | " 4.0 | \n",
290 | " 24.0 | \n",
291 | " 27.0 | \n",
292 | " 11.0 | \n",
293 | "
\n",
294 | " \n",
295 | " | 9 | \n",
296 | " Nathan Aké | \n",
297 | " Premier-League | \n",
298 | " Nathan Aké | \n",
299 | " DF | \n",
300 | " Manchester City | \n",
301 | " 5.2 | \n",
302 | " 429.0 | \n",
303 | " 461.0 | \n",
304 | " 93.1 | \n",
305 | " 7845.0 | \n",
306 | " ... | \n",
307 | " 353.0 | \n",
308 | " 61.0 | \n",
309 | " 16.0 | \n",
310 | " 10.0 | \n",
311 | " 2.0 | \n",
312 | " 429.0 | \n",
313 | " 0.0 | \n",
314 | " 2.0 | \n",
315 | " 4.0 | \n",
316 | " 4.0 | \n",
317 | "
\n",
318 | " \n",
319 | "
\n",
320 | "
10 rows × 150 columns
\n",
321 | "
"
322 | ],
323 | "text/plain": [
324 | " Player League Player.1 Pos \\\n",
325 | "0 Patrick van Aanholt Premier-League Patrick van Aanholt DF \n",
326 | "1 Tammy Abraham Premier-League Tammy Abraham FW \n",
327 | "2 Che Adams Premier-League Che Adams FW \n",
328 | "3 Tosin Adarabioyo Premier-League Tosin Adarabioyo DF \n",
329 | "4 Adrián Premier-League Adrián GK \n",
330 | "5 Sergio Agüero Premier-League Sergio Agüero FW \n",
331 | "6 Ola Aina Premier-League Ola Aina DF \n",
332 | "7 Rayan Aït Nouri Premier-League Rayan Aït Nouri DF \n",
333 | "8 Semi Ajayi Premier-League Semi Ajayi DF \n",
334 | "9 Nathan Aké Premier-League Nathan Aké DF \n",
335 | "\n",
336 | " Squad 90s Total: Cmp Total: Att Total: Cmp% Total: TotDist \\\n",
337 | "0 Crystal Palace 12.7 613.0 769.0 79.7 10191.0 \n",
338 | "1 Chelsea 10.8 138.0 201.0 68.7 1925.0 \n",
339 | "2 Southampton 19.3 289.0 417.0 69.3 4747.0 \n",
340 | "3 Fulham 19.0 835.0 971.0 86.0 19751.0 \n",
341 | "4 Liverpool 2.0 43.0 62.0 69.4 1147.0 \n",
342 | "5 Manchester City 1.6 33.0 42.0 78.6 386.0 \n",
343 | "6 Fulham 18.7 851.0 1091.0 78.0 16580.0 \n",
344 | "7 Wolves 7.7 299.0 357.0 83.8 4712.0 \n",
345 | "8 West Brom 23.0 568.0 782.0 72.6 12345.0 \n",
346 | "9 Manchester City 5.2 429.0 461.0 93.1 7845.0 \n",
347 | "\n",
348 | " ... Body Parts: Left Body Parts: Right Body Parts: Head Body Parts: TI \\\n",
349 | "0 ... 519.0 137.0 16.0 89.0 \n",
350 | "1 ... 17.0 135.0 16.0 0.0 \n",
351 | "2 ... 27.0 334.0 22.0 0.0 \n",
352 | "3 ... 140.0 753.0 51.0 4.0 \n",
353 | "4 ... 9.0 38.0 0.0 0.0 \n",
354 | "5 ... 5.0 33.0 2.0 0.0 \n",
355 | "6 ... 135.0 729.0 67.0 148.0 \n",
356 | "7 ... 263.0 30.0 11.0 49.0 \n",
357 | "8 ... 41.0 604.0 57.0 38.0 \n",
358 | "9 ... 353.0 61.0 16.0 10.0 \n",
359 | "\n",
360 | " Body Parts: Other Outcomes: Cmp Outcomes: Off Outcomes: Out \\\n",
361 | "0 3.0 613.0 9.0 14.0 \n",
362 | "1 11.0 138.0 0.0 3.0 \n",
363 | "2 17.0 289.0 4.0 8.0 \n",
364 | "3 3.0 835.0 1.0 20.0 \n",
365 | "4 14.0 43.0 1.0 1.0 \n",
366 | "5 1.0 33.0 0.0 0.0 \n",
367 | "6 4.0 851.0 0.0 14.0 \n",
368 | "7 0.0 299.0 0.0 1.0 \n",
369 | "8 2.0 568.0 4.0 24.0 \n",
370 | "9 2.0 429.0 0.0 2.0 \n",
371 | "\n",
372 | " Outcomes: Int Outcomes: Blocks \n",
373 | "0 18.0 18.0 \n",
374 | "1 3.0 12.0 \n",
375 | "2 16.0 24.0 \n",
376 | "3 8.0 8.0 \n",
377 | "4 0.0 0.0 \n",
378 | "5 0.0 4.0 \n",
379 | "6 23.0 25.0 \n",
380 | "7 3.0 15.0 \n",
381 | "8 27.0 11.0 \n",
382 | "9 4.0 4.0 \n",
383 | "\n",
384 | "[10 rows x 150 columns]"
385 | ]
386 | },
387 | "execution_count": 3,
388 | "metadata": {},
389 | "output_type": "execute_result"
390 | }
391 | ],
392 | "source": [
393 | "data.head(10)"
394 | ]
395 | },
396 | {
397 | "cell_type": "code",
398 | "execution_count": 4,
399 | "id": "interim-society",
400 | "metadata": {},
401 | "outputs": [
402 | {
403 | "name": "stdout",
404 | "output_type": "stream",
405 | "text": [
406 | "\n",
407 | "RangeIndex: 501 entries, 0 to 500\n",
408 | "Columns: 150 entries, Player to Outcomes: Blocks\n",
409 | "dtypes: float64(145), object(5)\n",
410 | "memory usage: 587.2+ KB\n"
411 | ]
412 | }
413 | ],
414 | "source": [
415 | "data.info()"
416 | ]
417 | },
418 | {
419 | "cell_type": "code",
420 | "execution_count": 6,
421 | "id": "floppy-naples",
422 | "metadata": {},
423 | "outputs": [],
424 | "source": [
425 | "data = data[['Player', 'Pos', 'Squad', '90s', 'Prog']]"
426 | ]
427 | },
428 | {
429 | "cell_type": "code",
430 | "execution_count": 7,
431 | "id": "stuffed-swiss",
432 | "metadata": {},
433 | "outputs": [
434 | {
435 | "data": {
436 | "text/html": [
437 | "\n",
438 | "\n",
451 | "
\n",
452 | " \n",
453 | " \n",
454 | " | \n",
455 | " Player | \n",
456 | " Pos | \n",
457 | " Squad | \n",
458 | " 90s | \n",
459 | " Prog | \n",
460 | "
\n",
461 | " \n",
462 | " \n",
463 | " \n",
464 | " | 0 | \n",
465 | " Patrick van Aanholt | \n",
466 | " DF | \n",
467 | " Crystal Palace | \n",
468 | " 12.7 | \n",
469 | " 79.0 | \n",
470 | "
\n",
471 | " \n",
472 | " | 1 | \n",
473 | " Tammy Abraham | \n",
474 | " FW | \n",
475 | " Chelsea | \n",
476 | " 10.8 | \n",
477 | " 11.0 | \n",
478 | "
\n",
479 | " \n",
480 | " | 2 | \n",
481 | " Che Adams | \n",
482 | " FW | \n",
483 | " Southampton | \n",
484 | " 19.3 | \n",
485 | " 38.0 | \n",
486 | "
\n",
487 | " \n",
488 | " | 3 | \n",
489 | " Tosin Adarabioyo | \n",
490 | " DF | \n",
491 | " Fulham | \n",
492 | " 19.0 | \n",
493 | " 39.0 | \n",
494 | "
\n",
495 | " \n",
496 | " | 4 | \n",
497 | " Adrián | \n",
498 | " GK | \n",
499 | " Liverpool | \n",
500 | " 2.0 | \n",
501 | " 0.0 | \n",
502 | "
\n",
503 | " \n",
504 | " | 5 | \n",
505 | " Sergio Agüero | \n",
506 | " FW | \n",
507 | " Manchester City | \n",
508 | " 1.6 | \n",
509 | " 1.0 | \n",
510 | "
\n",
511 | " \n",
512 | " | 6 | \n",
513 | " Ola Aina | \n",
514 | " DF | \n",
515 | " Fulham | \n",
516 | " 18.7 | \n",
517 | " 73.0 | \n",
518 | "
\n",
519 | " \n",
520 | " | 7 | \n",
521 | " Rayan Aït Nouri | \n",
522 | " DF | \n",
523 | " Wolves | \n",
524 | " 7.7 | \n",
525 | " 18.0 | \n",
526 | "
\n",
527 | " \n",
528 | " | 8 | \n",
529 | " Semi Ajayi | \n",
530 | " DF | \n",
531 | " West Brom | \n",
532 | " 23.0 | \n",
533 | " 49.0 | \n",
534 | "
\n",
535 | " \n",
536 | " | 9 | \n",
537 | " Nathan Aké | \n",
538 | " DF | \n",
539 | " Manchester City | \n",
540 | " 5.2 | \n",
541 | " 23.0 | \n",
542 | "
\n",
543 | " \n",
544 | "
\n",
545 | "
"
546 | ],
547 | "text/plain": [
548 | " Player Pos Squad 90s Prog\n",
549 | "0 Patrick van Aanholt DF Crystal Palace 12.7 79.0\n",
550 | "1 Tammy Abraham FW Chelsea 10.8 11.0\n",
551 | "2 Che Adams FW Southampton 19.3 38.0\n",
552 | "3 Tosin Adarabioyo DF Fulham 19.0 39.0\n",
553 | "4 Adrián GK Liverpool 2.0 0.0\n",
554 | "5 Sergio Agüero FW Manchester City 1.6 1.0\n",
555 | "6 Ola Aina DF Fulham 18.7 73.0\n",
556 | "7 Rayan Aït Nouri DF Wolves 7.7 18.0\n",
557 | "8 Semi Ajayi DF West Brom 23.0 49.0\n",
558 | "9 Nathan Aké DF Manchester City 5.2 23.0"
559 | ]
560 | },
561 | "execution_count": 7,
562 | "metadata": {},
563 | "output_type": "execute_result"
564 | }
565 | ],
566 | "source": [
567 | "data.head(10)"
568 | ]
569 | },
570 | {
571 | "cell_type": "code",
572 | "execution_count": 8,
573 | "id": "oriented-applicant",
574 | "metadata": {},
575 | "outputs": [
576 | {
577 | "name": "stdout",
578 | "output_type": "stream",
579 | "text": [
580 | "\n",
581 | "RangeIndex: 501 entries, 0 to 500\n",
582 | "Data columns (total 5 columns):\n",
583 | " # Column Non-Null Count Dtype \n",
584 | "--- ------ -------------- ----- \n",
585 | " 0 Player 501 non-null object \n",
586 | " 1 Pos 501 non-null object \n",
587 | " 2 Squad 501 non-null object \n",
588 | " 3 90s 501 non-null float64\n",
589 | " 4 Prog 501 non-null float64\n",
590 | "dtypes: float64(2), object(3)\n",
591 | "memory usage: 19.7+ KB\n"
592 | ]
593 | }
594 | ],
595 | "source": [
596 | "data.info()"
597 | ]
598 | },
599 | {
600 | "cell_type": "code",
601 | "execution_count": 9,
602 | "id": "incorrect-reasoning",
603 | "metadata": {},
604 | "outputs": [
605 | {
606 | "name": "stderr",
607 | "output_type": "stream",
608 | "text": [
609 | ":1: SettingWithCopyWarning: \n",
610 | "A value is trying to be set on a copy of a slice from a DataFrame.\n",
611 | "Try using .loc[row_indexer,col_indexer] = value instead\n",
612 | "\n",
613 | "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
614 | " data['ProgPer90'] = data['Prog']/data['90s']\n"
615 | ]
616 | }
617 | ],
618 | "source": [
619 | "data['ProgPer90'] = data['Prog']/data['90s']"
620 | ]
621 | },
622 | {
623 | "cell_type": "code",
624 | "execution_count": 10,
625 | "id": "stupid-interest",
626 | "metadata": {},
627 | "outputs": [
628 | {
629 | "data": {
630 | "text/html": [
631 | "\n",
632 | "\n",
645 | "
\n",
646 | " \n",
647 | " \n",
648 | " | \n",
649 | " Player | \n",
650 | " Pos | \n",
651 | " Squad | \n",
652 | " 90s | \n",
653 | " Prog | \n",
654 | " ProgPer90 | \n",
655 | "
\n",
656 | " \n",
657 | " \n",
658 | " \n",
659 | " | 0 | \n",
660 | " Patrick van Aanholt | \n",
661 | " DF | \n",
662 | " Crystal Palace | \n",
663 | " 12.7 | \n",
664 | " 79.0 | \n",
665 | " 6.220472 | \n",
666 | "
\n",
667 | " \n",
668 | " | 1 | \n",
669 | " Tammy Abraham | \n",
670 | " FW | \n",
671 | " Chelsea | \n",
672 | " 10.8 | \n",
673 | " 11.0 | \n",
674 | " 1.018519 | \n",
675 | "
\n",
676 | " \n",
677 | " | 2 | \n",
678 | " Che Adams | \n",
679 | " FW | \n",
680 | " Southampton | \n",
681 | " 19.3 | \n",
682 | " 38.0 | \n",
683 | " 1.968912 | \n",
684 | "
\n",
685 | " \n",
686 | " | 3 | \n",
687 | " Tosin Adarabioyo | \n",
688 | " DF | \n",
689 | " Fulham | \n",
690 | " 19.0 | \n",
691 | " 39.0 | \n",
692 | " 2.052632 | \n",
693 | "
\n",
694 | " \n",
695 | " | 4 | \n",
696 | " Adrián | \n",
697 | " GK | \n",
698 | " Liverpool | \n",
699 | " 2.0 | \n",
700 | " 0.0 | \n",
701 | " 0.000000 | \n",
702 | "
\n",
703 | " \n",
704 | " | 5 | \n",
705 | " Sergio Agüero | \n",
706 | " FW | \n",
707 | " Manchester City | \n",
708 | " 1.6 | \n",
709 | " 1.0 | \n",
710 | " 0.625000 | \n",
711 | "
\n",
712 | " \n",
713 | " | 6 | \n",
714 | " Ola Aina | \n",
715 | " DF | \n",
716 | " Fulham | \n",
717 | " 18.7 | \n",
718 | " 73.0 | \n",
719 | " 3.903743 | \n",
720 | "
\n",
721 | " \n",
722 | " | 7 | \n",
723 | " Rayan Aït Nouri | \n",
724 | " DF | \n",
725 | " Wolves | \n",
726 | " 7.7 | \n",
727 | " 18.0 | \n",
728 | " 2.337662 | \n",
729 | "
\n",
730 | " \n",
731 | " | 8 | \n",
732 | " Semi Ajayi | \n",
733 | " DF | \n",
734 | " West Brom | \n",
735 | " 23.0 | \n",
736 | " 49.0 | \n",
737 | " 2.130435 | \n",
738 | "
\n",
739 | " \n",
740 | " | 9 | \n",
741 | " Nathan Aké | \n",
742 | " DF | \n",
743 | " Manchester City | \n",
744 | " 5.2 | \n",
745 | " 23.0 | \n",
746 | " 4.423077 | \n",
747 | "
\n",
748 | " \n",
749 | "
\n",
750 | "
"
751 | ],
752 | "text/plain": [
753 | " Player Pos Squad 90s Prog ProgPer90\n",
754 | "0 Patrick van Aanholt DF Crystal Palace 12.7 79.0 6.220472\n",
755 | "1 Tammy Abraham FW Chelsea 10.8 11.0 1.018519\n",
756 | "2 Che Adams FW Southampton 19.3 38.0 1.968912\n",
757 | "3 Tosin Adarabioyo DF Fulham 19.0 39.0 2.052632\n",
758 | "4 Adrián GK Liverpool 2.0 0.0 0.000000\n",
759 | "5 Sergio Agüero FW Manchester City 1.6 1.0 0.625000\n",
760 | "6 Ola Aina DF Fulham 18.7 73.0 3.903743\n",
761 | "7 Rayan Aït Nouri DF Wolves 7.7 18.0 2.337662\n",
762 | "8 Semi Ajayi DF West Brom 23.0 49.0 2.130435\n",
763 | "9 Nathan Aké DF Manchester City 5.2 23.0 4.423077"
764 | ]
765 | },
766 | "execution_count": 10,
767 | "metadata": {},
768 | "output_type": "execute_result"
769 | }
770 | ],
771 | "source": [
772 | "data.head(10)"
773 | ]
774 | },
775 | {
776 | "cell_type": "code",
777 | "execution_count": 13,
778 | "id": "fatal-princeton",
779 | "metadata": {},
780 | "outputs": [],
781 | "source": [
782 | "#Data Manipulation to eliminate players (Remove who has played less than 6.5 of \"90 minutes\" football)\n",
783 | "data = data[data['90s']>=6.5]"
784 | ]
785 | },
786 | {
787 | "cell_type": "code",
788 | "execution_count": 14,
789 | "id": "crude-spouse",
790 | "metadata": {},
791 | "outputs": [
792 | {
793 | "data": {
794 | "text/html": [
795 | "\n",
796 | "\n",
809 | "
\n",
810 | " \n",
811 | " \n",
812 | " | \n",
813 | " Player | \n",
814 | " Pos | \n",
815 | " Squad | \n",
816 | " 90s | \n",
817 | " Prog | \n",
818 | " ProgPer90 | \n",
819 | "
\n",
820 | " \n",
821 | " \n",
822 | " \n",
823 | " | 0 | \n",
824 | " Patrick van Aanholt | \n",
825 | " DF | \n",
826 | " Crystal Palace | \n",
827 | " 12.7 | \n",
828 | " 79.0 | \n",
829 | " 6.220472 | \n",
830 | "
\n",
831 | " \n",
832 | " | 1 | \n",
833 | " Tammy Abraham | \n",
834 | " FW | \n",
835 | " Chelsea | \n",
836 | " 10.8 | \n",
837 | " 11.0 | \n",
838 | " 1.018519 | \n",
839 | "
\n",
840 | " \n",
841 | " | 2 | \n",
842 | " Che Adams | \n",
843 | " FW | \n",
844 | " Southampton | \n",
845 | " 19.3 | \n",
846 | " 38.0 | \n",
847 | " 1.968912 | \n",
848 | "
\n",
849 | " \n",
850 | " | 3 | \n",
851 | " Tosin Adarabioyo | \n",
852 | " DF | \n",
853 | " Fulham | \n",
854 | " 19.0 | \n",
855 | " 39.0 | \n",
856 | " 2.052632 | \n",
857 | "
\n",
858 | " \n",
859 | " | 6 | \n",
860 | " Ola Aina | \n",
861 | " DF | \n",
862 | " Fulham | \n",
863 | " 18.7 | \n",
864 | " 73.0 | \n",
865 | " 3.903743 | \n",
866 | "
\n",
867 | " \n",
868 | " | 7 | \n",
869 | " Rayan Aït Nouri | \n",
870 | " DF | \n",
871 | " Wolves | \n",
872 | " 7.7 | \n",
873 | " 18.0 | \n",
874 | " 2.337662 | \n",
875 | "
\n",
876 | " \n",
877 | " | 8 | \n",
878 | " Semi Ajayi | \n",
879 | " DF | \n",
880 | " West Brom | \n",
881 | " 23.0 | \n",
882 | " 49.0 | \n",
883 | " 2.130435 | \n",
884 | "
\n",
885 | " \n",
886 | " | 10 | \n",
887 | " Marc Albrighton | \n",
888 | " FW,DF | \n",
889 | " Leicester City | \n",
890 | " 12.4 | \n",
891 | " 52.0 | \n",
892 | " 4.193548 | \n",
893 | "
\n",
894 | " \n",
895 | " | 11 | \n",
896 | " Thiago Alcántara | \n",
897 | " MF | \n",
898 | " Liverpool | \n",
899 | " 9.1 | \n",
900 | " 87.0 | \n",
901 | " 9.560440 | \n",
902 | "
\n",
903 | " \n",
904 | " | 12 | \n",
905 | " Toby Alderweireld | \n",
906 | " DF | \n",
907 | " Tottenham | \n",
908 | " 13.9 | \n",
909 | " 31.0 | \n",
910 | " 2.230216 | \n",
911 | "
\n",
912 | " \n",
913 | "
\n",
914 | "
"
915 | ],
916 | "text/plain": [
917 | " Player Pos Squad 90s Prog ProgPer90\n",
918 | "0 Patrick van Aanholt DF Crystal Palace 12.7 79.0 6.220472\n",
919 | "1 Tammy Abraham FW Chelsea 10.8 11.0 1.018519\n",
920 | "2 Che Adams FW Southampton 19.3 38.0 1.968912\n",
921 | "3 Tosin Adarabioyo DF Fulham 19.0 39.0 2.052632\n",
922 | "6 Ola Aina DF Fulham 18.7 73.0 3.903743\n",
923 | "7 Rayan Aït Nouri DF Wolves 7.7 18.0 2.337662\n",
924 | "8 Semi Ajayi DF West Brom 23.0 49.0 2.130435\n",
925 | "10 Marc Albrighton FW,DF Leicester City 12.4 52.0 4.193548\n",
926 | "11 Thiago Alcántara MF Liverpool 9.1 87.0 9.560440\n",
927 | "12 Toby Alderweireld DF Tottenham 13.9 31.0 2.230216"
928 | ]
929 | },
930 | "execution_count": 14,
931 | "metadata": {},
932 | "output_type": "execute_result"
933 | }
934 | ],
935 | "source": [
936 | "data.head(10)"
937 | ]
938 | },
939 | {
940 | "cell_type": "code",
941 | "execution_count": 17,
942 | "id": "sticky-welcome",
943 | "metadata": {},
944 | "outputs": [],
945 | "source": [
946 | "#drop GK\n",
947 | "data = data[data['Pos'] != 'GK'].reset_index()"
948 | ]
949 | },
950 | {
951 | "cell_type": "code",
952 | "execution_count": 37,
953 | "id": "contained-toner",
954 | "metadata": {},
955 | "outputs": [
956 | {
957 | "data": {
958 | "text/html": [
959 | "\n",
960 | "\n",
973 | "
\n",
974 | " \n",
975 | " \n",
976 | " | \n",
977 | " index | \n",
978 | " Player | \n",
979 | " Pos | \n",
980 | " Squad | \n",
981 | " 90s | \n",
982 | " Prog | \n",
983 | " ProgPer90 | \n",
984 | "
\n",
985 | " \n",
986 | " \n",
987 | " \n",
988 | " | 0 | \n",
989 | " 0 | \n",
990 | " Patrick van Aanholt | \n",
991 | " DF | \n",
992 | " Crystal Palace | \n",
993 | " 12.7 | \n",
994 | " 79.0 | \n",
995 | " 6.220472 | \n",
996 | "
\n",
997 | " \n",
998 | " | 1 | \n",
999 | " 1 | \n",
1000 | " Tammy Abraham | \n",
1001 | " FW | \n",
1002 | " Chelsea | \n",
1003 | " 10.8 | \n",
1004 | " 11.0 | \n",
1005 | " 1.018519 | \n",
1006 | "
\n",
1007 | " \n",
1008 | " | 2 | \n",
1009 | " 2 | \n",
1010 | " Che Adams | \n",
1011 | " FW | \n",
1012 | " Southampton | \n",
1013 | " 19.3 | \n",
1014 | " 38.0 | \n",
1015 | " 1.968912 | \n",
1016 | "
\n",
1017 | " \n",
1018 | " | 3 | \n",
1019 | " 3 | \n",
1020 | " Tosin Adarabioyo | \n",
1021 | " DF | \n",
1022 | " Fulham | \n",
1023 | " 19.0 | \n",
1024 | " 39.0 | \n",
1025 | " 2.052632 | \n",
1026 | "
\n",
1027 | " \n",
1028 | " | 4 | \n",
1029 | " 6 | \n",
1030 | " Ola Aina | \n",
1031 | " DF | \n",
1032 | " Fulham | \n",
1033 | " 18.7 | \n",
1034 | " 73.0 | \n",
1035 | " 3.903743 | \n",
1036 | "
\n",
1037 | " \n",
1038 | " | 5 | \n",
1039 | " 7 | \n",
1040 | " Rayan Aït Nouri | \n",
1041 | " DF | \n",
1042 | " Wolves | \n",
1043 | " 7.7 | \n",
1044 | " 18.0 | \n",
1045 | " 2.337662 | \n",
1046 | "
\n",
1047 | " \n",
1048 | " | 6 | \n",
1049 | " 8 | \n",
1050 | " Semi Ajayi | \n",
1051 | " DF | \n",
1052 | " West Brom | \n",
1053 | " 23.0 | \n",
1054 | " 49.0 | \n",
1055 | " 2.130435 | \n",
1056 | "
\n",
1057 | " \n",
1058 | " | 7 | \n",
1059 | " 10 | \n",
1060 | " Marc Albrighton | \n",
1061 | " FW,DF | \n",
1062 | " Leicester City | \n",
1063 | " 12.4 | \n",
1064 | " 52.0 | \n",
1065 | " 4.193548 | \n",
1066 | "
\n",
1067 | " \n",
1068 | " | 8 | \n",
1069 | " 11 | \n",
1070 | " Thiago Alcántara | \n",
1071 | " MF | \n",
1072 | " Liverpool | \n",
1073 | " 9.1 | \n",
1074 | " 87.0 | \n",
1075 | " 9.560440 | \n",
1076 | "
\n",
1077 | " \n",
1078 | " | 9 | \n",
1079 | " 12 | \n",
1080 | " Toby Alderweireld | \n",
1081 | " DF | \n",
1082 | " Tottenham | \n",
1083 | " 13.9 | \n",
1084 | " 31.0 | \n",
1085 | " 2.230216 | \n",
1086 | "
\n",
1087 | " \n",
1088 | " | 10 | \n",
1089 | " 14 | \n",
1090 | " Trent Alexander-Arnold | \n",
1091 | " DF | \n",
1092 | " Liverpool | \n",
1093 | " 20.5 | \n",
1094 | " 178.0 | \n",
1095 | " 8.682927 | \n",
1096 | "
\n",
1097 | " \n",
1098 | " | 11 | \n",
1099 | " 15 | \n",
1100 | " Ezgjan Alioski | \n",
1101 | " DF,MF | \n",
1102 | " Leeds United | \n",
1103 | " 15.6 | \n",
1104 | " 63.0 | \n",
1105 | " 4.038462 | \n",
1106 | "
\n",
1107 | " \n",
1108 | " | 12 | \n",
1109 | " 17 | \n",
1110 | " Allan | \n",
1111 | " MF | \n",
1112 | " Everton | \n",
1113 | " 11.4 | \n",
1114 | " 26.0 | \n",
1115 | " 2.280702 | \n",
1116 | "
\n",
1117 | " \n",
1118 | " | 13 | \n",
1119 | " 19 | \n",
1120 | " Miguel Almirón | \n",
1121 | " MF,FW | \n",
1122 | " Newcastle Utd | \n",
1123 | " 16.2 | \n",
1124 | " 40.0 | \n",
1125 | " 2.469136 | \n",
1126 | "
\n",
1127 | " \n",
1128 | " | 14 | \n",
1129 | " 21 | \n",
1130 | " Steven Alzate | \n",
1131 | " MF,DF | \n",
1132 | " Brighton | \n",
1133 | " 7.5 | \n",
1134 | " 24.0 | \n",
1135 | " 3.200000 | \n",
1136 | "
\n",
1137 | " \n",
1138 | " | 15 | \n",
1139 | " 23 | \n",
1140 | " Ethan Ampadu | \n",
1141 | " DF,MF | \n",
1142 | " Sheffield Utd | \n",
1143 | " 15.8 | \n",
1144 | " 58.0 | \n",
1145 | " 3.670886 | \n",
1146 | "
\n",
1147 | " \n",
1148 | " | 16 | \n",
1149 | " 24 | \n",
1150 | " Joachim Andersen | \n",
1151 | " DF | \n",
1152 | " Fulham | \n",
1153 | " 16.7 | \n",
1154 | " 54.0 | \n",
1155 | " 3.233533 | \n",
1156 | "
\n",
1157 | " \n",
1158 | " | 17 | \n",
1159 | " 27 | \n",
1160 | " Michail Antonio | \n",
1161 | " FW | \n",
1162 | " West Ham | \n",
1163 | " 11.9 | \n",
1164 | " 10.0 | \n",
1165 | " 0.840336 | \n",
1166 | "
\n",
1167 | " \n",
1168 | " | 18 | \n",
1169 | " 29 | \n",
1170 | " Stuart Armstrong | \n",
1171 | " MF | \n",
1172 | " Southampton | \n",
1173 | " 17.2 | \n",
1174 | " 56.0 | \n",
1175 | " 3.255814 | \n",
1176 | "
\n",
1177 | " \n",
1178 | " | 19 | \n",
1179 | " 31 | \n",
1180 | " Pierre-Emerick Aubameyang | \n",
1181 | " FW | \n",
1182 | " Arsenal | \n",
1183 | " 18.5 | \n",
1184 | " 42.0 | \n",
1185 | " 2.270270 | \n",
1186 | "
\n",
1187 | " \n",
1188 | " | 20 | \n",
1189 | " 32 | \n",
1190 | " Serge Aurier | \n",
1191 | " DF | \n",
1192 | " Tottenham | \n",
1193 | " 11.9 | \n",
1194 | " 40.0 | \n",
1195 | " 3.361345 | \n",
1196 | "
\n",
1197 | " \n",
1198 | " | 21 | \n",
1199 | " 34 | \n",
1200 | " Jordan Ayew | \n",
1201 | " FW,MF | \n",
1202 | " Crystal Palace | \n",
1203 | " 13.6 | \n",
1204 | " 28.0 | \n",
1205 | " 2.058824 | \n",
1206 | "
\n",
1207 | " \n",
1208 | " | 22 | \n",
1209 | " 35 | \n",
1210 | " Luke Ayling | \n",
1211 | " DF | \n",
1212 | " Leeds United | \n",
1213 | " 22.8 | \n",
1214 | " 146.0 | \n",
1215 | " 6.403509 | \n",
1216 | "
\n",
1217 | " \n",
1218 | " | 23 | \n",
1219 | " 36 | \n",
1220 | " César Azpilicueta | \n",
1221 | " DF | \n",
1222 | " Chelsea | \n",
1223 | " 12.6 | \n",
1224 | " 57.0 | \n",
1225 | " 4.523810 | \n",
1226 | "
\n",
1227 | " \n",
1228 | " | 24 | \n",
1229 | " 38 | \n",
1230 | " Fabián Balbuena | \n",
1231 | " DF | \n",
1232 | " West Ham | \n",
1233 | " 12.0 | \n",
1234 | " 27.0 | \n",
1235 | " 2.250000 | \n",
1236 | "
\n",
1237 | " \n",
1238 | " | 25 | \n",
1239 | " 39 | \n",
1240 | " George Baldock | \n",
1241 | " DF | \n",
1242 | " Sheffield Utd | \n",
1243 | " 18.5 | \n",
1244 | " 38.0 | \n",
1245 | " 2.054054 | \n",
1246 | "
\n",
1247 | " \n",
1248 | " | 26 | \n",
1249 | " 41 | \n",
1250 | " Patrick Bamford | \n",
1251 | " FW | \n",
1252 | " Leeds United | \n",
1253 | " 21.8 | \n",
1254 | " 14.0 | \n",
1255 | " 0.642202 | \n",
1256 | "
\n",
1257 | " \n",
1258 | " | 27 | \n",
1259 | " 43 | \n",
1260 | " Ross Barkley | \n",
1261 | " MF | \n",
1262 | " Aston Villa | \n",
1263 | " 11.0 | \n",
1264 | " 44.0 | \n",
1265 | " 4.000000 | \n",
1266 | "
\n",
1267 | " \n",
1268 | " | 28 | \n",
1269 | " 45 | \n",
1270 | " Ashley Barnes | \n",
1271 | " FW | \n",
1272 | " Burnley | \n",
1273 | " 13.4 | \n",
1274 | " 18.0 | \n",
1275 | " 1.343284 | \n",
1276 | "
\n",
1277 | " \n",
1278 | " | 29 | \n",
1279 | " 46 | \n",
1280 | " Harvey Barnes | \n",
1281 | " FW,MF | \n",
1282 | " Leicester City | \n",
1283 | " 20.1 | \n",
1284 | " 58.0 | \n",
1285 | " 2.885572 | \n",
1286 | "
\n",
1287 | " \n",
1288 | " | 30 | \n",
1289 | " 47 | \n",
1290 | " Kyle Bartley | \n",
1291 | " DF | \n",
1292 | " West Brom | \n",
1293 | " 14.8 | \n",
1294 | " 14.0 | \n",
1295 | " 0.945946 | \n",
1296 | "
\n",
1297 | " \n",
1298 | " | 31 | \n",
1299 | " 48 | \n",
1300 | " Chris Basham | \n",
1301 | " DF,MF | \n",
1302 | " Sheffield Utd | \n",
1303 | " 22.1 | \n",
1304 | " 52.0 | \n",
1305 | " 2.352941 | \n",
1306 | "
\n",
1307 | " \n",
1308 | " | 32 | \n",
1309 | " 49 | \n",
1310 | " Michy Batshuayi | \n",
1311 | " FW | \n",
1312 | " Crystal Palace | \n",
1313 | " 7.8 | \n",
1314 | " 9.0 | \n",
1315 | " 1.153846 | \n",
1316 | "
\n",
1317 | " \n",
1318 | " | 33 | \n",
1319 | " 50 | \n",
1320 | " Jan Bednarek | \n",
1321 | " DF | \n",
1322 | " Southampton | \n",
1323 | " 21.9 | \n",
1324 | " 64.0 | \n",
1325 | " 2.922374 | \n",
1326 | "
\n",
1327 | " \n",
1328 | " | 34 | \n",
1329 | " 52 | \n",
1330 | " Héctor Bellerín | \n",
1331 | " DF | \n",
1332 | " Arsenal | \n",
1333 | " 20.2 | \n",
1334 | " 74.0 | \n",
1335 | " 3.663366 | \n",
1336 | "
\n",
1337 | " \n",
1338 | " | 35 | \n",
1339 | " 53 | \n",
1340 | " Saïd Benrahma | \n",
1341 | " MF,FW | \n",
1342 | " West Ham | \n",
1343 | " 9.5 | \n",
1344 | " 29.0 | \n",
1345 | " 3.052632 | \n",
1346 | "
\n",
1347 | " \n",
1348 | " | 36 | \n",
1349 | " 55 | \n",
1350 | " Christian Benteke | \n",
1351 | " FW | \n",
1352 | " Crystal Palace | \n",
1353 | " 8.9 | \n",
1354 | " 18.0 | \n",
1355 | " 2.022472 | \n",
1356 | "
\n",
1357 | " \n",
1358 | " | 37 | \n",
1359 | " 56 | \n",
1360 | " Jóhann Berg Guðmundsson | \n",
1361 | " MF | \n",
1362 | " Burnley | \n",
1363 | " 7.9 | \n",
1364 | " 21.0 | \n",
1365 | " 2.658228 | \n",
1366 | "
\n",
1367 | " \n",
1368 | " | 38 | \n",
1369 | " 57 | \n",
1370 | " Sander Berge | \n",
1371 | " MF | \n",
1372 | " Sheffield Utd | \n",
1373 | " 11.3 | \n",
1374 | " 29.0 | \n",
1375 | " 2.566372 | \n",
1376 | "
\n",
1377 | " \n",
1378 | " | 39 | \n",
1379 | " 58 | \n",
1380 | " Steven Bergwijn | \n",
1381 | " FW,MF | \n",
1382 | " Tottenham | \n",
1383 | " 11.3 | \n",
1384 | " 14.0 | \n",
1385 | " 1.238938 | \n",
1386 | "
\n",
1387 | " \n",
1388 | " | 40 | \n",
1389 | " 61 | \n",
1390 | " Ryan Bertrand | \n",
1391 | " DF | \n",
1392 | " Southampton | \n",
1393 | " 20.9 | \n",
1394 | " 73.0 | \n",
1395 | " 3.492823 | \n",
1396 | "
\n",
1397 | " \n",
1398 | " | 41 | \n",
1399 | " 62 | \n",
1400 | " Yves Bissouma | \n",
1401 | " MF | \n",
1402 | " Brighton | \n",
1403 | " 20.6 | \n",
1404 | " 77.0 | \n",
1405 | " 3.737864 | \n",
1406 | "
\n",
1407 | " \n",
1408 | " | 42 | \n",
1409 | " 63 | \n",
1410 | " Jayden Bogle | \n",
1411 | " DF | \n",
1412 | " Sheffield Utd | \n",
1413 | " 7.8 | \n",
1414 | " 17.0 | \n",
1415 | " 2.179487 | \n",
1416 | "
\n",
1417 | " \n",
1418 | " | 43 | \n",
1419 | " 64 | \n",
1420 | " Willy Boly | \n",
1421 | " DF | \n",
1422 | " Wolves | \n",
1423 | " 16.0 | \n",
1424 | " 33.0 | \n",
1425 | " 2.062500 | \n",
1426 | "
\n",
1427 | " \n",
1428 | " | 44 | \n",
1429 | " 65 | \n",
1430 | " Jarrod Bowen | \n",
1431 | " FW,MF | \n",
1432 | " West Ham | \n",
1433 | " 19.6 | \n",
1434 | " 30.0 | \n",
1435 | " 1.530612 | \n",
1436 | "
\n",
1437 | " \n",
1438 | " | 45 | \n",
1439 | " 66 | \n",
1440 | " Robbie Brady | \n",
1441 | " MF | \n",
1442 | " Burnley | \n",
1443 | " 10.9 | \n",
1444 | " 29.0 | \n",
1445 | " 2.660550 | \n",
1446 | "
\n",
1447 | " \n",
1448 | " | 46 | \n",
1449 | " 67 | \n",
1450 | " Rhian Brewster | \n",
1451 | " FW | \n",
1452 | " Sheffield Utd | \n",
1453 | " 8.2 | \n",
1454 | " 10.0 | \n",
1455 | " 1.219512 | \n",
1456 | "
\n",
1457 | " \n",
1458 | " | 47 | \n",
1459 | " 68 | \n",
1460 | " Josh Brownhill | \n",
1461 | " MF | \n",
1462 | " Burnley | \n",
1463 | " 17.5 | \n",
1464 | " 26.0 | \n",
1465 | " 1.485714 | \n",
1466 | "
\n",
1467 | " \n",
1468 | " | 48 | \n",
1469 | " 71 | \n",
1470 | " Oliver Burke | \n",
1471 | " FW | \n",
1472 | " Sheffield Utd | \n",
1473 | " 10.0 | \n",
1474 | " 6.0 | \n",
1475 | " 0.600000 | \n",
1476 | "
\n",
1477 | " \n",
1478 | " | 49 | \n",
1479 | " 72 | \n",
1480 | " Dan Burn | \n",
1481 | " DF | \n",
1482 | " Brighton | \n",
1483 | " 13.4 | \n",
1484 | " 46.0 | \n",
1485 | " 3.432836 | \n",
1486 | "
\n",
1487 | " \n",
1488 | " | 50 | \n",
1489 | " 76 | \n",
1490 | " Gary Cahill | \n",
1491 | " DF | \n",
1492 | " Crystal Palace | \n",
1493 | " 9.0 | \n",
1494 | " 18.0 | \n",
1495 | " 2.000000 | \n",
1496 | "
\n",
1497 | " \n",
1498 | " | 51 | \n",
1499 | " 77 | \n",
1500 | " Tom Cairney | \n",
1501 | " MF | \n",
1502 | " Fulham | \n",
1503 | " 8.4 | \n",
1504 | " 32.0 | \n",
1505 | " 3.809524 | \n",
1506 | "
\n",
1507 | " \n",
1508 | " | 52 | \n",
1509 | " 78 | \n",
1510 | " Dominic Calvert-Lewin | \n",
1511 | " FW | \n",
1512 | " Everton | \n",
1513 | " 19.6 | \n",
1514 | " 18.0 | \n",
1515 | " 0.918367 | \n",
1516 | "
\n",
1517 | " \n",
1518 | " | 53 | \n",
1519 | " 79 | \n",
1520 | " João Cancelo | \n",
1521 | " DF | \n",
1522 | " Manchester City | \n",
1523 | " 16.9 | \n",
1524 | " 119.0 | \n",
1525 | " 7.041420 | \n",
1526 | "
\n",
1527 | " \n",
1528 | " | 54 | \n",
1529 | " 82 | \n",
1530 | " Matty Cash | \n",
1531 | " DF | \n",
1532 | " Aston Villa | \n",
1533 | " 20.2 | \n",
1534 | " 42.0 | \n",
1535 | " 2.079208 | \n",
1536 | "
\n",
1537 | " \n",
1538 | " | 55 | \n",
1539 | " 84 | \n",
1540 | " Timothy Castagne | \n",
1541 | " DF | \n",
1542 | " Leicester City | \n",
1543 | " 12.1 | \n",
1544 | " 40.0 | \n",
1545 | " 3.305785 | \n",
1546 | "
\n",
1547 | " \n",
1548 | " | 56 | \n",
1549 | " 86 | \n",
1550 | " Ivan Cavaleiro | \n",
1551 | " FW,MF | \n",
1552 | " Fulham | \n",
1553 | " 16.1 | \n",
1554 | " 30.0 | \n",
1555 | " 1.863354 | \n",
1556 | "
\n",
1557 | " \n",
1558 | " | 57 | \n",
1559 | " 87 | \n",
1560 | " Edinson Cavani | \n",
1561 | " FW | \n",
1562 | " Manchester Utd | \n",
1563 | " 9.5 | \n",
1564 | " 13.0 | \n",
1565 | " 1.368421 | \n",
1566 | "
\n",
1567 | " \n",
1568 | " | 58 | \n",
1569 | " 88 | \n",
1570 | " Dani Ceballos | \n",
1571 | " MF | \n",
1572 | " Arsenal | \n",
1573 | " 12.3 | \n",
1574 | " 84.0 | \n",
1575 | " 6.829268 | \n",
1576 | "
\n",
1577 | " \n",
1578 | " | 59 | \n",
1579 | " 89 | \n",
1580 | " Ben Chilwell | \n",
1581 | " DF | \n",
1582 | " Chelsea | \n",
1583 | " 16.5 | \n",
1584 | " 96.0 | \n",
1585 | " 5.818182 | \n",
1586 | "
\n",
1587 | " \n",
1588 | "
\n",
1589 | "
"
1590 | ],
1591 | "text/plain": [
1592 | " index Player Pos Squad 90s Prog \\\n",
1593 | "0 0 Patrick van Aanholt DF Crystal Palace 12.7 79.0 \n",
1594 | "1 1 Tammy Abraham FW Chelsea 10.8 11.0 \n",
1595 | "2 2 Che Adams FW Southampton 19.3 38.0 \n",
1596 | "3 3 Tosin Adarabioyo DF Fulham 19.0 39.0 \n",
1597 | "4 6 Ola Aina DF Fulham 18.7 73.0 \n",
1598 | "5 7 Rayan Aït Nouri DF Wolves 7.7 18.0 \n",
1599 | "6 8 Semi Ajayi DF West Brom 23.0 49.0 \n",
1600 | "7 10 Marc Albrighton FW,DF Leicester City 12.4 52.0 \n",
1601 | "8 11 Thiago Alcántara MF Liverpool 9.1 87.0 \n",
1602 | "9 12 Toby Alderweireld DF Tottenham 13.9 31.0 \n",
1603 | "10 14 Trent Alexander-Arnold DF Liverpool 20.5 178.0 \n",
1604 | "11 15 Ezgjan Alioski DF,MF Leeds United 15.6 63.0 \n",
1605 | "12 17 Allan MF Everton 11.4 26.0 \n",
1606 | "13 19 Miguel Almirón MF,FW Newcastle Utd 16.2 40.0 \n",
1607 | "14 21 Steven Alzate MF,DF Brighton 7.5 24.0 \n",
1608 | "15 23 Ethan Ampadu DF,MF Sheffield Utd 15.8 58.0 \n",
1609 | "16 24 Joachim Andersen DF Fulham 16.7 54.0 \n",
1610 | "17 27 Michail Antonio FW West Ham 11.9 10.0 \n",
1611 | "18 29 Stuart Armstrong MF Southampton 17.2 56.0 \n",
1612 | "19 31 Pierre-Emerick Aubameyang FW Arsenal 18.5 42.0 \n",
1613 | "20 32 Serge Aurier DF Tottenham 11.9 40.0 \n",
1614 | "21 34 Jordan Ayew FW,MF Crystal Palace 13.6 28.0 \n",
1615 | "22 35 Luke Ayling DF Leeds United 22.8 146.0 \n",
1616 | "23 36 César Azpilicueta DF Chelsea 12.6 57.0 \n",
1617 | "24 38 Fabián Balbuena DF West Ham 12.0 27.0 \n",
1618 | "25 39 George Baldock DF Sheffield Utd 18.5 38.0 \n",
1619 | "26 41 Patrick Bamford FW Leeds United 21.8 14.0 \n",
1620 | "27 43 Ross Barkley MF Aston Villa 11.0 44.0 \n",
1621 | "28 45 Ashley Barnes FW Burnley 13.4 18.0 \n",
1622 | "29 46 Harvey Barnes FW,MF Leicester City 20.1 58.0 \n",
1623 | "30 47 Kyle Bartley DF West Brom 14.8 14.0 \n",
1624 | "31 48 Chris Basham DF,MF Sheffield Utd 22.1 52.0 \n",
1625 | "32 49 Michy Batshuayi FW Crystal Palace 7.8 9.0 \n",
1626 | "33 50 Jan Bednarek DF Southampton 21.9 64.0 \n",
1627 | "34 52 Héctor Bellerín DF Arsenal 20.2 74.0 \n",
1628 | "35 53 Saïd Benrahma MF,FW West Ham 9.5 29.0 \n",
1629 | "36 55 Christian Benteke FW Crystal Palace 8.9 18.0 \n",
1630 | "37 56 Jóhann Berg Guðmundsson MF Burnley 7.9 21.0 \n",
1631 | "38 57 Sander Berge MF Sheffield Utd 11.3 29.0 \n",
1632 | "39 58 Steven Bergwijn FW,MF Tottenham 11.3 14.0 \n",
1633 | "40 61 Ryan Bertrand DF Southampton 20.9 73.0 \n",
1634 | "41 62 Yves Bissouma MF Brighton 20.6 77.0 \n",
1635 | "42 63 Jayden Bogle DF Sheffield Utd 7.8 17.0 \n",
1636 | "43 64 Willy Boly DF Wolves 16.0 33.0 \n",
1637 | "44 65 Jarrod Bowen FW,MF West Ham 19.6 30.0 \n",
1638 | "45 66 Robbie Brady MF Burnley 10.9 29.0 \n",
1639 | "46 67 Rhian Brewster FW Sheffield Utd 8.2 10.0 \n",
1640 | "47 68 Josh Brownhill MF Burnley 17.5 26.0 \n",
1641 | "48 71 Oliver Burke FW Sheffield Utd 10.0 6.0 \n",
1642 | "49 72 Dan Burn DF Brighton 13.4 46.0 \n",
1643 | "50 76 Gary Cahill DF Crystal Palace 9.0 18.0 \n",
1644 | "51 77 Tom Cairney MF Fulham 8.4 32.0 \n",
1645 | "52 78 Dominic Calvert-Lewin FW Everton 19.6 18.0 \n",
1646 | "53 79 João Cancelo DF Manchester City 16.9 119.0 \n",
1647 | "54 82 Matty Cash DF Aston Villa 20.2 42.0 \n",
1648 | "55 84 Timothy Castagne DF Leicester City 12.1 40.0 \n",
1649 | "56 86 Ivan Cavaleiro FW,MF Fulham 16.1 30.0 \n",
1650 | "57 87 Edinson Cavani FW Manchester Utd 9.5 13.0 \n",
1651 | "58 88 Dani Ceballos MF Arsenal 12.3 84.0 \n",
1652 | "59 89 Ben Chilwell DF Chelsea 16.5 96.0 \n",
1653 | "\n",
1654 | " ProgPer90 \n",
1655 | "0 6.220472 \n",
1656 | "1 1.018519 \n",
1657 | "2 1.968912 \n",
1658 | "3 2.052632 \n",
1659 | "4 3.903743 \n",
1660 | "5 2.337662 \n",
1661 | "6 2.130435 \n",
1662 | "7 4.193548 \n",
1663 | "8 9.560440 \n",
1664 | "9 2.230216 \n",
1665 | "10 8.682927 \n",
1666 | "11 4.038462 \n",
1667 | "12 2.280702 \n",
1668 | "13 2.469136 \n",
1669 | "14 3.200000 \n",
1670 | "15 3.670886 \n",
1671 | "16 3.233533 \n",
1672 | "17 0.840336 \n",
1673 | "18 3.255814 \n",
1674 | "19 2.270270 \n",
1675 | "20 3.361345 \n",
1676 | "21 2.058824 \n",
1677 | "22 6.403509 \n",
1678 | "23 4.523810 \n",
1679 | "24 2.250000 \n",
1680 | "25 2.054054 \n",
1681 | "26 0.642202 \n",
1682 | "27 4.000000 \n",
1683 | "28 1.343284 \n",
1684 | "29 2.885572 \n",
1685 | "30 0.945946 \n",
1686 | "31 2.352941 \n",
1687 | "32 1.153846 \n",
1688 | "33 2.922374 \n",
1689 | "34 3.663366 \n",
1690 | "35 3.052632 \n",
1691 | "36 2.022472 \n",
1692 | "37 2.658228 \n",
1693 | "38 2.566372 \n",
1694 | "39 1.238938 \n",
1695 | "40 3.492823 \n",
1696 | "41 3.737864 \n",
1697 | "42 2.179487 \n",
1698 | "43 2.062500 \n",
1699 | "44 1.530612 \n",
1700 | "45 2.660550 \n",
1701 | "46 1.219512 \n",
1702 | "47 1.485714 \n",
1703 | "48 0.600000 \n",
1704 | "49 3.432836 \n",
1705 | "50 2.000000 \n",
1706 | "51 3.809524 \n",
1707 | "52 0.918367 \n",
1708 | "53 7.041420 \n",
1709 | "54 2.079208 \n",
1710 | "55 3.305785 \n",
1711 | "56 1.863354 \n",
1712 | "57 1.368421 \n",
1713 | "58 6.829268 \n",
1714 | "59 5.818182 "
1715 | ]
1716 | },
1717 | "execution_count": 37,
1718 | "metadata": {},
1719 | "output_type": "execute_result"
1720 | }
1721 | ],
1722 | "source": [
1723 | "data.head(60)"
1724 | ]
1725 | },
1726 | {
1727 | "cell_type": "code",
1728 | "execution_count": 48,
1729 | "id": "defined-arrow",
1730 | "metadata": {},
1731 | "outputs": [
1732 | {
1733 | "name": "stdout",
1734 | "output_type": "stream",
1735 | "text": [
1736 | " index Player Pos Squad 90s Prog ProgPer90\n",
1737 | "53 79 João Cancelo DF Manchester City 16.9 119.0 7.04142\n"
1738 | ]
1739 | }
1740 | ],
1741 | "source": [
1742 | "i=data[data['Player']== 'João Cancelo']\n",
1743 | "print(i)"
1744 | ]
1745 | },
1746 | {
1747 | "cell_type": "code",
1748 | "execution_count": 42,
1749 | "id": "interested-color",
1750 | "metadata": {},
1751 | "outputs": [
1752 | {
1753 | "name": "stdout",
1754 | "output_type": "stream",
1755 | "text": [
1756 | " index Player Pos Squad 90s Prog ProgPer90\n",
1757 | "237 409 Luke Shaw DF Manchester Utd 17.5 100.0 5.714286\n"
1758 | ]
1759 | }
1760 | ],
1761 | "source": [
1762 | "i=data[data['Player']== 'Luke Shaw']\n",
1763 | "print(i)"
1764 | ]
1765 | },
1766 | {
1767 | "cell_type": "code",
1768 | "execution_count": 44,
1769 | "id": "intense-burner",
1770 | "metadata": {},
1771 | "outputs": [
1772 | {
1773 | "name": "stdout",
1774 | "output_type": "stream",
1775 | "text": [
1776 | " index Player Pos Squad 90s Prog ProgPer90\n",
1777 | "10 14 Trent Alexander-Arnold DF Liverpool 20.5 178.0 8.682927\n"
1778 | ]
1779 | }
1780 | ],
1781 | "source": [
1782 | "i=data[data['Player']== 'Trent Alexander-Arnold']\n",
1783 | "print(i)"
1784 | ]
1785 | },
1786 | {
1787 | "cell_type": "code",
1788 | "execution_count": 45,
1789 | "id": "running-spirituality",
1790 | "metadata": {},
1791 | "outputs": [
1792 | {
1793 | "name": "stdout",
1794 | "output_type": "stream",
1795 | "text": [
1796 | " index Player Pos Squad 90s Prog ProgPer90\n",
1797 | "269 468 Kyle Walker DF Manchester City 13.3 62.0 4.661654\n"
1798 | ]
1799 | }
1800 | ],
1801 | "source": [
1802 | "i=data[data['Player']== 'Kyle Walker']\n",
1803 | "print(i)"
1804 | ]
1805 | },
1806 | {
1807 | "cell_type": "code",
1808 | "execution_count": 46,
1809 | "id": "hundred-lounge",
1810 | "metadata": {},
1811 | "outputs": [
1812 | {
1813 | "name": "stdout",
1814 | "output_type": "stream",
1815 | "text": [
1816 | " index Player Pos Squad 90s Prog ProgPer90\n",
1817 | "257 443 Kieran Tierney DF Arsenal 16.9 76.0 4.497041\n"
1818 | ]
1819 | }
1820 | ],
1821 | "source": [
1822 | "i=data[data['Player']== 'Kieran Tierney']\n",
1823 | "print(i)"
1824 | ]
1825 | },
1826 | {
1827 | "cell_type": "code",
1828 | "execution_count": 47,
1829 | "id": "dominant-bathroom",
1830 | "metadata": {},
1831 | "outputs": [
1832 | {
1833 | "name": "stdout",
1834 | "output_type": "stream",
1835 | "text": [
1836 | " index Player Pos Squad 90s Prog ProgPer90\n",
1837 | "218 376 Andrew Robertson DF Liverpool 23.9 178.0 7.447699\n"
1838 | ]
1839 | }
1840 | ],
1841 | "source": [
1842 | "i=data[data['Player']== 'Andrew Robertson']\n",
1843 | "print(i)"
1844 | ]
1845 | },
1846 | {
1847 | "cell_type": "code",
1848 | "execution_count": 51,
1849 | "id": "connected-filter",
1850 | "metadata": {},
1851 | "outputs": [
1852 | {
1853 | "name": "stdout",
1854 | "output_type": "stream",
1855 | "text": [
1856 | " index Player Pos Squad 90s Prog ProgPer90\n",
1857 | "271 470 Aaron Wan-Bissaka DF Manchester Utd 22.0 82.0 3.727273\n"
1858 | ]
1859 | }
1860 | ],
1861 | "source": [
1862 | "i=data[data['Player']== 'Aaron Wan-Bissaka']\n",
1863 | "print(i)"
1864 | ]
1865 | },
1866 | {
1867 | "cell_type": "code",
1868 | "execution_count": 52,
1869 | "id": "genuine-breast",
1870 | "metadata": {},
1871 | "outputs": [
1872 | {
1873 | "name": "stdout",
1874 | "output_type": "stream",
1875 | "text": [
1876 | " index Player Pos Squad 90s Prog ProgPer90\n",
1877 | "128 206 Reece James DF Chelsea 15.4 75.0 4.87013\n"
1878 | ]
1879 | }
1880 | ],
1881 | "source": [
1882 | "i=data[data['Player']== 'Reece James']\n",
1883 | "print(i)"
1884 | ]
1885 | },
1886 | {
1887 | "cell_type": "code",
1888 | "execution_count": 20,
1889 | "id": "interested-bride",
1890 | "metadata": {},
1891 | "outputs": [],
1892 | "source": [
1893 | "#save this dataframe in a csv\n",
1894 | "data.to_csv('analysis.csv')"
1895 | ]
1896 | },
1897 | {
1898 | "cell_type": "code",
1899 | "execution_count": 21,
1900 | "id": "civil-outline",
1901 | "metadata": {},
1902 | "outputs": [],
1903 | "source": [
1904 | "#create plots"
1905 | ]
1906 | },
1907 | {
1908 | "cell_type": "code",
1909 | "execution_count": 22,
1910 | "id": "thick-paradise",
1911 | "metadata": {},
1912 | "outputs": [],
1913 | "source": [
1914 | "#famous import font code to use Andale Mono\n",
1915 | "import matplotlib.font_manager\n",
1916 | "from IPython.core.display import HTML\n",
1917 | "\n",
1918 | "def make_html(fontname):\n",
1919 | " return \"{font}: {font}
\".format(font=fontname)\n",
1920 | "\n",
1921 | "code = \"\\n\".join([make_html(font) for font in sorted(set([f.name for f in matplotlib.font_manager.fontManager.ttflist]))])"
1922 | ]
1923 | },
1924 | {
1925 | "cell_type": "code",
1926 | "execution_count": 24,
1927 | "id": "familiar-vintage",
1928 | "metadata": {},
1929 | "outputs": [],
1930 | "source": [
1931 | "import highlight_text"
1932 | ]
1933 | },
1934 | {
1935 | "cell_type": "code",
1936 | "execution_count": 25,
1937 | "id": "japanese-treat",
1938 | "metadata": {},
1939 | "outputs": [],
1940 | "source": [
1941 | "#set default colors\n",
1942 | "text_color = 'white'\n",
1943 | "background = '#313332'"
1944 | ]
1945 | },
1946 | {
1947 | "cell_type": "code",
1948 | "execution_count": 128,
1949 | "id": "least-korean",
1950 | "metadata": {},
1951 | "outputs": [
1952 | {
1953 | "data": {
1954 | "image/png": "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FixsbriZ9ofaUeJQzOGQCAByTXkke6awvf65hzRbUDOZiFhpHiI5b+Hh4bzw/Av4+vri4uLCgAEDuL3n7VVdLLkKJHslUzexLtnOORQZrX2rMtxOYDKbCE0PJdkrGWOxEQccKDAWYHGw4JvtS43UsErfO9slm18bbqJWSi0anWyai/a39leqmRKGocQAFnArcCPohFaIF5GKqYZIzlvTJk3LP9e0KStX/QPDnuU/LdkzhfDkcGL8YkufdIBUj1RCToSQ7JlCtms2+0MO0OZIawwlBlI8U4j1i8E7t3zn/TPlOeexqeEm2h1uh1OxkT/D/mJLg800im1Mo9hGOJY4kuucS1TAMSC50vcTEfujeYjkvIWFhbHkm29xdHS0Pffc8xNYu3ZtFZZKRETk0qnJTM5bdHQ0kyZPJjomhvT0dObNm6cwJCIi/wlqMpMLsub7NRQU5DN0yFDa39ieo5FHKx2SLiIicqVTk5lckPr167P480W2ZrOSkhKGDBvKvn37qrhkIiIiF09NZnJB2rdrV6YPkcFg4Mb2N1ZhiURERC6dApFckCNHjpZ/7qjW7BIRkaubApFckE2bN/HV119hNpsxm80sWbqUH/+Dy3WIiIh9UR8iuSienp44ODiQmZlZ+cYiIiJXOI0yk4uSlZVV1UUQERH5x6jJTEREROyeApGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROyeApGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROyeApGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROyeApGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROyeApGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROyeApGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROyeApGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROyeApGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROyeApGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROyeApGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROyeApGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN1TIBIRERG7p0AkIiIidk+BSEREROyeApGIiIjYPQUiERERsXsKRCIiImL3FIhERETE7ikQiYiIiN2rkkDUr2/fqjisXATdq6uL7tfVRffr6qF7dXW5mPtVRYGoX1UcVi6C7tXVRffr6qL7dfXQvbq6XMz9UpOZiIiI2D0FIhEREbF7VRKIlixdUhWHlYuge3V10f26uuh+XT10r64uF3O/HK5r1dLyL5RFRERE5KqhJjMRERGxe8bLebD27doxbtw4HA2OLF22jAULF1zOw8sFCA4OZtrUafj7+WGxWFiydClffPlFVRdLzsFgMPD5Z5+RnJTM6LFjqro4cg4eHh5MmjiRunXrgcXC1GlT+fOvv6q6WHIWAwcM4M4+d2LBQkREBFOmTqWwsLCqiyUnTZ40iY4dOpKWnsa9990HgJeXFy/PnEloSChx8XGMf+45srKyzvk+l62GyGAwMH78c4x68knuuuduunfrRnh4+OU6vFygYnMxb7zxBnffew9DHxjGvffco/t1hbv//vuJjIyq6mLIeXhm3DNs2bKVu+6+i/vu78/RyMiqLpKcRWBgIP3v68+gIYO59777MBgc6da1W1UXS06zYsUKnhg1qsxzDwwbxo4dO7mzX1927NjJA8OGVfo+ly0QNW3ShJjoaGJjYzGbzfywdi2dO3W+XIeXC5SSmsKBgwcAyM3NJTIqkqCgoCoulZxNUFAQHW/swLJly6q6KFIJD3cPWl53HcuWLwPAbDaTnZ1dtYWSc3J0dMTZ2RlHR0dcXVxITk6u6iLJaXbt3s2JzBNlnuvUqRMrV64EYOXKlXTu3LnS97lsTWaBQUEkJCbaHiclJdK0adPLdXi5BCEhITRseA179+6t6qLIWYx7+mneevst3Nzdq7ooUonQ6qGkZ6QzZfIU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\n",
1955 | "text/plain": [
1956 | ""
1957 | ]
1958 | },
1959 | "metadata": {},
1960 | "output_type": "display_data"
1961 | }
1962 | ],
1963 | "source": [
1964 | "fig, ax = plt.subplots(figsize=(10,5))\n",
1965 | "fig.set_facecolor(background)\n",
1966 | "ax.patch.set_facecolor(background)\n",
1967 | "\n",
1968 | "#set up our base layer\n",
1969 | "mpl.rcParams['xtick.color'] = text_color\n",
1970 | "mpl.rcParams['ytick.color'] = text_color\n",
1971 | "\n",
1972 | "ax.grid(ls='dotted',lw=.5,color='lightgrey',axis='y',zorder=1)\n",
1973 | "spines = ['top','bottom','left','right']\n",
1974 | "for x in spines:\n",
1975 | " if x in spines:\n",
1976 | " ax.spines[x].set_visible(False)\n",
1977 | "\n",
1978 | "sns.swarmplot(x='ProgPer90',data=data,color='white',zorder=1)\n",
1979 | "\n",
1980 | "#plot Shaw\n",
1981 | "plt.scatter(x=5.714286,y=0,c='red',edgecolor='white',s=250,zorder=2)\n",
1982 | "plt.text(s='Shaw',x=5.714286,y=.08,c='red', fontsize=12)\n",
1983 | "\n",
1984 | "#plot Robertson\n",
1985 | "plt.scatter(x=7.447699,y=0,c='pink',edgecolor='white',s=250,zorder=2)\n",
1986 | "plt.text(s='Robertson',x=7.447699,y=.09,c='pink', fontsize=12)\n",
1987 | "\n",
1988 | "#plot TAA\n",
1989 | "plt.scatter(x=8.682927,y=0,c='yellow',edgecolor='white',s=250,zorder=2)\n",
1990 | "plt.text(s='TAA',x=8.682927,y=-.04,c='yellow', fontsize=12)\n",
1991 | "\n",
1992 | "#plot Tierney\n",
1993 | "plt.scatter(x=4.497041,y=0,c='green',edgecolor='white',s=250,zorder=2)\n",
1994 | "plt.text(s='Tierney',x=4.497041,y=-.07,c='green', fontsize=12)\n",
1995 | "\n",
1996 | "#plot Cancelo\n",
1997 | "plt.scatter(x=7.04142,y=0,c='blue',edgecolor='white',s=250,zorder=2)\n",
1998 | "plt.text(s='Cancelo',x=7.04142,y=-.07,c='blue', fontsize=13)\n",
1999 | "\n",
2000 | "#plot Walker\n",
2001 | "plt.scatter(x=4.661654,y=0,c='purple',edgecolor='white',s=250,zorder=2)\n",
2002 | "plt.text(s='Walker',x=4.661654,y=.12,c='purple', fontsize=13)\n",
2003 | "\n",
2004 | "#plot AWB\n",
2005 | "plt.scatter(x= 3.727273,y=0,c='magenta',edgecolor='white',s=250,zorder=2)\n",
2006 | "plt.text(s='AWB',x= 3.727273,y=-.09,c='magenta', fontsize=12)\n",
2007 | "\n",
2008 | "#plot Reece\n",
2009 | "plt.scatter(x=4.87013,y=0,c='cyan',edgecolor='white',s=250,zorder=2)\n",
2010 | "plt.text(s='Reece',x=4.87013,y=.07,c='cyan', fontsize=12)\n",
2011 | "\n",
2012 | "plt.title('Progressive Passes by the top Full backs in the Premier League 2020/21',c='white',fontsize=15,\n",
2013 | " bbox={'facecolor': 'red', 'alpha': 0.6, 'pad': 10})\n",
2014 | "\n",
2015 | "plt.xlabel('Progressive Passes per 90 minutes',c='yellow', fontsize=14)\n",
2016 | "\n",
2017 | "fig.text(.12,.03,\"@Sonu\", fontstyle='italic',fontsize=12, fontfamily='Andale Mono',color=text_color)\n",
2018 | "\n",
2019 | "plt.savefig('output.png')"
2020 | ]
2021 | },
2022 | {
2023 | "cell_type": "code",
2024 | "execution_count": null,
2025 | "id": "serial-cocktail",
2026 | "metadata": {},
2027 | "outputs": [],
2028 | "source": []
2029 | }
2030 | ],
2031 | "metadata": {
2032 | "kernelspec": {
2033 | "display_name": "Python 3",
2034 | "language": "python",
2035 | "name": "python3"
2036 | },
2037 | "language_info": {
2038 | "codemirror_mode": {
2039 | "name": "ipython",
2040 | "version": 3
2041 | },
2042 | "file_extension": ".py",
2043 | "mimetype": "text/x-python",
2044 | "name": "python",
2045 | "nbconvert_exporter": "python",
2046 | "pygments_lexer": "ipython3",
2047 | "version": "3.8.5"
2048 | }
2049 | },
2050 | "nbformat": 4,
2051 | "nbformat_minor": 5
2052 | }
2053 |
--------------------------------------------------------------------------------