diff --git a/assignments/02/.ipynb_checkpoints/02-checkpoint.ipynb b/assignments/02/.ipynb_checkpoints/02-checkpoint.ipynb new file mode 100644 index 0000000..4326bcf --- /dev/null +++ b/assignments/02/.ipynb_checkpoints/02-checkpoint.ipynb @@ -0,0 +1,1505 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TeamTournamentGoalsShots pgyellow_cardsred_cardsPossession%Pass%AerialsWonRating
0Manchester CityPremier League8315.846260.889.412.87.01
1Bayern MunichBundesliga9917.144358.185.512.96.95
2Paris Saint-GermainLigue 18615.073760.189.59.56.88
3BarcelonaLaLiga8515.368262.489.710.66.87
4Real MadridLaLiga6714.457257.787.711.86.86
5Manchester UnitedPremier League7313.864154.584.814.56.85
6JuventusSerie A7715.776655.488.311.46.85
7Aston VillaPremier League5513.763449.178.619.46.84
8Borussia DortmundBundesliga7514.643157.585.512.86.84
9Atletico MadridLaLiga6712.1100051.883.114.46.84
10AtalantaSerie A9016.366353.583.516.86.84
11ChelseaPremier League5814.649358.687.015.26.83
12LiverpoolPremier League6816.040059.085.714.36.82
13AC MilanSerie A7414.780451.484.015.26.82
14LilleLigue 16412.867252.683.515.86.82
15TottenhamPremier League6811.753251.381.816.46.81
16NapoliSerie A8617.071354.187.011.16.81
17LeicesterPremier League6812.861053.282.116.26.80
18WolfsburgBundesliga6114.156351.078.016.96.80
19InterSerie A8914.559252.087.011.86.80
20LyonLigue 18116.1601053.684.714.36.80
21RB LeipzigBundesliga6016.057057.383.218.66.78
22LeedsPremier League6213.761155.180.814.56.77
23West HamPremier League6212.348344.577.819.96.77
24EvertonPremier League4710.559247.381.417.76.73
25Bayer LeverkusenBundesliga5313.058057.384.413.16.73
26Eintracht FrankfurtBundesliga6913.280152.479.617.96.73
27MonacoLigue 17612.874754.282.716.56.73
28RomaSerie A6814.384351.584.512.16.71
29SevillaLaLiga5312.175258.786.216.66.70
.................................
68BolognaSerie A5113.178450.781.515.16.56
69AugsburgBundesliga369.965444.073.616.86.56
70UdineseSerie A4210.963247.282.513.16.55
71SD HuescaLaLiga3410.768248.779.815.76.55
72Athletic BilbaoLaLiga4610.681349.478.517.96.54
73OsasunaLaLiga379.874544.670.226.86.54
74LorientLigue 15011.267345.978.813.76.54
75GenoaSerie A479.085246.179.713.76.54
76Arminia BielefeldBundesliga269.852144.174.622.26.53
77AngersLigue 14010.763247.181.313.26.53
78EibarLaLiga2911.967349.272.624.46.53
79Werder BremenBundesliga3610.663345.276.218.36.52
80FiorentinaSerie A479.886546.881.014.26.52
81NimesLigue 14010.357545.877.514.06.52
82West Bromwich AlbionPremier League358.951441.072.219.16.51
83FC KolnBundesliga3410.662147.177.318.56.51
84Deportivo AlavesLaLiga369.187844.672.922.66.50
85LevanteLaLiga4610.170151.580.112.26.50
86SpeziaSerie A5210.292551.681.114.46.50
87GetafeLaLiga289.5117744.466.522.86.49
88Parma Calcio 1913Serie A3910.491148.482.516.96.49
89ElcheLaLiga347.195348.181.513.26.48
90GranadaLaLiga479.496643.470.018.36.47
91CadizLaLiga368.077338.568.818.56.47
92Real ValladolidLaLiga349.793446.274.817.16.46
93Sheffield UnitedPremier League208.573343.076.919.16.46
94CrotoneSerie A459.585447.280.412.76.43
95BeneventoSerie A4011.090544.277.713.46.43
96DijonLigue 1259.275546.980.014.36.42
97Schalke 04Bundesliga258.970246.276.515.66.41
\n", + "

98 rows × 10 columns

\n", + "
" + ], + "text/plain": [ + " Team Tournament Goals Shots pg yellow_cards \\\n", + "0 Manchester City Premier League 83 15.8 46 \n", + "1 Bayern Munich Bundesliga 99 17.1 44 \n", + "2 Paris Saint-Germain Ligue 1 86 15.0 73 \n", + "3 Barcelona LaLiga 85 15.3 68 \n", + "4 Real Madrid LaLiga 67 14.4 57 \n", + "5 Manchester United Premier League 73 13.8 64 \n", + "6 Juventus Serie A 77 15.7 76 \n", + "7 Aston Villa Premier League 55 13.7 63 \n", + "8 Borussia Dortmund Bundesliga 75 14.6 43 \n", + "9 Atletico Madrid LaLiga 67 12.1 100 \n", + "10 Atalanta Serie A 90 16.3 66 \n", + "11 Chelsea Premier League 58 14.6 49 \n", + "12 Liverpool Premier League 68 16.0 40 \n", + "13 AC Milan Serie A 74 14.7 80 \n", + "14 Lille Ligue 1 64 12.8 67 \n", + "15 Tottenham Premier League 68 11.7 53 \n", + "16 Napoli Serie A 86 17.0 71 \n", + "17 Leicester Premier League 68 12.8 61 \n", + "18 Wolfsburg Bundesliga 61 14.1 56 \n", + "19 Inter Serie A 89 14.5 59 \n", + "20 Lyon Ligue 1 81 16.1 60 \n", + "21 RB Leipzig Bundesliga 60 16.0 57 \n", + "22 Leeds Premier League 62 13.7 61 \n", + "23 West Ham Premier League 62 12.3 48 \n", + "24 Everton Premier League 47 10.5 59 \n", + "25 Bayer Leverkusen Bundesliga 53 13.0 58 \n", + "26 Eintracht Frankfurt Bundesliga 69 13.2 80 \n", + "27 Monaco Ligue 1 76 12.8 74 \n", + "28 Roma Serie A 68 14.3 84 \n", + "29 Sevilla LaLiga 53 12.1 75 \n", + ".. ... ... ... ... ... \n", + "68 Bologna Serie A 51 13.1 78 \n", + "69 Augsburg Bundesliga 36 9.9 65 \n", + "70 Udinese Serie A 42 10.9 63 \n", + "71 SD Huesca LaLiga 34 10.7 68 \n", + "72 Athletic Bilbao LaLiga 46 10.6 81 \n", + "73 Osasuna LaLiga 37 9.8 74 \n", + "74 Lorient Ligue 1 50 11.2 67 \n", + "75 Genoa Serie A 47 9.0 85 \n", + "76 Arminia Bielefeld Bundesliga 26 9.8 52 \n", + "77 Angers Ligue 1 40 10.7 63 \n", + "78 Eibar LaLiga 29 11.9 67 \n", + "79 Werder Bremen Bundesliga 36 10.6 63 \n", + "80 Fiorentina Serie A 47 9.8 86 \n", + "81 Nimes Ligue 1 40 10.3 57 \n", + "82 West Bromwich Albion Premier League 35 8.9 51 \n", + "83 FC Koln Bundesliga 34 10.6 62 \n", + "84 Deportivo Alaves LaLiga 36 9.1 87 \n", + "85 Levante LaLiga 46 10.1 70 \n", + "86 Spezia Serie A 52 10.2 92 \n", + "87 Getafe LaLiga 28 9.5 117 \n", + "88 Parma Calcio 1913 Serie A 39 10.4 91 \n", + "89 Elche LaLiga 34 7.1 95 \n", + "90 Granada LaLiga 47 9.4 96 \n", + "91 Cadiz LaLiga 36 8.0 77 \n", + "92 Real Valladolid LaLiga 34 9.7 93 \n", + "93 Sheffield United Premier League 20 8.5 73 \n", + "94 Crotone Serie A 45 9.5 85 \n", + "95 Benevento Serie A 40 11.0 90 \n", + "96 Dijon Ligue 1 25 9.2 75 \n", + "97 Schalke 04 Bundesliga 25 8.9 70 \n", + "\n", + " red_cards Possession% Pass% AerialsWon Rating \n", + "0 2 60.8 89.4 12.8 7.01 \n", + "1 3 58.1 85.5 12.9 6.95 \n", + "2 7 60.1 89.5 9.5 6.88 \n", + "3 2 62.4 89.7 10.6 6.87 \n", + "4 2 57.7 87.7 11.8 6.86 \n", + "5 1 54.5 84.8 14.5 6.85 \n", + "6 6 55.4 88.3 11.4 6.85 \n", + "7 4 49.1 78.6 19.4 6.84 \n", + "8 1 57.5 85.5 12.8 6.84 \n", + "9 0 51.8 83.1 14.4 6.84 \n", + "10 3 53.5 83.5 16.8 6.84 \n", + "11 3 58.6 87.0 15.2 6.83 \n", + "12 0 59.0 85.7 14.3 6.82 \n", + "13 4 51.4 84.0 15.2 6.82 \n", + "14 2 52.6 83.5 15.8 6.82 \n", + "15 2 51.3 81.8 16.4 6.81 \n", + "16 3 54.1 87.0 11.1 6.81 \n", + "17 0 53.2 82.1 16.2 6.80 \n", + "18 3 51.0 78.0 16.9 6.80 \n", + "19 2 52.0 87.0 11.8 6.80 \n", + "20 10 53.6 84.7 14.3 6.80 \n", + "21 0 57.3 83.2 18.6 6.78 \n", + "22 1 55.1 80.8 14.5 6.77 \n", + "23 3 44.5 77.8 19.9 6.77 \n", + "24 2 47.3 81.4 17.7 6.73 \n", + "25 0 57.3 84.4 13.1 6.73 \n", + "26 1 52.4 79.6 17.9 6.73 \n", + "27 7 54.2 82.7 16.5 6.73 \n", + "28 3 51.5 84.5 12.1 6.71 \n", + "29 2 58.7 86.2 16.6 6.70 \n", + ".. ... ... ... ... ... \n", + "68 4 50.7 81.5 15.1 6.56 \n", + "69 4 44.0 73.6 16.8 6.56 \n", + "70 2 47.2 82.5 13.1 6.55 \n", + "71 2 48.7 79.8 15.7 6.55 \n", + "72 3 49.4 78.5 17.9 6.54 \n", + "73 5 44.6 70.2 26.8 6.54 \n", + "74 3 45.9 78.8 13.7 6.54 \n", + "75 2 46.1 79.7 13.7 6.54 \n", + "76 1 44.1 74.6 22.2 6.53 \n", + "77 2 47.1 81.3 13.2 6.53 \n", + "78 3 49.2 72.6 24.4 6.53 \n", + "79 3 45.2 76.2 18.3 6.52 \n", + "80 5 46.8 81.0 14.2 6.52 \n", + "81 5 45.8 77.5 14.0 6.52 \n", + "82 4 41.0 72.2 19.1 6.51 \n", + "83 1 47.1 77.3 18.5 6.51 \n", + "84 8 44.6 72.9 22.6 6.50 \n", + "85 1 51.5 80.1 12.2 6.50 \n", + "86 5 51.6 81.1 14.4 6.50 \n", + "87 7 44.4 66.5 22.8 6.49 \n", + "88 1 48.4 82.5 16.9 6.49 \n", + "89 3 48.1 81.5 13.2 6.48 \n", + "90 6 43.4 70.0 18.3 6.47 \n", + "91 3 38.5 68.8 18.5 6.47 \n", + "92 4 46.2 74.8 17.1 6.46 \n", + "93 3 43.0 76.9 19.1 6.46 \n", + "94 4 47.2 80.4 12.7 6.43 \n", + "95 5 44.2 77.7 13.4 6.43 \n", + "96 5 46.9 80.0 14.3 6.42 \n", + "97 2 46.2 76.5 15.6 6.41 \n", + "\n", + "[98 rows x 10 columns]" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "df = pd.read_csv('./Football teams.csv')\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "각 Column의 정보는 다음 링크에 있는 것과 같습니다.\n", + "\n", + "https://www.kaggle.com/varpit94/football-teams-rankings-stats\n", + "\n", + "## Assignments 1\n", + "패스 성공률이 높은 상위 5개의 팀을 추출 해 보세요\n", + "(hint: sort_values, head)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TeamTournamentGoalsShots pgyellow_cardsred_cardsPossession%Pass%AerialsWonRating
3BarcelonaLaLiga8515.368262.489.710.66.87
2Paris Saint-GermainLigue 18615.073760.189.59.56.88
0Manchester CityPremier League8315.846260.889.412.87.01
6JuventusSerie A7715.776655.488.311.46.85
35SassuoloSerie A6413.974458.287.810.96.67
\n", + "
" + ], + "text/plain": [ + " Team Tournament Goals Shots pg yellow_cards \\\n", + "3 Barcelona LaLiga 85 15.3 68 \n", + "2 Paris Saint-Germain Ligue 1 86 15.0 73 \n", + "0 Manchester City Premier League 83 15.8 46 \n", + "6 Juventus Serie A 77 15.7 76 \n", + "35 Sassuolo Serie A 64 13.9 74 \n", + "\n", + " red_cards Possession% Pass% AerialsWon Rating \n", + "3 2 62.4 89.7 10.6 6.87 \n", + "2 7 60.1 89.5 9.5 6.88 \n", + "0 2 60.8 89.4 12.8 7.01 \n", + "6 6 55.4 88.3 11.4 6.85 \n", + "35 4 58.2 87.8 10.9 6.67 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A1 = df.sort_values('Pass%',ascending = False).head()\n", + "A1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assignments 2\n", + "모든 팀 중에서 점유율이 60% 이상인 팀을 추출 하세요" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TeamTournamentGoalsShots pgyellow_cardsred_cardsPossession%Pass%AerialsWonRating
0Manchester CityPremier League8315.846260.889.412.87.01
2Paris Saint-GermainLigue 18615.073760.189.59.56.88
3BarcelonaLaLiga8515.368262.489.710.66.87
\n", + "
" + ], + "text/plain": [ + " Team Tournament Goals Shots pg yellow_cards \\\n", + "0 Manchester City Premier League 83 15.8 46 \n", + "2 Paris Saint-Germain Ligue 1 86 15.0 73 \n", + "3 Barcelona LaLiga 85 15.3 68 \n", + "\n", + " red_cards Possession% Pass% AerialsWon Rating \n", + "0 2 60.8 89.4 12.8 7.01 \n", + "2 7 60.1 89.5 9.5 6.88 \n", + "3 2 62.4 89.7 10.6 6.87 " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A2 = df[df['Possession%']>=60]\n", + "A2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assignments 3\n", + "5대 리그 중, 제일 과격 한 리그는 무엇일까요? 일단 Yellow Card 갯수 순서로 리그를 정렬 해 주고, 거기서 yellow_cards와 red_cards 수로 정렬 해 주세요!\n", + "(hint: groupby, sum, loc)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
yellow_cardsred_cards
Tournament
LaLiga163975
Serie A159769
Ligue 11419102
Premier League109548
Bundesliga108133
\n", + "
" + ], + "text/plain": [ + " yellow_cards red_cards\n", + "Tournament \n", + "LaLiga 1639 75\n", + "Serie A 1597 69\n", + "Ligue 1 1419 102\n", + "Premier League 1095 48\n", + "Bundesliga 1081 33" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A3 = df.groupby(df['Tournament']).sum().sort_values(['yellow_cards','red_cards'],ascending= False)\n", + "A3 = A3.loc[:,['yellow_cards','red_cards']]\n", + "A3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assignments 4\n", + "\n", + "생각해 보니 레드 카드도 감안을 해야 할 것 같습니다. 레드 카드 5점, 옐로우 카드 2점으로 점수를 산정 하여, 해당 점수를 바탕으로 정렬해서, 진짜 과격한 리그가 어느 리그인지 알아 보도록 해봐요!\n", + "\n", + "아 맞다, df['A'] = df['B'] * 5 + df['C'] * 2\n", + "\n", + "이런 식으로 새로운 Column을 만들면 되지 않을까요?" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
yellow_cardsred_cardsscore
Tournament
LaLiga1639753653
Serie A1597693539
Ligue 114191023348
Premier League1095482430
Bundesliga1081332327
\n", + "
" + ], + "text/plain": [ + " yellow_cards red_cards score\n", + "Tournament \n", + "LaLiga 1639 75 3653\n", + "Serie A 1597 69 3539\n", + "Ligue 1 1419 102 3348\n", + "Premier League 1095 48 2430\n", + "Bundesliga 1081 33 2327" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A4 = A3\n", + "A4['score'] = A4['red_cards']*5 +A4['yellow_cards']*2\n", + "A4" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assignments 5\n", + "흠.. 근데 패스 성공률과 점유율의 상관관계에 대해서 알아보고 싶은데.. 선형 적인 면에서 이를 알 수 있을까요? numpy를 이용해서 covariance matrix를 통해서 알아 보면 될 것 같은데...\n", + "\n", + "hint: to_numpy, T, cov" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[21.99771618, 19.52841995],\n", + " [19.52841995, 23.91276667]])" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A5 = df[['Pass%','Possession%']].to_numpy().T\n", + "\n", + "np.cov(A5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/assignments/02/02.ipynb b/assignments/02/02.ipynb index 473859b..4326bcf 100644 --- a/assignments/02/02.ipynb +++ b/assignments/02/02.ipynb @@ -1483,7 +1483,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -1497,7 +1497,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.8.10" } }, "nbformat": 4, diff --git "a/assignments/choi5798/.ipynb_checkpoints/02-\354\265\234\354\204\261\354\233\220-checkpoint.ipynb" "b/assignments/choi5798/.ipynb_checkpoints/02-\354\265\234\354\204\261\354\233\220-checkpoint.ipynb" new file mode 100644 index 0000000..6c03ea9 --- /dev/null +++ "b/assignments/choi5798/.ipynb_checkpoints/02-\354\265\234\354\204\261\354\233\220-checkpoint.ipynb" @@ -0,0 +1,737 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TeamTournamentGoalsShots pgyellow_cardsred_cardsPossession%Pass%AerialsWonRating
0Manchester CityPremier League8315.846260.889.412.87.01
1Bayern MunichBundesliga9917.144358.185.512.96.95
2Paris Saint-GermainLigue 18615.073760.189.59.56.88
3BarcelonaLaLiga8515.368262.489.710.66.87
4Real MadridLaLiga6714.457257.787.711.86.86
.................................
93Sheffield UnitedPremier League208.573343.076.919.16.46
94CrotoneSerie A459.585447.280.412.76.43
95BeneventoSerie A4011.090544.277.713.46.43
96DijonLigue 1259.275546.980.014.36.42
97Schalke 04Bundesliga258.970246.276.515.66.41
\n", + "

98 rows × 10 columns

\n", + "
" + ], + "text/plain": [ + " Team Tournament Goals Shots pg yellow_cards \\\n", + "0 Manchester City Premier League 83 15.8 46 \n", + "1 Bayern Munich Bundesliga 99 17.1 44 \n", + "2 Paris Saint-Germain Ligue 1 86 15.0 73 \n", + "3 Barcelona LaLiga 85 15.3 68 \n", + "4 Real Madrid LaLiga 67 14.4 57 \n", + ".. ... ... ... ... ... \n", + "93 Sheffield United Premier League 20 8.5 73 \n", + "94 Crotone Serie A 45 9.5 85 \n", + "95 Benevento Serie A 40 11.0 90 \n", + "96 Dijon Ligue 1 25 9.2 75 \n", + "97 Schalke 04 Bundesliga 25 8.9 70 \n", + "\n", + " red_cards Possession% Pass% AerialsWon Rating \n", + "0 2 60.8 89.4 12.8 7.01 \n", + "1 3 58.1 85.5 12.9 6.95 \n", + "2 7 60.1 89.5 9.5 6.88 \n", + "3 2 62.4 89.7 10.6 6.87 \n", + "4 2 57.7 87.7 11.8 6.86 \n", + ".. ... ... ... ... ... \n", + "93 3 43.0 76.9 19.1 6.46 \n", + "94 4 47.2 80.4 12.7 6.43 \n", + "95 5 44.2 77.7 13.4 6.43 \n", + "96 5 46.9 80.0 14.3 6.42 \n", + "97 2 46.2 76.5 15.6 6.41 \n", + "\n", + "[98 rows x 10 columns]" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "df = pd.read_csv('./Football teams.csv')\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "각 Column의 정보는 다음 링크에 있는 것과 같습니다.\n", + "\n", + "https://www.kaggle.com/varpit94/football-teams-rankings-stats\n", + "\n", + "## Assignments 1\n", + "패스 성공률이 높은 상위 5개의 팀을 추출 해 보세요\n", + "(hint: sort_values, head)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TeamTournamentGoalsShots pgyellow_cardsred_cardsPossession%Pass%AerialsWonRating
3BarcelonaLaLiga8515.368262.489.710.66.87
2Paris Saint-GermainLigue 18615.073760.189.59.56.88
0Manchester CityPremier League8315.846260.889.412.87.01
6JuventusSerie A7715.776655.488.311.46.85
35SassuoloSerie A6413.974458.287.810.96.67
\n", + "
" + ], + "text/plain": [ + " Team Tournament Goals Shots pg yellow_cards \\\n", + "3 Barcelona LaLiga 85 15.3 68 \n", + "2 Paris Saint-Germain Ligue 1 86 15.0 73 \n", + "0 Manchester City Premier League 83 15.8 46 \n", + "6 Juventus Serie A 77 15.7 76 \n", + "35 Sassuolo Serie A 64 13.9 74 \n", + "\n", + " red_cards Possession% Pass% AerialsWon Rating \n", + "3 2 62.4 89.7 10.6 6.87 \n", + "2 7 60.1 89.5 9.5 6.88 \n", + "0 2 60.8 89.4 12.8 7.01 \n", + "6 6 55.4 88.3 11.4 6.85 \n", + "35 4 58.2 87.8 10.9 6.67 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assignments 2\n", + "모든 팀 중에서 점유율이 60% 이상인 팀을 추출 하세요" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TeamTournamentGoalsShots pgyellow_cardsred_cardsPossession%Pass%AerialsWonRating
0Manchester CityPremier League8315.846260.889.412.87.01
2Paris Saint-GermainLigue 18615.073760.189.59.56.88
3BarcelonaLaLiga8515.368262.489.710.66.87
\n", + "
" + ], + "text/plain": [ + " Team Tournament Goals Shots pg yellow_cards \\\n", + "0 Manchester City Premier League 83 15.8 46 \n", + "2 Paris Saint-Germain Ligue 1 86 15.0 73 \n", + "3 Barcelona LaLiga 85 15.3 68 \n", + "\n", + " red_cards Possession% Pass% AerialsWon Rating \n", + "0 2 60.8 89.4 12.8 7.01 \n", + "2 7 60.1 89.5 9.5 6.88 \n", + "3 2 62.4 89.7 10.6 6.87 " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assignments 3\n", + "5대 리그 중, 제일 과격 한 리그는 무엇일까요? 일단 Yellow Card 갯수 순서로 리그를 정렬 해 주고, 거기서 yellow_cards와 red_cards 수로 정렬 해 주세요!\n", + "(hint: groupby, sum, loc)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
yellow_cardsred_cards
Tournament
LaLiga163975
Serie A159769
Ligue 11419102
Premier League109548
Bundesliga108133
\n", + "
" + ], + "text/plain": [ + " yellow_cards red_cards\n", + "Tournament \n", + "LaLiga 1639 75\n", + "Serie A 1597 69\n", + "Ligue 1 1419 102\n", + "Premier League 1095 48\n", + "Bundesliga 1081 33" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assignments 4\n", + "\n", + "생각해 보니 레드 카드도 감안을 해야 할 것 같습니다. 레드 카드 5점, 옐로우 카드 2점으로 점수를 산정 하여, 해당 점수를 바탕으로 정렬해서, 진짜 과격한 리그가 어느 리그인지 알아 보도록 해봐요!\n", + "\n", + "아 맞다, df['A'] = df['B'] * 5 + df['C'] * 2\n", + "\n", + "이런 식으로 새로운 Column을 만들면 되지 않을까요?" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
yellow_cardsred_cardsscore
Tournament
LaLiga1639753653
Serie A1597693539
Ligue 114191023348
Premier League1095482430
Bundesliga1081332327
\n", + "
" + ], + "text/plain": [ + " yellow_cards red_cards score\n", + "Tournament \n", + "LaLiga 1639 75 3653\n", + "Serie A 1597 69 3539\n", + "Ligue 1 1419 102 3348\n", + "Premier League 1095 48 2430\n", + "Bundesliga 1081 33 2327" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assignments 5\n", + "흠.. 근데 패스 성공률과 점유율의 상관관계에 대해서 알아보고 싶은데.. 선형 적인 면에서 이를 알 수 있을까요? numpy를 이용해서 covariance matrix를 통해서 알아 보면 될 것 같은데...\n", + "\n", + "hint: to_numpy, T, cov" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[21.99771618, 19.52841995],\n", + " [19.52841995, 23.91276667]])" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git "a/assignments/choi5798/02-\354\265\234\354\204\261\354\233\220.ipynb" "b/assignments/choi5798/02-\354\265\234\354\204\261\354\233\220.ipynb" new file mode 100644 index 0000000..c13dbdc --- /dev/null +++ "b/assignments/choi5798/02-\354\265\234\354\204\261\354\233\220.ipynb" @@ -0,0 +1,751 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TeamTournamentGoalsShots pgyellow_cardsred_cardsPossession%Pass%AerialsWonRating
0Manchester CityPremier League8315.846260.889.412.87.01
1Bayern MunichBundesliga9917.144358.185.512.96.95
2Paris Saint-GermainLigue 18615.073760.189.59.56.88
3BarcelonaLaLiga8515.368262.489.710.66.87
4Real MadridLaLiga6714.457257.787.711.86.86
.................................
93Sheffield UnitedPremier League208.573343.076.919.16.46
94CrotoneSerie A459.585447.280.412.76.43
95BeneventoSerie A4011.090544.277.713.46.43
96DijonLigue 1259.275546.980.014.36.42
97Schalke 04Bundesliga258.970246.276.515.66.41
\n", + "

98 rows × 10 columns

\n", + "
" + ], + "text/plain": [ + " Team Tournament Goals Shots pg yellow_cards \\\n", + "0 Manchester City Premier League 83 15.8 46 \n", + "1 Bayern Munich Bundesliga 99 17.1 44 \n", + "2 Paris Saint-Germain Ligue 1 86 15.0 73 \n", + "3 Barcelona LaLiga 85 15.3 68 \n", + "4 Real Madrid LaLiga 67 14.4 57 \n", + ".. ... ... ... ... ... \n", + "93 Sheffield United Premier League 20 8.5 73 \n", + "94 Crotone Serie A 45 9.5 85 \n", + "95 Benevento Serie A 40 11.0 90 \n", + "96 Dijon Ligue 1 25 9.2 75 \n", + "97 Schalke 04 Bundesliga 25 8.9 70 \n", + "\n", + " red_cards Possession% Pass% AerialsWon Rating \n", + "0 2 60.8 89.4 12.8 7.01 \n", + "1 3 58.1 85.5 12.9 6.95 \n", + "2 7 60.1 89.5 9.5 6.88 \n", + "3 2 62.4 89.7 10.6 6.87 \n", + "4 2 57.7 87.7 11.8 6.86 \n", + ".. ... ... ... ... ... \n", + "93 3 43.0 76.9 19.1 6.46 \n", + "94 4 47.2 80.4 12.7 6.43 \n", + "95 5 44.2 77.7 13.4 6.43 \n", + "96 5 46.9 80.0 14.3 6.42 \n", + "97 2 46.2 76.5 15.6 6.41 \n", + "\n", + "[98 rows x 10 columns]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "df = pd.read_csv('./Football teams.csv')\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "각 Column의 정보는 다음 링크에 있는 것과 같습니다.\n", + "\n", + "https://www.kaggle.com/varpit94/football-teams-rankings-stats\n", + "\n", + "## Assignments 1\n", + "패스 성공률이 높은 상위 5개의 팀을 추출 해 보세요\n", + "(hint: sort_values, head)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TeamTournamentGoalsShots pgyellow_cardsred_cardsPossession%Pass%AerialsWonRating
3BarcelonaLaLiga8515.368262.489.710.66.87
2Paris Saint-GermainLigue 18615.073760.189.59.56.88
0Manchester CityPremier League8315.846260.889.412.87.01
6JuventusSerie A7715.776655.488.311.46.85
35SassuoloSerie A6413.974458.287.810.96.67
\n", + "
" + ], + "text/plain": [ + " Team Tournament Goals Shots pg yellow_cards \\\n", + "3 Barcelona LaLiga 85 15.3 68 \n", + "2 Paris Saint-Germain Ligue 1 86 15.0 73 \n", + "0 Manchester City Premier League 83 15.8 46 \n", + "6 Juventus Serie A 77 15.7 76 \n", + "35 Sassuolo Serie A 64 13.9 74 \n", + "\n", + " red_cards Possession% Pass% AerialsWon Rating \n", + "3 2 62.4 89.7 10.6 6.87 \n", + "2 7 60.1 89.5 9.5 6.88 \n", + "0 2 60.8 89.4 12.8 7.01 \n", + "6 6 55.4 88.3 11.4 6.85 \n", + "35 4 58.2 87.8 10.9 6.67 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.sort_values('Pass%', ascending=False).head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assignments 2\n", + "모든 팀 중에서 점유율이 60% 이상인 팀을 추출 하세요" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TeamTournamentGoalsShots pgyellow_cardsred_cardsPossession%Pass%AerialsWonRating
0Manchester CityPremier League8315.846260.889.412.87.01
2Paris Saint-GermainLigue 18615.073760.189.59.56.88
3BarcelonaLaLiga8515.368262.489.710.66.87
\n", + "
" + ], + "text/plain": [ + " Team Tournament Goals Shots pg yellow_cards \\\n", + "0 Manchester City Premier League 83 15.8 46 \n", + "2 Paris Saint-Germain Ligue 1 86 15.0 73 \n", + "3 Barcelona LaLiga 85 15.3 68 \n", + "\n", + " red_cards Possession% Pass% AerialsWon Rating \n", + "0 2 60.8 89.4 12.8 7.01 \n", + "2 7 60.1 89.5 9.5 6.88 \n", + "3 2 62.4 89.7 10.6 6.87 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df['Possession%'] > 60]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assignments 3\n", + "5대 리그 중, 제일 과격 한 리그는 무엇일까요? 일단 Yellow Card 갯수 순서로 리그를 정렬 해 주고, 거기서 yellow_cards와 red_cards 수로 정렬 해 주세요!\n", + "(hint: groupby, sum, loc)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
yellow_cardsred_cards
Tournament
LaLiga163975
Serie A159769
Ligue 11419102
Premier League109548
Bundesliga108133
\n", + "
" + ], + "text/plain": [ + " yellow_cards red_cards\n", + "Tournament \n", + "LaLiga 1639 75\n", + "Serie A 1597 69\n", + "Ligue 1 1419 102\n", + "Premier League 1095 48\n", + "Bundesliga 1081 33" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "leagues = df.groupby('Tournament').sum().sort_values(by=['yellow_cards', 'red_cards'], ascending=False)\n", + "leagues.loc[:, 'yellow_cards':'red_cards']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assignments 4\n", + "\n", + "생각해 보니 레드 카드도 감안을 해야 할 것 같습니다. 레드 카드 5점, 옐로우 카드 2점으로 점수를 산정 하여, 해당 점수를 바탕으로 정렬해서, 진짜 과격한 리그가 어느 리그인지 알아 보도록 해봐요!\n", + "\n", + "아 맞다, df['A'] = df['B'] * 5 + df['C'] * 2\n", + "\n", + "이런 식으로 새로운 Column을 만들면 되지 않을까요?" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
yellow_cardsred_cardsbad_score
Tournament
LaLiga1639753653
Serie A1597693539
Ligue 114191023348
Premier League1095482430
Bundesliga1081332327
\n", + "
" + ], + "text/plain": [ + " yellow_cards red_cards bad_score\n", + "Tournament \n", + "LaLiga 1639 75 3653\n", + "Serie A 1597 69 3539\n", + "Ligue 1 1419 102 3348\n", + "Premier League 1095 48 2430\n", + "Bundesliga 1081 33 2327" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['bad_score'] = df['red_cards']*5 + df['yellow_cards'] * 2\n", + "bad_leagues = df.groupby('Tournament').sum().sort_values(by='bad_score', ascending=False)\n", + "bad_leagues.loc[:, ['yellow_cards', 'red_cards', 'bad_score']]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assignments 5\n", + "흠.. 근데 패스 성공률과 점유율의 상관관계에 대해서 알아보고 싶은데.. 선형 적인 면에서 이를 알 수 있을까요? numpy를 이용해서 covariance matrix를 통해서 알아 보면 될 것 같은데...\n", + "\n", + "hint: to_numpy, T, cov" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[21.99771618, 19.52841995],\n", + " [19.52841995, 23.91276667]])" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cov = df[['Pass%', 'Possession%']].to_numpy().T\n", + "np.cov(cov)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/assignments/choi5798/Football teams.csv b/assignments/choi5798/Football teams.csv new file mode 100644 index 0000000..8dbdb29 --- /dev/null +++ b/assignments/choi5798/Football teams.csv @@ -0,0 +1,99 @@ +Team,Tournament,Goals,Shots pg,yellow_cards,red_cards,Possession%,Pass%,AerialsWon,Rating +Manchester City,Premier League,83,15.8,46,2,60.8,89.4,12.8,7.01 +Bayern Munich,Bundesliga,99,17.1,44,3,58.1,85.5,12.9,6.95 +Paris Saint-Germain,Ligue 1,86,15,73,7,60.1,89.5,9.5,6.88 +Barcelona,LaLiga,85,15.3,68,2,62.4,89.7,10.6,6.87 +Real Madrid,LaLiga,67,14.4,57,2,57.7,87.7,11.8,6.86 +Manchester United,Premier League,73,13.8,64,1,54.5,84.8,14.5,6.85 +Juventus,Serie A,77,15.7,76,6,55.4,88.3,11.4,6.85 +Aston Villa,Premier League,55,13.7,63,4,49.1,78.6,19.4,6.84 +Borussia Dortmund,Bundesliga,75,14.6,43,1,57.5,85.5,12.8,6.84 +Atletico Madrid,LaLiga,67,12.1,100,0,51.8,83.1,14.4,6.84 +Atalanta,Serie A,90,16.3,66,3,53.5,83.5,16.8,6.84 +Chelsea,Premier League,58,14.6,49,3,58.6,87,15.2,6.83 +Liverpool,Premier League,68,16,40,0,59,85.7,14.3,6.82 +AC Milan,Serie A,74,14.7,80,4,51.4,84,15.2,6.82 +Lille,Ligue 1,64,12.8,67,2,52.6,83.5,15.8,6.82 +Tottenham,Premier League,68,11.7,53,2,51.3,81.8,16.4,6.81 +Napoli,Serie A,86,17,71,3,54.1,87,11.1,6.81 +Leicester,Premier League,68,12.8,61,0,53.2,82.1,16.2,6.8 +Wolfsburg,Bundesliga,61,14.1,56,3,51,78,16.9,6.8 +Inter,Serie A,89,14.5,59,2,52,87,11.8,6.8 +Lyon,Ligue 1,81,16.1,60,10,53.6,84.7,14.3,6.8 +RB Leipzig,Bundesliga,60,16,57,0,57.3,83.2,18.6,6.78 +Leeds,Premier League,62,13.7,61,1,55.1,80.8,14.5,6.77 +West Ham,Premier League,62,12.3,48,3,44.5,77.8,19.9,6.77 +Everton,Premier League,47,10.5,59,2,47.3,81.4,17.7,6.73 +Bayer Leverkusen,Bundesliga,53,13,58,0,57.3,84.4,13.1,6.73 +Eintracht Frankfurt,Bundesliga,69,13.2,80,1,52.4,79.6,17.9,6.73 +Monaco,Ligue 1,76,12.8,74,7,54.2,82.7,16.5,6.73 +Roma,Serie A,68,14.3,84,3,51.5,84.5,12.1,6.71 +Sevilla,LaLiga,53,12.1,75,2,58.7,86.2,16.6,6.7 +Borussia M.Gladbach,Bundesliga,64,13.4,61,2,51.5,82,15.3,6.7 +Arsenal,Premier League,55,12.1,47,5,52.7,85,13.5,6.69 +Rennes,Ligue 1,52,13.5,80,5,56.8,85.6,16.9,6.69 +VfB Stuttgart,Bundesliga,56,13.4,63,2,51.5,81.1,16.3,6.68 +Wolverhampton Wanderers,Premier League,36,12.2,53,1,49.7,83.2,15.3,6.67 +Sassuolo,Serie A,64,13.9,74,4,58.2,87.8,10.9,6.67 +Metz,Ligue 1,44,11.5,82,4,46.9,79.8,16.1,6.66 +Villarreal,LaLiga,60,10.7,65,5,54.3,84.4,13,6.66 +Real Sociedad,LaLiga,59,11.3,81,1,53.7,80.8,17.9,6.65 +Brighton,Premier League,40,12.8,45,6,50.7,81.3,14.2,6.65 +Real Betis,LaLiga,50,11.7,87,8,52.9,82,16.4,6.64 +Burnley,Premier League,33,10.1,48,0,43.5,71.6,23.4,6.64 +Lens,Ligue 1,55,11.7,84,7,51.1,81.8,17.4,6.64 +Brest,Ligue 1,50,11.8,60,4,49.4,81.3,18.6,6.64 +Fulham,Premier League,27,11.6,67,3,50,81.2,17.2,6.63 +Marseille,Ligue 1,54,10,94,9,52.4,82,14.9,6.63 +Sampdoria,Serie A,52,11.3,81,3,46.1,78.5,16.8,6.63 +Montpellier,Ligue 1,60,12.2,65,7,46.4,78.8,17.9,6.63 +Nice,Ligue 1,50,10.8,69,4,53.4,85.6,10.5,6.63 +Hoffenheim,Bundesliga,52,12.6,65,4,50.8,80.7,15.7,6.63 +Southampton,Premier League,47,11.2,52,3,51.4,79.3,14.1,6.62 +Newcastle United,Premier League,46,10.4,61,3,41.6,76,17.1,6.62 +Lazio,Serie A,61,13.8,100,5,52.2,83.8,14.6,6.62 +Nantes,Ligue 1,47,10.8,68,4,45.2,77,18.1,6.62 +Union Berlin,Bundesliga,50,11.7,55,2,45.9,76.2,17.6,6.62 +Strasbourg,Ligue 1,49,11.3,56,3,46.5,78.3,18.3,6.61 +Crystal Palace,Premier League,41,9.2,54,2,42.9,76.1,18.3,6.61 +Freiburg,Bundesliga,52,11.4,63,0,47.5,78.1,17.5,6.6 +Valencia,LaLiga,50,10.3,77,5,47.9,79.4,16.3,6.6 +Celta Vigo,LaLiga,55,9.4,104,5,52,79.9,16.5,6.6 +Reims,Ligue 1,42,9.6,75,8,46.3,80.7,13.4,6.6 +Torino,Serie A,50,12.2,72,4,48,80.5,16.1,6.59 +Verona,Serie A,43,10.6,91,1,49.6,76.3,20.6,6.59 +Saint-Etienne,Ligue 1,42,11.6,76,2,49,79.3,16.4,6.59 +Bordeaux,Ligue 1,42,11.1,74,4,50.2,83.3,15.4,6.59 +Hertha Berlin,Bundesliga,41,11.3,63,3,49.8,79.5,15.8,6.58 +Cagliari,Serie A,43,11.4,73,3,45.8,79.8,17.2,6.58 +Mainz 05,Bundesliga,39,11.1,61,1,42.7,71.3,18.3,6.57 +Bologna,Serie A,51,13.1,78,4,50.7,81.5,15.1,6.56 +Augsburg,Bundesliga,36,9.9,65,4,44,73.6,16.8,6.56 +Udinese,Serie A,42,10.9,63,2,47.2,82.5,13.1,6.55 +SD Huesca,LaLiga,34,10.7,68,2,48.7,79.8,15.7,6.55 +Athletic Bilbao,LaLiga,46,10.6,81,3,49.4,78.5,17.9,6.54 +Osasuna,LaLiga,37,9.8,74,5,44.6,70.2,26.8,6.54 +Lorient,Ligue 1,50,11.2,67,3,45.9,78.8,13.7,6.54 +Genoa,Serie A,47,9,85,2,46.1,79.7,13.7,6.54 +Arminia Bielefeld,Bundesliga,26,9.8,52,1,44.1,74.6,22.2,6.53 +Angers,Ligue 1,40,10.7,63,2,47.1,81.3,13.2,6.53 +Eibar,LaLiga,29,11.9,67,3,49.2,72.6,24.4,6.53 +Werder Bremen,Bundesliga,36,10.6,63,3,45.2,76.2,18.3,6.52 +Fiorentina,Serie A,47,9.8,86,5,46.8,81,14.2,6.52 +Nimes,Ligue 1,40,10.3,57,5,45.8,77.5,14,6.52 +West Bromwich Albion,Premier League,35,8.9,51,4,41,72.2,19.1,6.51 +FC Koln,Bundesliga,34,10.6,62,1,47.1,77.3,18.5,6.51 +Deportivo Alaves,LaLiga,36,9.1,87,8,44.6,72.9,22.6,6.5 +Levante,LaLiga,46,10.1,70,1,51.5,80.1,12.2,6.5 +Spezia,Serie A,52,10.2,92,5,51.6,81.1,14.4,6.5 +Getafe,LaLiga,28,9.5,117,7,44.4,66.5,22.8,6.49 +Parma Calcio 1913,Serie A,39,10.4,91,1,48.4,82.5,16.9,6.49 +Elche,LaLiga,34,7.1,95,3,48.1,81.5,13.2,6.48 +Granada,LaLiga,47,9.4,96,6,43.4,70,18.3,6.47 +Cadiz,LaLiga,36,8,77,3,38.5,68.8,18.5,6.47 +Real Valladolid,LaLiga,34,9.7,93,4,46.2,74.8,17.1,6.46 +Sheffield United,Premier League,20,8.5,73,3,43,76.9,19.1,6.46 +Crotone,Serie A,45,9.5,85,4,47.2,80.4,12.7,6.43 +Benevento,Serie A,40,11,90,5,44.2,77.7,13.4,6.43 +Dijon,Ligue 1,25,9.2,75,5,46.9,80,14.3,6.42 +Schalke 04,Bundesliga,25,8.9,70,2,46.2,76.5,15.6,6.41