Files
PythonProgramozas_GKNB_MSTM032/13_gyak_mego.ipynb
2024-09-21 11:20:44 +02:00

995 lines
25 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Feladatok\n",
"Oldjuk meg az alábbi feladatokat a pandas segítségével!\n",
"\n",
"A [pl.txt](pl.txt) szövegfájl a Premier League 2011-12-es szezonjának eredményeit tartalmazza. Készítsünk programot, amely:\n",
"- Betölti a fájl adatait egy DataFrame-be!\n",
"- Meghatározza, hogy:\n",
" - hány mérkőzés volt ez egyes fordulókban?\n",
" - hány gól esett az egyes fordulókban?\n",
" - mennyi volt az átlagos mérkőzésenkénti gólszám az egyes fordulókban?\n",
" - melyik fordulóban esett a legtöbb gól?\n",
" - a mérkőzések hány százalékán esett gól?\n",
" - melyik mérkőzésen esett a legtöbb gól?\n",
" - hány gólt rúgott összesen a Manchester United?\n",
"\n",
"- Kiírja: \n",
" - a tíz leggólgazdagabb fordulót a gólszámokkal együtt!\n",
" - a 10., 20. és 30. fordulóban hány gól esett összesen!"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# A megoldáshoz a pandas-t használjuk.\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>round</th>\n",
" <th>hteam</th>\n",
" <th>ateam</th>\n",
" <th>hgoals</th>\n",
" <th>agoals</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>Blackburn Rovers</td>\n",
" <td>Wolverhampton Wanderers</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>Fulham FC</td>\n",
" <td>Aston Villa</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>Liverpool FC</td>\n",
" <td>Sunderland AFC</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>Queens Park Rangers</td>\n",
" <td>Bolton Wanderers</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>Wigan Athletic</td>\n",
" <td>Norwich City</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>375</th>\n",
" <td>38</td>\n",
" <td>Sunderland AFC</td>\n",
" <td>Manchester United</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>376</th>\n",
" <td>38</td>\n",
" <td>Swansea City</td>\n",
" <td>Liverpool FC</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>377</th>\n",
" <td>38</td>\n",
" <td>Tottenham Hotspur</td>\n",
" <td>Fulham FC</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>378</th>\n",
" <td>38</td>\n",
" <td>West Bromwich Albion</td>\n",
" <td>Arsenal FC</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>379</th>\n",
" <td>38</td>\n",
" <td>Wigan Athletic</td>\n",
" <td>Wolverhampton Wanderers</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>380 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" round hteam ateam hgoals agoals\n",
"0 1 Blackburn Rovers Wolverhampton Wanderers 1 2\n",
"1 1 Fulham FC Aston Villa 0 0\n",
"2 1 Liverpool FC Sunderland AFC 1 1\n",
"3 1 Queens Park Rangers Bolton Wanderers 0 4\n",
"4 1 Wigan Athletic Norwich City 1 1\n",
".. ... ... ... ... ...\n",
"375 38 Sunderland AFC Manchester United 0 1\n",
"376 38 Swansea City Liverpool FC 1 0\n",
"377 38 Tottenham Hotspur Fulham FC 2 0\n",
"378 38 West Bromwich Albion Arsenal FC 2 3\n",
"379 38 Wigan Athletic Wolverhampton Wanderers 3 2\n",
"\n",
"[380 rows x 5 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Töltsük be a pl.txt fájl adatait DataFrame-be!\n",
"names = ['round', 'hteam', 'ateam', 'hgoals', 'agoals']\n",
"df = pd.read_csv('pl.txt', sep='\\t', skiprows=6, names=names)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 380 entries, 0 to 379\n",
"Data columns (total 5 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 round 380 non-null int64 \n",
" 1 hteam 380 non-null object\n",
" 2 ateam 380 non-null object\n",
" 3 hgoals 380 non-null int64 \n",
" 4 agoals 380 non-null int64 \n",
"dtypes: int64(3), object(2)\n",
"memory usage: 15.0+ KB\n"
]
}
],
"source": [
"df.info()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>round</th>\n",
" <th>hgoals</th>\n",
" <th>agoals</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>380.000000</td>\n",
" <td>380.000000</td>\n",
" <td>380.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>19.500000</td>\n",
" <td>1.589474</td>\n",
" <td>1.215789</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>10.980313</td>\n",
" <td>1.331531</td>\n",
" <td>1.204987</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>10.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>19.500000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>29.000000</td>\n",
" <td>2.000000</td>\n",
" <td>2.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>38.000000</td>\n",
" <td>8.000000</td>\n",
" <td>6.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" round hgoals agoals\n",
"count 380.000000 380.000000 380.000000\n",
"mean 19.500000 1.589474 1.215789\n",
"std 10.980313 1.331531 1.204987\n",
"min 1.000000 0.000000 0.000000\n",
"25% 10.000000 1.000000 0.000000\n",
"50% 19.500000 1.000000 1.000000\n",
"75% 29.000000 2.000000 2.000000\n",
"max 38.000000 8.000000 6.000000"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>round</th>\n",
" <th>hteam</th>\n",
" <th>ateam</th>\n",
" <th>hgoals</th>\n",
" <th>agoals</th>\n",
" <th>goals</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>Blackburn Rovers</td>\n",
" <td>Wolverhampton Wanderers</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>Fulham FC</td>\n",
" <td>Aston Villa</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>Liverpool FC</td>\n",
" <td>Sunderland AFC</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>Queens Park Rangers</td>\n",
" <td>Bolton Wanderers</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>Wigan Athletic</td>\n",
" <td>Norwich City</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>375</th>\n",
" <td>38</td>\n",
" <td>Sunderland AFC</td>\n",
" <td>Manchester United</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>376</th>\n",
" <td>38</td>\n",
" <td>Swansea City</td>\n",
" <td>Liverpool FC</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>377</th>\n",
" <td>38</td>\n",
" <td>Tottenham Hotspur</td>\n",
" <td>Fulham FC</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>378</th>\n",
" <td>38</td>\n",
" <td>West Bromwich Albion</td>\n",
" <td>Arsenal FC</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>379</th>\n",
" <td>38</td>\n",
" <td>Wigan Athletic</td>\n",
" <td>Wolverhampton Wanderers</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>380 rows × 6 columns</p>\n",
"</div>"
],
"text/plain": [
" round hteam ateam hgoals agoals \\\n",
"0 1 Blackburn Rovers Wolverhampton Wanderers 1 2 \n",
"1 1 Fulham FC Aston Villa 0 0 \n",
"2 1 Liverpool FC Sunderland AFC 1 1 \n",
"3 1 Queens Park Rangers Bolton Wanderers 0 4 \n",
"4 1 Wigan Athletic Norwich City 1 1 \n",
".. ... ... ... ... ... \n",
"375 38 Sunderland AFC Manchester United 0 1 \n",
"376 38 Swansea City Liverpool FC 1 0 \n",
"377 38 Tottenham Hotspur Fulham FC 2 0 \n",
"378 38 West Bromwich Albion Arsenal FC 2 3 \n",
"379 38 Wigan Athletic Wolverhampton Wanderers 3 2 \n",
"\n",
" goals \n",
"0 3 \n",
"1 0 \n",
"2 2 \n",
"3 4 \n",
"4 2 \n",
".. ... \n",
"375 1 \n",
"376 1 \n",
"377 2 \n",
"378 5 \n",
"379 5 \n",
"\n",
"[380 rows x 6 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# \"Gólok száma\" oszlop felvétele.\n",
"df['goals'] = df['hgoals'] + df['agoals']\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"round\n",
"1 10\n",
"2 10\n",
"3 10\n",
"4 10\n",
"5 10\n",
"6 10\n",
"7 10\n",
"8 10\n",
"9 10\n",
"10 10\n",
"11 10\n",
"12 10\n",
"13 10\n",
"14 10\n",
"15 10\n",
"16 10\n",
"17 10\n",
"18 10\n",
"19 10\n",
"20 10\n",
"21 10\n",
"22 10\n",
"23 10\n",
"24 10\n",
"25 10\n",
"26 10\n",
"27 10\n",
"28 10\n",
"29 10\n",
"30 10\n",
"31 10\n",
"32 10\n",
"33 10\n",
"34 10\n",
"35 10\n",
"36 10\n",
"37 10\n",
"38 10\n",
"dtype: int64"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Példák csoportosításra (groupby).\n",
"# Hány mérkőzés volt az egyes fordulókban?\n",
"df.groupby('round').size()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1 10\n",
"29 10\n",
"22 10\n",
"23 10\n",
"24 10\n",
"25 10\n",
"26 10\n",
"27 10\n",
"28 10\n",
"30 10\n",
"2 10\n",
"31 10\n",
"32 10\n",
"33 10\n",
"34 10\n",
"35 10\n",
"36 10\n",
"37 10\n",
"21 10\n",
"20 10\n",
"19 10\n",
"18 10\n",
"3 10\n",
"4 10\n",
"5 10\n",
"6 10\n",
"7 10\n",
"8 10\n",
"9 10\n",
"10 10\n",
"11 10\n",
"12 10\n",
"13 10\n",
"14 10\n",
"15 10\n",
"16 10\n",
"17 10\n",
"38 10\n",
"Name: round, dtype: int64"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (majdnem) ugyanez, tömörebben\n",
"df['round'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"round\n",
"1 20\n",
"2 23\n",
"3 31\n",
"4 22\n",
"5 38\n",
"6 27\n",
"7 34\n",
"8 32\n",
"9 31\n",
"10 39\n",
"11 31\n",
"12 30\n",
"13 25\n",
"14 30\n",
"15 30\n",
"16 18\n",
"17 31\n",
"18 19\n",
"19 26\n",
"20 29\n",
"21 22\n",
"22 35\n",
"23 23\n",
"24 31\n",
"25 36\n",
"26 30\n",
"27 24\n",
"28 17\n",
"29 27\n",
"30 25\n",
"31 35\n",
"32 23\n",
"33 29\n",
"34 28\n",
"35 22\n",
"36 35\n",
"37 26\n",
"38 32\n",
"Name: goals, dtype: int64"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Hány gól esett az egyes fordulókban?\n",
"df.groupby('round')['goals'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Melyik fordulóban esett a legtöbb gól?\n",
"df.groupby('round')['goals'].sum().idxmax()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"round\n",
"1 2.0\n",
"2 2.3\n",
"3 3.1\n",
"4 2.2\n",
"5 3.8\n",
"6 2.7\n",
"7 3.4\n",
"8 3.2\n",
"9 3.1\n",
"10 3.9\n",
"11 3.1\n",
"12 3.0\n",
"13 2.5\n",
"14 3.0\n",
"15 3.0\n",
"16 1.8\n",
"17 3.1\n",
"18 1.9\n",
"19 2.6\n",
"20 2.9\n",
"21 2.2\n",
"22 3.5\n",
"23 2.3\n",
"24 3.1\n",
"25 3.6\n",
"26 3.0\n",
"27 2.4\n",
"28 1.7\n",
"29 2.7\n",
"30 2.5\n",
"31 3.5\n",
"32 2.3\n",
"33 2.9\n",
"34 2.8\n",
"35 2.2\n",
"36 3.5\n",
"37 2.6\n",
"38 3.2\n",
"Name: goals, dtype: float64"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Az átlagos mérkőzésenkénti gólszám az egyes fordulókban.\n",
"df.groupby('round')['goals'].mean()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"round\n",
"10 39\n",
"5 38\n",
"25 36\n",
"22 35\n",
"36 35\n",
"31 35\n",
"7 34\n",
"38 32\n",
"8 32\n",
"9 31\n",
"Name: goals, dtype: int64"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Írjuk ki a tíz leggólgazdagabb fordulót a gólszámokkal együtt!\n",
"df.groupby('round')['goals'].sum().sort_values(ascending=False).head(10)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"92.89473684210526"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# A mérkőzések hány százalékán esett gól?\n",
"(df['goals'] > 0).mean() * 100"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"round 3\n",
"hteam Manchester United\n",
"ateam Arsenal FC\n",
"hgoals 8\n",
"agoals 2\n",
"goals 10\n",
"Name: 29, dtype: object"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Melyik mérkőzésen esett a legtöbb gól?\n",
"df.loc[df['goals'].idxmax()]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"93"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Írjuk ki, hogy a 10., 20. és 30. fordulóban hány gól esett összesen!\n",
"df[(df['round'] == 10) | (df['round'] == 20) | (df['round'] == 30)]['goals'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"93"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# ...alternatív megoldás:\n",
"df[df['round'].isin({10, 20, 30})]['goals'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"93"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# ...harmadik megoldás:\n",
"df.groupby('round')['goals'].sum()[[10, 20, 30]].sum()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"93"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# ...negyedik megoldás:\n",
"df[(df['round'] % 10 == 0)]['goals'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"89"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Hány gólt rúgott összesen a Manchester United?\n",
"df[df['hteam'] == 'Manchester United']['hgoals'].sum() + df[df['ateam'] == 'Manchester United']['agoals'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"89"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# ...alternatív megoldás:\n",
"sum([df[df[f'{p}team'] == 'Manchester United'][f'{p}goals'].sum() for p in 'ha'])"
]
}
],
"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.11.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}