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",
+ " Team | \n",
+ " Tournament | \n",
+ " Goals | \n",
+ " Shots pg | \n",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ " Possession% | \n",
+ " Pass% | \n",
+ " AerialsWon | \n",
+ " Rating | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " Manchester City | \n",
+ " Premier League | \n",
+ " 83 | \n",
+ " 15.8 | \n",
+ " 46 | \n",
+ " 2 | \n",
+ " 60.8 | \n",
+ " 89.4 | \n",
+ " 12.8 | \n",
+ " 7.01 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " Bayern Munich | \n",
+ " Bundesliga | \n",
+ " 99 | \n",
+ " 17.1 | \n",
+ " 44 | \n",
+ " 3 | \n",
+ " 58.1 | \n",
+ " 85.5 | \n",
+ " 12.9 | \n",
+ " 6.95 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Paris Saint-Germain | \n",
+ " Ligue 1 | \n",
+ " 86 | \n",
+ " 15.0 | \n",
+ " 73 | \n",
+ " 7 | \n",
+ " 60.1 | \n",
+ " 89.5 | \n",
+ " 9.5 | \n",
+ " 6.88 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Barcelona | \n",
+ " LaLiga | \n",
+ " 85 | \n",
+ " 15.3 | \n",
+ " 68 | \n",
+ " 2 | \n",
+ " 62.4 | \n",
+ " 89.7 | \n",
+ " 10.6 | \n",
+ " 6.87 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " Real Madrid | \n",
+ " LaLiga | \n",
+ " 67 | \n",
+ " 14.4 | \n",
+ " 57 | \n",
+ " 2 | \n",
+ " 57.7 | \n",
+ " 87.7 | \n",
+ " 11.8 | \n",
+ " 6.86 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " Manchester United | \n",
+ " Premier League | \n",
+ " 73 | \n",
+ " 13.8 | \n",
+ " 64 | \n",
+ " 1 | \n",
+ " 54.5 | \n",
+ " 84.8 | \n",
+ " 14.5 | \n",
+ " 6.85 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " Juventus | \n",
+ " Serie A | \n",
+ " 77 | \n",
+ " 15.7 | \n",
+ " 76 | \n",
+ " 6 | \n",
+ " 55.4 | \n",
+ " 88.3 | \n",
+ " 11.4 | \n",
+ " 6.85 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " Aston Villa | \n",
+ " Premier League | \n",
+ " 55 | \n",
+ " 13.7 | \n",
+ " 63 | \n",
+ " 4 | \n",
+ " 49.1 | \n",
+ " 78.6 | \n",
+ " 19.4 | \n",
+ " 6.84 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " Borussia Dortmund | \n",
+ " Bundesliga | \n",
+ " 75 | \n",
+ " 14.6 | \n",
+ " 43 | \n",
+ " 1 | \n",
+ " 57.5 | \n",
+ " 85.5 | \n",
+ " 12.8 | \n",
+ " 6.84 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " Atletico Madrid | \n",
+ " LaLiga | \n",
+ " 67 | \n",
+ " 12.1 | \n",
+ " 100 | \n",
+ " 0 | \n",
+ " 51.8 | \n",
+ " 83.1 | \n",
+ " 14.4 | \n",
+ " 6.84 | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " Atalanta | \n",
+ " Serie A | \n",
+ " 90 | \n",
+ " 16.3 | \n",
+ " 66 | \n",
+ " 3 | \n",
+ " 53.5 | \n",
+ " 83.5 | \n",
+ " 16.8 | \n",
+ " 6.84 | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " Chelsea | \n",
+ " Premier League | \n",
+ " 58 | \n",
+ " 14.6 | \n",
+ " 49 | \n",
+ " 3 | \n",
+ " 58.6 | \n",
+ " 87.0 | \n",
+ " 15.2 | \n",
+ " 6.83 | \n",
+ "
\n",
+ " \n",
+ " | 12 | \n",
+ " Liverpool | \n",
+ " Premier League | \n",
+ " 68 | \n",
+ " 16.0 | \n",
+ " 40 | \n",
+ " 0 | \n",
+ " 59.0 | \n",
+ " 85.7 | \n",
+ " 14.3 | \n",
+ " 6.82 | \n",
+ "
\n",
+ " \n",
+ " | 13 | \n",
+ " AC Milan | \n",
+ " Serie A | \n",
+ " 74 | \n",
+ " 14.7 | \n",
+ " 80 | \n",
+ " 4 | \n",
+ " 51.4 | \n",
+ " 84.0 | \n",
+ " 15.2 | \n",
+ " 6.82 | \n",
+ "
\n",
+ " \n",
+ " | 14 | \n",
+ " Lille | \n",
+ " Ligue 1 | \n",
+ " 64 | \n",
+ " 12.8 | \n",
+ " 67 | \n",
+ " 2 | \n",
+ " 52.6 | \n",
+ " 83.5 | \n",
+ " 15.8 | \n",
+ " 6.82 | \n",
+ "
\n",
+ " \n",
+ " | 15 | \n",
+ " Tottenham | \n",
+ " Premier League | \n",
+ " 68 | \n",
+ " 11.7 | \n",
+ " 53 | \n",
+ " 2 | \n",
+ " 51.3 | \n",
+ " 81.8 | \n",
+ " 16.4 | \n",
+ " 6.81 | \n",
+ "
\n",
+ " \n",
+ " | 16 | \n",
+ " Napoli | \n",
+ " Serie A | \n",
+ " 86 | \n",
+ " 17.0 | \n",
+ " 71 | \n",
+ " 3 | \n",
+ " 54.1 | \n",
+ " 87.0 | \n",
+ " 11.1 | \n",
+ " 6.81 | \n",
+ "
\n",
+ " \n",
+ " | 17 | \n",
+ " Leicester | \n",
+ " Premier League | \n",
+ " 68 | \n",
+ " 12.8 | \n",
+ " 61 | \n",
+ " 0 | \n",
+ " 53.2 | \n",
+ " 82.1 | \n",
+ " 16.2 | \n",
+ " 6.80 | \n",
+ "
\n",
+ " \n",
+ " | 18 | \n",
+ " Wolfsburg | \n",
+ " Bundesliga | \n",
+ " 61 | \n",
+ " 14.1 | \n",
+ " 56 | \n",
+ " 3 | \n",
+ " 51.0 | \n",
+ " 78.0 | \n",
+ " 16.9 | \n",
+ " 6.80 | \n",
+ "
\n",
+ " \n",
+ " | 19 | \n",
+ " Inter | \n",
+ " Serie A | \n",
+ " 89 | \n",
+ " 14.5 | \n",
+ " 59 | \n",
+ " 2 | \n",
+ " 52.0 | \n",
+ " 87.0 | \n",
+ " 11.8 | \n",
+ " 6.80 | \n",
+ "
\n",
+ " \n",
+ " | 20 | \n",
+ " Lyon | \n",
+ " Ligue 1 | \n",
+ " 81 | \n",
+ " 16.1 | \n",
+ " 60 | \n",
+ " 10 | \n",
+ " 53.6 | \n",
+ " 84.7 | \n",
+ " 14.3 | \n",
+ " 6.80 | \n",
+ "
\n",
+ " \n",
+ " | 21 | \n",
+ " RB Leipzig | \n",
+ " Bundesliga | \n",
+ " 60 | \n",
+ " 16.0 | \n",
+ " 57 | \n",
+ " 0 | \n",
+ " 57.3 | \n",
+ " 83.2 | \n",
+ " 18.6 | \n",
+ " 6.78 | \n",
+ "
\n",
+ " \n",
+ " | 22 | \n",
+ " Leeds | \n",
+ " Premier League | \n",
+ " 62 | \n",
+ " 13.7 | \n",
+ " 61 | \n",
+ " 1 | \n",
+ " 55.1 | \n",
+ " 80.8 | \n",
+ " 14.5 | \n",
+ " 6.77 | \n",
+ "
\n",
+ " \n",
+ " | 23 | \n",
+ " West Ham | \n",
+ " Premier League | \n",
+ " 62 | \n",
+ " 12.3 | \n",
+ " 48 | \n",
+ " 3 | \n",
+ " 44.5 | \n",
+ " 77.8 | \n",
+ " 19.9 | \n",
+ " 6.77 | \n",
+ "
\n",
+ " \n",
+ " | 24 | \n",
+ " Everton | \n",
+ " Premier League | \n",
+ " 47 | \n",
+ " 10.5 | \n",
+ " 59 | \n",
+ " 2 | \n",
+ " 47.3 | \n",
+ " 81.4 | \n",
+ " 17.7 | \n",
+ " 6.73 | \n",
+ "
\n",
+ " \n",
+ " | 25 | \n",
+ " Bayer Leverkusen | \n",
+ " Bundesliga | \n",
+ " 53 | \n",
+ " 13.0 | \n",
+ " 58 | \n",
+ " 0 | \n",
+ " 57.3 | \n",
+ " 84.4 | \n",
+ " 13.1 | \n",
+ " 6.73 | \n",
+ "
\n",
+ " \n",
+ " | 26 | \n",
+ " Eintracht Frankfurt | \n",
+ " Bundesliga | \n",
+ " 69 | \n",
+ " 13.2 | \n",
+ " 80 | \n",
+ " 1 | \n",
+ " 52.4 | \n",
+ " 79.6 | \n",
+ " 17.9 | \n",
+ " 6.73 | \n",
+ "
\n",
+ " \n",
+ " | 27 | \n",
+ " Monaco | \n",
+ " Ligue 1 | \n",
+ " 76 | \n",
+ " 12.8 | \n",
+ " 74 | \n",
+ " 7 | \n",
+ " 54.2 | \n",
+ " 82.7 | \n",
+ " 16.5 | \n",
+ " 6.73 | \n",
+ "
\n",
+ " \n",
+ " | 28 | \n",
+ " Roma | \n",
+ " Serie A | \n",
+ " 68 | \n",
+ " 14.3 | \n",
+ " 84 | \n",
+ " 3 | \n",
+ " 51.5 | \n",
+ " 84.5 | \n",
+ " 12.1 | \n",
+ " 6.71 | \n",
+ "
\n",
+ " \n",
+ " | 29 | \n",
+ " Sevilla | \n",
+ " LaLiga | \n",
+ " 53 | \n",
+ " 12.1 | \n",
+ " 75 | \n",
+ " 2 | \n",
+ " 58.7 | \n",
+ " 86.2 | \n",
+ " 16.6 | \n",
+ " 6.70 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 68 | \n",
+ " Bologna | \n",
+ " Serie A | \n",
+ " 51 | \n",
+ " 13.1 | \n",
+ " 78 | \n",
+ " 4 | \n",
+ " 50.7 | \n",
+ " 81.5 | \n",
+ " 15.1 | \n",
+ " 6.56 | \n",
+ "
\n",
+ " \n",
+ " | 69 | \n",
+ " Augsburg | \n",
+ " Bundesliga | \n",
+ " 36 | \n",
+ " 9.9 | \n",
+ " 65 | \n",
+ " 4 | \n",
+ " 44.0 | \n",
+ " 73.6 | \n",
+ " 16.8 | \n",
+ " 6.56 | \n",
+ "
\n",
+ " \n",
+ " | 70 | \n",
+ " Udinese | \n",
+ " Serie A | \n",
+ " 42 | \n",
+ " 10.9 | \n",
+ " 63 | \n",
+ " 2 | \n",
+ " 47.2 | \n",
+ " 82.5 | \n",
+ " 13.1 | \n",
+ " 6.55 | \n",
+ "
\n",
+ " \n",
+ " | 71 | \n",
+ " SD Huesca | \n",
+ " LaLiga | \n",
+ " 34 | \n",
+ " 10.7 | \n",
+ " 68 | \n",
+ " 2 | \n",
+ " 48.7 | \n",
+ " 79.8 | \n",
+ " 15.7 | \n",
+ " 6.55 | \n",
+ "
\n",
+ " \n",
+ " | 72 | \n",
+ " Athletic Bilbao | \n",
+ " LaLiga | \n",
+ " 46 | \n",
+ " 10.6 | \n",
+ " 81 | \n",
+ " 3 | \n",
+ " 49.4 | \n",
+ " 78.5 | \n",
+ " 17.9 | \n",
+ " 6.54 | \n",
+ "
\n",
+ " \n",
+ " | 73 | \n",
+ " Osasuna | \n",
+ " LaLiga | \n",
+ " 37 | \n",
+ " 9.8 | \n",
+ " 74 | \n",
+ " 5 | \n",
+ " 44.6 | \n",
+ " 70.2 | \n",
+ " 26.8 | \n",
+ " 6.54 | \n",
+ "
\n",
+ " \n",
+ " | 74 | \n",
+ " Lorient | \n",
+ " Ligue 1 | \n",
+ " 50 | \n",
+ " 11.2 | \n",
+ " 67 | \n",
+ " 3 | \n",
+ " 45.9 | \n",
+ " 78.8 | \n",
+ " 13.7 | \n",
+ " 6.54 | \n",
+ "
\n",
+ " \n",
+ " | 75 | \n",
+ " Genoa | \n",
+ " Serie A | \n",
+ " 47 | \n",
+ " 9.0 | \n",
+ " 85 | \n",
+ " 2 | \n",
+ " 46.1 | \n",
+ " 79.7 | \n",
+ " 13.7 | \n",
+ " 6.54 | \n",
+ "
\n",
+ " \n",
+ " | 76 | \n",
+ " Arminia Bielefeld | \n",
+ " Bundesliga | \n",
+ " 26 | \n",
+ " 9.8 | \n",
+ " 52 | \n",
+ " 1 | \n",
+ " 44.1 | \n",
+ " 74.6 | \n",
+ " 22.2 | \n",
+ " 6.53 | \n",
+ "
\n",
+ " \n",
+ " | 77 | \n",
+ " Angers | \n",
+ " Ligue 1 | \n",
+ " 40 | \n",
+ " 10.7 | \n",
+ " 63 | \n",
+ " 2 | \n",
+ " 47.1 | \n",
+ " 81.3 | \n",
+ " 13.2 | \n",
+ " 6.53 | \n",
+ "
\n",
+ " \n",
+ " | 78 | \n",
+ " Eibar | \n",
+ " LaLiga | \n",
+ " 29 | \n",
+ " 11.9 | \n",
+ " 67 | \n",
+ " 3 | \n",
+ " 49.2 | \n",
+ " 72.6 | \n",
+ " 24.4 | \n",
+ " 6.53 | \n",
+ "
\n",
+ " \n",
+ " | 79 | \n",
+ " Werder Bremen | \n",
+ " Bundesliga | \n",
+ " 36 | \n",
+ " 10.6 | \n",
+ " 63 | \n",
+ " 3 | \n",
+ " 45.2 | \n",
+ " 76.2 | \n",
+ " 18.3 | \n",
+ " 6.52 | \n",
+ "
\n",
+ " \n",
+ " | 80 | \n",
+ " Fiorentina | \n",
+ " Serie A | \n",
+ " 47 | \n",
+ " 9.8 | \n",
+ " 86 | \n",
+ " 5 | \n",
+ " 46.8 | \n",
+ " 81.0 | \n",
+ " 14.2 | \n",
+ " 6.52 | \n",
+ "
\n",
+ " \n",
+ " | 81 | \n",
+ " Nimes | \n",
+ " Ligue 1 | \n",
+ " 40 | \n",
+ " 10.3 | \n",
+ " 57 | \n",
+ " 5 | \n",
+ " 45.8 | \n",
+ " 77.5 | \n",
+ " 14.0 | \n",
+ " 6.52 | \n",
+ "
\n",
+ " \n",
+ " | 82 | \n",
+ " West Bromwich Albion | \n",
+ " Premier League | \n",
+ " 35 | \n",
+ " 8.9 | \n",
+ " 51 | \n",
+ " 4 | \n",
+ " 41.0 | \n",
+ " 72.2 | \n",
+ " 19.1 | \n",
+ " 6.51 | \n",
+ "
\n",
+ " \n",
+ " | 83 | \n",
+ " FC Koln | \n",
+ " Bundesliga | \n",
+ " 34 | \n",
+ " 10.6 | \n",
+ " 62 | \n",
+ " 1 | \n",
+ " 47.1 | \n",
+ " 77.3 | \n",
+ " 18.5 | \n",
+ " 6.51 | \n",
+ "
\n",
+ " \n",
+ " | 84 | \n",
+ " Deportivo Alaves | \n",
+ " LaLiga | \n",
+ " 36 | \n",
+ " 9.1 | \n",
+ " 87 | \n",
+ " 8 | \n",
+ " 44.6 | \n",
+ " 72.9 | \n",
+ " 22.6 | \n",
+ " 6.50 | \n",
+ "
\n",
+ " \n",
+ " | 85 | \n",
+ " Levante | \n",
+ " LaLiga | \n",
+ " 46 | \n",
+ " 10.1 | \n",
+ " 70 | \n",
+ " 1 | \n",
+ " 51.5 | \n",
+ " 80.1 | \n",
+ " 12.2 | \n",
+ " 6.50 | \n",
+ "
\n",
+ " \n",
+ " | 86 | \n",
+ " Spezia | \n",
+ " Serie A | \n",
+ " 52 | \n",
+ " 10.2 | \n",
+ " 92 | \n",
+ " 5 | \n",
+ " 51.6 | \n",
+ " 81.1 | \n",
+ " 14.4 | \n",
+ " 6.50 | \n",
+ "
\n",
+ " \n",
+ " | 87 | \n",
+ " Getafe | \n",
+ " LaLiga | \n",
+ " 28 | \n",
+ " 9.5 | \n",
+ " 117 | \n",
+ " 7 | \n",
+ " 44.4 | \n",
+ " 66.5 | \n",
+ " 22.8 | \n",
+ " 6.49 | \n",
+ "
\n",
+ " \n",
+ " | 88 | \n",
+ " Parma Calcio 1913 | \n",
+ " Serie A | \n",
+ " 39 | \n",
+ " 10.4 | \n",
+ " 91 | \n",
+ " 1 | \n",
+ " 48.4 | \n",
+ " 82.5 | \n",
+ " 16.9 | \n",
+ " 6.49 | \n",
+ "
\n",
+ " \n",
+ " | 89 | \n",
+ " Elche | \n",
+ " LaLiga | \n",
+ " 34 | \n",
+ " 7.1 | \n",
+ " 95 | \n",
+ " 3 | \n",
+ " 48.1 | \n",
+ " 81.5 | \n",
+ " 13.2 | \n",
+ " 6.48 | \n",
+ "
\n",
+ " \n",
+ " | 90 | \n",
+ " Granada | \n",
+ " LaLiga | \n",
+ " 47 | \n",
+ " 9.4 | \n",
+ " 96 | \n",
+ " 6 | \n",
+ " 43.4 | \n",
+ " 70.0 | \n",
+ " 18.3 | \n",
+ " 6.47 | \n",
+ "
\n",
+ " \n",
+ " | 91 | \n",
+ " Cadiz | \n",
+ " LaLiga | \n",
+ " 36 | \n",
+ " 8.0 | \n",
+ " 77 | \n",
+ " 3 | \n",
+ " 38.5 | \n",
+ " 68.8 | \n",
+ " 18.5 | \n",
+ " 6.47 | \n",
+ "
\n",
+ " \n",
+ " | 92 | \n",
+ " Real Valladolid | \n",
+ " LaLiga | \n",
+ " 34 | \n",
+ " 9.7 | \n",
+ " 93 | \n",
+ " 4 | \n",
+ " 46.2 | \n",
+ " 74.8 | \n",
+ " 17.1 | \n",
+ " 6.46 | \n",
+ "
\n",
+ " \n",
+ " | 93 | \n",
+ " Sheffield United | \n",
+ " Premier League | \n",
+ " 20 | \n",
+ " 8.5 | \n",
+ " 73 | \n",
+ " 3 | \n",
+ " 43.0 | \n",
+ " 76.9 | \n",
+ " 19.1 | \n",
+ " 6.46 | \n",
+ "
\n",
+ " \n",
+ " | 94 | \n",
+ " Crotone | \n",
+ " Serie A | \n",
+ " 45 | \n",
+ " 9.5 | \n",
+ " 85 | \n",
+ " 4 | \n",
+ " 47.2 | \n",
+ " 80.4 | \n",
+ " 12.7 | \n",
+ " 6.43 | \n",
+ "
\n",
+ " \n",
+ " | 95 | \n",
+ " Benevento | \n",
+ " Serie A | \n",
+ " 40 | \n",
+ " 11.0 | \n",
+ " 90 | \n",
+ " 5 | \n",
+ " 44.2 | \n",
+ " 77.7 | \n",
+ " 13.4 | \n",
+ " 6.43 | \n",
+ "
\n",
+ " \n",
+ " | 96 | \n",
+ " Dijon | \n",
+ " Ligue 1 | \n",
+ " 25 | \n",
+ " 9.2 | \n",
+ " 75 | \n",
+ " 5 | \n",
+ " 46.9 | \n",
+ " 80.0 | \n",
+ " 14.3 | \n",
+ " 6.42 | \n",
+ "
\n",
+ " \n",
+ " | 97 | \n",
+ " Schalke 04 | \n",
+ " Bundesliga | \n",
+ " 25 | \n",
+ " 8.9 | \n",
+ " 70 | \n",
+ " 2 | \n",
+ " 46.2 | \n",
+ " 76.5 | \n",
+ " 15.6 | \n",
+ " 6.41 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Team | \n",
+ " Tournament | \n",
+ " Goals | \n",
+ " Shots pg | \n",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ " Possession% | \n",
+ " Pass% | \n",
+ " AerialsWon | \n",
+ " Rating | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 3 | \n",
+ " Barcelona | \n",
+ " LaLiga | \n",
+ " 85 | \n",
+ " 15.3 | \n",
+ " 68 | \n",
+ " 2 | \n",
+ " 62.4 | \n",
+ " 89.7 | \n",
+ " 10.6 | \n",
+ " 6.87 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Paris Saint-Germain | \n",
+ " Ligue 1 | \n",
+ " 86 | \n",
+ " 15.0 | \n",
+ " 73 | \n",
+ " 7 | \n",
+ " 60.1 | \n",
+ " 89.5 | \n",
+ " 9.5 | \n",
+ " 6.88 | \n",
+ "
\n",
+ " \n",
+ " | 0 | \n",
+ " Manchester City | \n",
+ " Premier League | \n",
+ " 83 | \n",
+ " 15.8 | \n",
+ " 46 | \n",
+ " 2 | \n",
+ " 60.8 | \n",
+ " 89.4 | \n",
+ " 12.8 | \n",
+ " 7.01 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " Juventus | \n",
+ " Serie A | \n",
+ " 77 | \n",
+ " 15.7 | \n",
+ " 76 | \n",
+ " 6 | \n",
+ " 55.4 | \n",
+ " 88.3 | \n",
+ " 11.4 | \n",
+ " 6.85 | \n",
+ "
\n",
+ " \n",
+ " | 35 | \n",
+ " Sassuolo | \n",
+ " Serie A | \n",
+ " 64 | \n",
+ " 13.9 | \n",
+ " 74 | \n",
+ " 4 | \n",
+ " 58.2 | \n",
+ " 87.8 | \n",
+ " 10.9 | \n",
+ " 6.67 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Team | \n",
+ " Tournament | \n",
+ " Goals | \n",
+ " Shots pg | \n",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ " Possession% | \n",
+ " Pass% | \n",
+ " AerialsWon | \n",
+ " Rating | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " Manchester City | \n",
+ " Premier League | \n",
+ " 83 | \n",
+ " 15.8 | \n",
+ " 46 | \n",
+ " 2 | \n",
+ " 60.8 | \n",
+ " 89.4 | \n",
+ " 12.8 | \n",
+ " 7.01 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Paris Saint-Germain | \n",
+ " Ligue 1 | \n",
+ " 86 | \n",
+ " 15.0 | \n",
+ " 73 | \n",
+ " 7 | \n",
+ " 60.1 | \n",
+ " 89.5 | \n",
+ " 9.5 | \n",
+ " 6.88 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Barcelona | \n",
+ " LaLiga | \n",
+ " 85 | \n",
+ " 15.3 | \n",
+ " 68 | \n",
+ " 2 | \n",
+ " 62.4 | \n",
+ " 89.7 | \n",
+ " 10.6 | \n",
+ " 6.87 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ "
\n",
+ " \n",
+ " | Tournament | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | LaLiga | \n",
+ " 1639 | \n",
+ " 75 | \n",
+ "
\n",
+ " \n",
+ " | Serie A | \n",
+ " 1597 | \n",
+ " 69 | \n",
+ "
\n",
+ " \n",
+ " | Ligue 1 | \n",
+ " 1419 | \n",
+ " 102 | \n",
+ "
\n",
+ " \n",
+ " | Premier League | \n",
+ " 1095 | \n",
+ " 48 | \n",
+ "
\n",
+ " \n",
+ " | Bundesliga | \n",
+ " 1081 | \n",
+ " 33 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ " score | \n",
+ "
\n",
+ " \n",
+ " | Tournament | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | LaLiga | \n",
+ " 1639 | \n",
+ " 75 | \n",
+ " 3653 | \n",
+ "
\n",
+ " \n",
+ " | Serie A | \n",
+ " 1597 | \n",
+ " 69 | \n",
+ " 3539 | \n",
+ "
\n",
+ " \n",
+ " | Ligue 1 | \n",
+ " 1419 | \n",
+ " 102 | \n",
+ " 3348 | \n",
+ "
\n",
+ " \n",
+ " | Premier League | \n",
+ " 1095 | \n",
+ " 48 | \n",
+ " 2430 | \n",
+ "
\n",
+ " \n",
+ " | Bundesliga | \n",
+ " 1081 | \n",
+ " 33 | \n",
+ " 2327 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Team | \n",
+ " Tournament | \n",
+ " Goals | \n",
+ " Shots pg | \n",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ " Possession% | \n",
+ " Pass% | \n",
+ " AerialsWon | \n",
+ " Rating | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " Manchester City | \n",
+ " Premier League | \n",
+ " 83 | \n",
+ " 15.8 | \n",
+ " 46 | \n",
+ " 2 | \n",
+ " 60.8 | \n",
+ " 89.4 | \n",
+ " 12.8 | \n",
+ " 7.01 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " Bayern Munich | \n",
+ " Bundesliga | \n",
+ " 99 | \n",
+ " 17.1 | \n",
+ " 44 | \n",
+ " 3 | \n",
+ " 58.1 | \n",
+ " 85.5 | \n",
+ " 12.9 | \n",
+ " 6.95 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Paris Saint-Germain | \n",
+ " Ligue 1 | \n",
+ " 86 | \n",
+ " 15.0 | \n",
+ " 73 | \n",
+ " 7 | \n",
+ " 60.1 | \n",
+ " 89.5 | \n",
+ " 9.5 | \n",
+ " 6.88 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Barcelona | \n",
+ " LaLiga | \n",
+ " 85 | \n",
+ " 15.3 | \n",
+ " 68 | \n",
+ " 2 | \n",
+ " 62.4 | \n",
+ " 89.7 | \n",
+ " 10.6 | \n",
+ " 6.87 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " Real Madrid | \n",
+ " LaLiga | \n",
+ " 67 | \n",
+ " 14.4 | \n",
+ " 57 | \n",
+ " 2 | \n",
+ " 57.7 | \n",
+ " 87.7 | \n",
+ " 11.8 | \n",
+ " 6.86 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 93 | \n",
+ " Sheffield United | \n",
+ " Premier League | \n",
+ " 20 | \n",
+ " 8.5 | \n",
+ " 73 | \n",
+ " 3 | \n",
+ " 43.0 | \n",
+ " 76.9 | \n",
+ " 19.1 | \n",
+ " 6.46 | \n",
+ "
\n",
+ " \n",
+ " | 94 | \n",
+ " Crotone | \n",
+ " Serie A | \n",
+ " 45 | \n",
+ " 9.5 | \n",
+ " 85 | \n",
+ " 4 | \n",
+ " 47.2 | \n",
+ " 80.4 | \n",
+ " 12.7 | \n",
+ " 6.43 | \n",
+ "
\n",
+ " \n",
+ " | 95 | \n",
+ " Benevento | \n",
+ " Serie A | \n",
+ " 40 | \n",
+ " 11.0 | \n",
+ " 90 | \n",
+ " 5 | \n",
+ " 44.2 | \n",
+ " 77.7 | \n",
+ " 13.4 | \n",
+ " 6.43 | \n",
+ "
\n",
+ " \n",
+ " | 96 | \n",
+ " Dijon | \n",
+ " Ligue 1 | \n",
+ " 25 | \n",
+ " 9.2 | \n",
+ " 75 | \n",
+ " 5 | \n",
+ " 46.9 | \n",
+ " 80.0 | \n",
+ " 14.3 | \n",
+ " 6.42 | \n",
+ "
\n",
+ " \n",
+ " | 97 | \n",
+ " Schalke 04 | \n",
+ " Bundesliga | \n",
+ " 25 | \n",
+ " 8.9 | \n",
+ " 70 | \n",
+ " 2 | \n",
+ " 46.2 | \n",
+ " 76.5 | \n",
+ " 15.6 | \n",
+ " 6.41 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Team | \n",
+ " Tournament | \n",
+ " Goals | \n",
+ " Shots pg | \n",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ " Possession% | \n",
+ " Pass% | \n",
+ " AerialsWon | \n",
+ " Rating | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 3 | \n",
+ " Barcelona | \n",
+ " LaLiga | \n",
+ " 85 | \n",
+ " 15.3 | \n",
+ " 68 | \n",
+ " 2 | \n",
+ " 62.4 | \n",
+ " 89.7 | \n",
+ " 10.6 | \n",
+ " 6.87 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Paris Saint-Germain | \n",
+ " Ligue 1 | \n",
+ " 86 | \n",
+ " 15.0 | \n",
+ " 73 | \n",
+ " 7 | \n",
+ " 60.1 | \n",
+ " 89.5 | \n",
+ " 9.5 | \n",
+ " 6.88 | \n",
+ "
\n",
+ " \n",
+ " | 0 | \n",
+ " Manchester City | \n",
+ " Premier League | \n",
+ " 83 | \n",
+ " 15.8 | \n",
+ " 46 | \n",
+ " 2 | \n",
+ " 60.8 | \n",
+ " 89.4 | \n",
+ " 12.8 | \n",
+ " 7.01 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " Juventus | \n",
+ " Serie A | \n",
+ " 77 | \n",
+ " 15.7 | \n",
+ " 76 | \n",
+ " 6 | \n",
+ " 55.4 | \n",
+ " 88.3 | \n",
+ " 11.4 | \n",
+ " 6.85 | \n",
+ "
\n",
+ " \n",
+ " | 35 | \n",
+ " Sassuolo | \n",
+ " Serie A | \n",
+ " 64 | \n",
+ " 13.9 | \n",
+ " 74 | \n",
+ " 4 | \n",
+ " 58.2 | \n",
+ " 87.8 | \n",
+ " 10.9 | \n",
+ " 6.67 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Team | \n",
+ " Tournament | \n",
+ " Goals | \n",
+ " Shots pg | \n",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ " Possession% | \n",
+ " Pass% | \n",
+ " AerialsWon | \n",
+ " Rating | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " Manchester City | \n",
+ " Premier League | \n",
+ " 83 | \n",
+ " 15.8 | \n",
+ " 46 | \n",
+ " 2 | \n",
+ " 60.8 | \n",
+ " 89.4 | \n",
+ " 12.8 | \n",
+ " 7.01 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Paris Saint-Germain | \n",
+ " Ligue 1 | \n",
+ " 86 | \n",
+ " 15.0 | \n",
+ " 73 | \n",
+ " 7 | \n",
+ " 60.1 | \n",
+ " 89.5 | \n",
+ " 9.5 | \n",
+ " 6.88 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Barcelona | \n",
+ " LaLiga | \n",
+ " 85 | \n",
+ " 15.3 | \n",
+ " 68 | \n",
+ " 2 | \n",
+ " 62.4 | \n",
+ " 89.7 | \n",
+ " 10.6 | \n",
+ " 6.87 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ "
\n",
+ " \n",
+ " | Tournament | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | LaLiga | \n",
+ " 1639 | \n",
+ " 75 | \n",
+ "
\n",
+ " \n",
+ " | Serie A | \n",
+ " 1597 | \n",
+ " 69 | \n",
+ "
\n",
+ " \n",
+ " | Ligue 1 | \n",
+ " 1419 | \n",
+ " 102 | \n",
+ "
\n",
+ " \n",
+ " | Premier League | \n",
+ " 1095 | \n",
+ " 48 | \n",
+ "
\n",
+ " \n",
+ " | Bundesliga | \n",
+ " 1081 | \n",
+ " 33 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ " score | \n",
+ "
\n",
+ " \n",
+ " | Tournament | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | LaLiga | \n",
+ " 1639 | \n",
+ " 75 | \n",
+ " 3653 | \n",
+ "
\n",
+ " \n",
+ " | Serie A | \n",
+ " 1597 | \n",
+ " 69 | \n",
+ " 3539 | \n",
+ "
\n",
+ " \n",
+ " | Ligue 1 | \n",
+ " 1419 | \n",
+ " 102 | \n",
+ " 3348 | \n",
+ "
\n",
+ " \n",
+ " | Premier League | \n",
+ " 1095 | \n",
+ " 48 | \n",
+ " 2430 | \n",
+ "
\n",
+ " \n",
+ " | Bundesliga | \n",
+ " 1081 | \n",
+ " 33 | \n",
+ " 2327 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Team | \n",
+ " Tournament | \n",
+ " Goals | \n",
+ " Shots pg | \n",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ " Possession% | \n",
+ " Pass% | \n",
+ " AerialsWon | \n",
+ " Rating | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " Manchester City | \n",
+ " Premier League | \n",
+ " 83 | \n",
+ " 15.8 | \n",
+ " 46 | \n",
+ " 2 | \n",
+ " 60.8 | \n",
+ " 89.4 | \n",
+ " 12.8 | \n",
+ " 7.01 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " Bayern Munich | \n",
+ " Bundesliga | \n",
+ " 99 | \n",
+ " 17.1 | \n",
+ " 44 | \n",
+ " 3 | \n",
+ " 58.1 | \n",
+ " 85.5 | \n",
+ " 12.9 | \n",
+ " 6.95 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Paris Saint-Germain | \n",
+ " Ligue 1 | \n",
+ " 86 | \n",
+ " 15.0 | \n",
+ " 73 | \n",
+ " 7 | \n",
+ " 60.1 | \n",
+ " 89.5 | \n",
+ " 9.5 | \n",
+ " 6.88 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Barcelona | \n",
+ " LaLiga | \n",
+ " 85 | \n",
+ " 15.3 | \n",
+ " 68 | \n",
+ " 2 | \n",
+ " 62.4 | \n",
+ " 89.7 | \n",
+ " 10.6 | \n",
+ " 6.87 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " Real Madrid | \n",
+ " LaLiga | \n",
+ " 67 | \n",
+ " 14.4 | \n",
+ " 57 | \n",
+ " 2 | \n",
+ " 57.7 | \n",
+ " 87.7 | \n",
+ " 11.8 | \n",
+ " 6.86 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 93 | \n",
+ " Sheffield United | \n",
+ " Premier League | \n",
+ " 20 | \n",
+ " 8.5 | \n",
+ " 73 | \n",
+ " 3 | \n",
+ " 43.0 | \n",
+ " 76.9 | \n",
+ " 19.1 | \n",
+ " 6.46 | \n",
+ "
\n",
+ " \n",
+ " | 94 | \n",
+ " Crotone | \n",
+ " Serie A | \n",
+ " 45 | \n",
+ " 9.5 | \n",
+ " 85 | \n",
+ " 4 | \n",
+ " 47.2 | \n",
+ " 80.4 | \n",
+ " 12.7 | \n",
+ " 6.43 | \n",
+ "
\n",
+ " \n",
+ " | 95 | \n",
+ " Benevento | \n",
+ " Serie A | \n",
+ " 40 | \n",
+ " 11.0 | \n",
+ " 90 | \n",
+ " 5 | \n",
+ " 44.2 | \n",
+ " 77.7 | \n",
+ " 13.4 | \n",
+ " 6.43 | \n",
+ "
\n",
+ " \n",
+ " | 96 | \n",
+ " Dijon | \n",
+ " Ligue 1 | \n",
+ " 25 | \n",
+ " 9.2 | \n",
+ " 75 | \n",
+ " 5 | \n",
+ " 46.9 | \n",
+ " 80.0 | \n",
+ " 14.3 | \n",
+ " 6.42 | \n",
+ "
\n",
+ " \n",
+ " | 97 | \n",
+ " Schalke 04 | \n",
+ " Bundesliga | \n",
+ " 25 | \n",
+ " 8.9 | \n",
+ " 70 | \n",
+ " 2 | \n",
+ " 46.2 | \n",
+ " 76.5 | \n",
+ " 15.6 | \n",
+ " 6.41 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Team | \n",
+ " Tournament | \n",
+ " Goals | \n",
+ " Shots pg | \n",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ " Possession% | \n",
+ " Pass% | \n",
+ " AerialsWon | \n",
+ " Rating | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 3 | \n",
+ " Barcelona | \n",
+ " LaLiga | \n",
+ " 85 | \n",
+ " 15.3 | \n",
+ " 68 | \n",
+ " 2 | \n",
+ " 62.4 | \n",
+ " 89.7 | \n",
+ " 10.6 | \n",
+ " 6.87 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Paris Saint-Germain | \n",
+ " Ligue 1 | \n",
+ " 86 | \n",
+ " 15.0 | \n",
+ " 73 | \n",
+ " 7 | \n",
+ " 60.1 | \n",
+ " 89.5 | \n",
+ " 9.5 | \n",
+ " 6.88 | \n",
+ "
\n",
+ " \n",
+ " | 0 | \n",
+ " Manchester City | \n",
+ " Premier League | \n",
+ " 83 | \n",
+ " 15.8 | \n",
+ " 46 | \n",
+ " 2 | \n",
+ " 60.8 | \n",
+ " 89.4 | \n",
+ " 12.8 | \n",
+ " 7.01 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " Juventus | \n",
+ " Serie A | \n",
+ " 77 | \n",
+ " 15.7 | \n",
+ " 76 | \n",
+ " 6 | \n",
+ " 55.4 | \n",
+ " 88.3 | \n",
+ " 11.4 | \n",
+ " 6.85 | \n",
+ "
\n",
+ " \n",
+ " | 35 | \n",
+ " Sassuolo | \n",
+ " Serie A | \n",
+ " 64 | \n",
+ " 13.9 | \n",
+ " 74 | \n",
+ " 4 | \n",
+ " 58.2 | \n",
+ " 87.8 | \n",
+ " 10.9 | \n",
+ " 6.67 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Team | \n",
+ " Tournament | \n",
+ " Goals | \n",
+ " Shots pg | \n",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ " Possession% | \n",
+ " Pass% | \n",
+ " AerialsWon | \n",
+ " Rating | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " Manchester City | \n",
+ " Premier League | \n",
+ " 83 | \n",
+ " 15.8 | \n",
+ " 46 | \n",
+ " 2 | \n",
+ " 60.8 | \n",
+ " 89.4 | \n",
+ " 12.8 | \n",
+ " 7.01 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Paris Saint-Germain | \n",
+ " Ligue 1 | \n",
+ " 86 | \n",
+ " 15.0 | \n",
+ " 73 | \n",
+ " 7 | \n",
+ " 60.1 | \n",
+ " 89.5 | \n",
+ " 9.5 | \n",
+ " 6.88 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Barcelona | \n",
+ " LaLiga | \n",
+ " 85 | \n",
+ " 15.3 | \n",
+ " 68 | \n",
+ " 2 | \n",
+ " 62.4 | \n",
+ " 89.7 | \n",
+ " 10.6 | \n",
+ " 6.87 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ "
\n",
+ " \n",
+ " | Tournament | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | LaLiga | \n",
+ " 1639 | \n",
+ " 75 | \n",
+ "
\n",
+ " \n",
+ " | Serie A | \n",
+ " 1597 | \n",
+ " 69 | \n",
+ "
\n",
+ " \n",
+ " | Ligue 1 | \n",
+ " 1419 | \n",
+ " 102 | \n",
+ "
\n",
+ " \n",
+ " | Premier League | \n",
+ " 1095 | \n",
+ " 48 | \n",
+ "
\n",
+ " \n",
+ " | Bundesliga | \n",
+ " 1081 | \n",
+ " 33 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " yellow_cards | \n",
+ " red_cards | \n",
+ " bad_score | \n",
+ "
\n",
+ " \n",
+ " | Tournament | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | LaLiga | \n",
+ " 1639 | \n",
+ " 75 | \n",
+ " 3653 | \n",
+ "
\n",
+ " \n",
+ " | Serie A | \n",
+ " 1597 | \n",
+ " 69 | \n",
+ " 3539 | \n",
+ "
\n",
+ " \n",
+ " | Ligue 1 | \n",
+ " 1419 | \n",
+ " 102 | \n",
+ " 3348 | \n",
+ "
\n",
+ " \n",
+ " | Premier League | \n",
+ " 1095 | \n",
+ " 48 | \n",
+ " 2430 | \n",
+ "
\n",
+ " \n",
+ " | Bundesliga | \n",
+ " 1081 | \n",
+ " 33 | \n",
+ " 2327 | \n",
+ "
\n",
+ " \n",
+ "
\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