{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## NBA Home Court Advantage\n",
    "\n",
    "### Part 4: Which Box Score Statistics Contribute to Home Court Advantage?\n",
    "\n",
    "If the home team has a higher win probability, that advantage should be evident in at least some of the box score statistics. Home court advantage could result from better offense, better defense, or a mix of the two.\n",
    "\n",
    "In this notebook, we'll examine how basic box score statistics vary between home and away games.\n",
    "\n",
    "We'll continue to use the games from the 1996-97 through 2016-17 NBA regular seasons as our data set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "pd.options.display.max_rows = 999\n",
    "pd.options.display.max_columns = 999\n",
    "pd.options.display.float_format = '{:.3f}'.format"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.colors import rgb2hex\n",
    "import seaborn as sns\n",
    "sns.set()\n",
    "sns.set_context('notebook')\n",
    "plt.style.use('ggplot')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy import stats"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pathlib import Path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "PROJECT_DIR = Path.cwd().parent / 'basketball' / 'nba'\n",
    "DATA_DIR = PROJECT_DIR / 'data' / 'prepared'\n",
    "DATA_DIR.mkdir(exist_ok=True, parents=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def load_nba_historical_matchups(input_dir):\n",
    "    \"\"\"Load pickle file of NBA matchups prepared for analytics.\"\"\"\n",
    "    PKLFILENAME = 'stats_nba_com-matchups-1996_97-2016_17.pkl'\n",
    "    pklfile = input_dir.joinpath(PKLFILENAME)\n",
    "    return pd.read_pickle(pklfile)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(26787, 41)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "matchups = load_nba_historical_matchups(DATA_DIR)\n",
    "matchups.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "21"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "seasons = sorted(list(matchups['season'].unique()))\n",
    "len(seasons)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def prepare_regular_season(matchups):\n",
    "    df = matchups.copy()\n",
    "    df = df[df['season_type'] == 'regular']\n",
    "    return df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(24797, 41)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reg = prepare_regular_season(matchups)\n",
    "reg.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "30"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "teams = sorted(list(reg['team_curr_h'].unique()))\n",
    "len(teams)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Aggregating the Data\n",
    "\n",
    "We are going to try to identify which team box score statistics improve at home compared to on the road. In order to do this properly, we need to isolate the impact of location (home versus away) from the match up itself. Otherwise, the variation created by differences in opponent quality will swamp the impact of home court.\n",
    "\n",
    "To do this, we are going to group box score statistics by season, team, and opponent. Grouping in this way will allow us to control for the variation in team quality in different seasons. It will also allow us to control for the different quanlity of various opponents.\n",
    "\n",
    "Within this grouping, we will separate the home games from the away games, and get the average box score statistics for each. Then, we can subtract the average away game statistics from the average home game statistics. The difference between the grouped home and away statistics will be our measure of how team performance improves just by virtue of playing at home.\n",
    "\n",
    "The below Python code uses `pandas` to implement this idea. Also, note that we are going to scale the statistics for a standard 48-minute game. We will also compute shooting percentages for field goals, three-pointers, and free throws."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "HOME = 'H'\n",
    "AWAY = 'A'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def aggregation(group, home_away):\n",
    "    suffix = '_h' if home_away == HOME else '_a'\n",
    "    # Get the home or away columns and strip off the suffix\n",
    "    stat_cols = [col[:-2] for col in group.columns if suffix in col and 'team' not in col]\n",
    "    # Scale the stats for a 48-minute game and get the group average\n",
    "    result = {}\n",
    "    for col in stat_cols:\n",
    "        result[col] = (group[col+suffix] / group['min'] * 48.0).mean()\n",
    "    # Compute shooting percentages for the group\n",
    "    pct_cols = ['fg', 'fg3', 'ft']\n",
    "    for col in pct_cols:\n",
    "        result[col+'_pct'] = (100.0 * group[col+'m'+suffix] / group[col+'a'+suffix]).mean()\n",
    "    return pd.Series(result, index=list(result.keys()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The above function computes the average statistics for each season, team and opponent grouping, scaled to a standard 48-minute game. It will also compute the shooting percentages. Notice that this function doesn't do the home versus away subtraction. That will come later.\n",
    "\n",
    "The function below does the actual grouping, and calls the above function for each group. It also keeps track of how many games are in each group."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def aggregate_stats(data, home_away):\n",
    "    suffix = '_h' if home_away == HOME else '_a'\n",
    "    other_suffix = '_a' if home_away == HOME else '_h'\n",
    "    team = 'team_curr' + suffix\n",
    "    opponent = 'team_curr' + other_suffix\n",
    "    # Apply the aggregation by season, team and opponent\n",
    "    df = data.groupby(['season', team, opponent]).apply(aggregation, home_away)\n",
    "    # Add a count of the number of games in this group\n",
    "    df['games'] = data.groupby(['season', team, opponent]).size()\n",
    "    df = df.reset_index().rename(columns={team: 'team', opponent: 'opponent'})\n",
    "    df = df.set_index(['season', 'team', 'opponent'])\n",
    "    # Drop NA rows (i.e., team vs itself, team vs CHA prior to expansion)\n",
    "    cols = [col for col in df.columns if col != 'games']\n",
    "    return df.dropna()[['games']+cols]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's do the grouping and aggregation for the home games first."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(17290, 18)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "home_df = aggregate_stats(reg, HOME)\n",
    "home_df.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There are 17,290 distinct groups of home games by season, team and opponent."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "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></th>\n",
       "      <th></th>\n",
       "      <th>games</th>\n",
       "      <th>pts</th>\n",
       "      <th>fgm</th>\n",
       "      <th>fga</th>\n",
       "      <th>fg3m</th>\n",
       "      <th>fg3a</th>\n",
       "      <th>ftm</th>\n",
       "      <th>fta</th>\n",
       "      <th>oreb</th>\n",
       "      <th>dreb</th>\n",
       "      <th>ast</th>\n",
       "      <th>tov</th>\n",
       "      <th>stl</th>\n",
       "      <th>blk</th>\n",
       "      <th>pf</th>\n",
       "      <th>fg_pct</th>\n",
       "      <th>fg3_pct</th>\n",
       "      <th>ft_pct</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>season</th>\n",
       "      <th>team</th>\n",
       "      <th>opponent</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">1996-97</th>\n",
       "      <th rowspan=\"5\" valign=\"top\">ATL</th>\n",
       "      <th>BKN</th>\n",
       "      <td>2.000</td>\n",
       "      <td>109.000</td>\n",
       "      <td>37.000</td>\n",
       "      <td>76.000</td>\n",
       "      <td>12.000</td>\n",
       "      <td>26.500</td>\n",
       "      <td>23.000</td>\n",
       "      <td>28.000</td>\n",
       "      <td>10.500</td>\n",
       "      <td>30.500</td>\n",
       "      <td>22.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>5.000</td>\n",
       "      <td>19.000</td>\n",
       "      <td>48.710</td>\n",
       "      <td>45.214</td>\n",
       "      <td>82.143</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BOS</th>\n",
       "      <td>2.000</td>\n",
       "      <td>100.000</td>\n",
       "      <td>38.500</td>\n",
       "      <td>84.000</td>\n",
       "      <td>8.000</td>\n",
       "      <td>25.000</td>\n",
       "      <td>15.000</td>\n",
       "      <td>19.000</td>\n",
       "      <td>17.500</td>\n",
       "      <td>30.000</td>\n",
       "      <td>22.500</td>\n",
       "      <td>17.000</td>\n",
       "      <td>10.000</td>\n",
       "      <td>7.500</td>\n",
       "      <td>19.000</td>\n",
       "      <td>45.828</td>\n",
       "      <td>34.225</td>\n",
       "      <td>78.333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CHI</th>\n",
       "      <td>2.000</td>\n",
       "      <td>98.000</td>\n",
       "      <td>34.500</td>\n",
       "      <td>81.000</td>\n",
       "      <td>7.500</td>\n",
       "      <td>24.500</td>\n",
       "      <td>21.500</td>\n",
       "      <td>24.500</td>\n",
       "      <td>15.500</td>\n",
       "      <td>28.500</td>\n",
       "      <td>13.500</td>\n",
       "      <td>13.000</td>\n",
       "      <td>7.500</td>\n",
       "      <td>4.500</td>\n",
       "      <td>19.500</td>\n",
       "      <td>42.593</td>\n",
       "      <td>30.303</td>\n",
       "      <td>85.646</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CLE</th>\n",
       "      <td>2.000</td>\n",
       "      <td>90.000</td>\n",
       "      <td>31.000</td>\n",
       "      <td>66.500</td>\n",
       "      <td>7.000</td>\n",
       "      <td>21.000</td>\n",
       "      <td>21.000</td>\n",
       "      <td>24.000</td>\n",
       "      <td>8.000</td>\n",
       "      <td>25.000</td>\n",
       "      <td>19.500</td>\n",
       "      <td>15.000</td>\n",
       "      <td>6.500</td>\n",
       "      <td>5.000</td>\n",
       "      <td>19.000</td>\n",
       "      <td>47.368</td>\n",
       "      <td>33.409</td>\n",
       "      <td>86.933</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DAL</th>\n",
       "      <td>1.000</td>\n",
       "      <td>93.000</td>\n",
       "      <td>37.000</td>\n",
       "      <td>72.000</td>\n",
       "      <td>11.000</td>\n",
       "      <td>24.000</td>\n",
       "      <td>8.000</td>\n",
       "      <td>15.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>29.000</td>\n",
       "      <td>22.000</td>\n",
       "      <td>13.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>3.000</td>\n",
       "      <td>13.000</td>\n",
       "      <td>51.389</td>\n",
       "      <td>45.833</td>\n",
       "      <td>53.333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       games     pts    fgm    fga   fg3m   fg3a    ftm  \\\n",
       "season  team opponent                                                     \n",
       "1996-97 ATL  BKN       2.000 109.000 37.000 76.000 12.000 26.500 23.000   \n",
       "             BOS       2.000 100.000 38.500 84.000  8.000 25.000 15.000   \n",
       "             CHI       2.000  98.000 34.500 81.000  7.500 24.500 21.500   \n",
       "             CLE       2.000  90.000 31.000 66.500  7.000 21.000 21.000   \n",
       "             DAL       1.000  93.000 37.000 72.000 11.000 24.000  8.000   \n",
       "\n",
       "                         fta   oreb   dreb    ast    tov    stl   blk     pf  \\\n",
       "season  team opponent                                                          \n",
       "1996-97 ATL  BKN      28.000 10.500 30.500 22.000 16.000  9.000 5.000 19.000   \n",
       "             BOS      19.000 17.500 30.000 22.500 17.000 10.000 7.500 19.000   \n",
       "             CHI      24.500 15.500 28.500 13.500 13.000  7.500 4.500 19.500   \n",
       "             CLE      24.000  8.000 25.000 19.500 15.000  6.500 5.000 19.000   \n",
       "             DAL      15.000  9.000 29.000 22.000 13.000  9.000 3.000 13.000   \n",
       "\n",
       "                       fg_pct  fg3_pct  ft_pct  \n",
       "season  team opponent                           \n",
       "1996-97 ATL  BKN       48.710   45.214  82.143  \n",
       "             BOS       45.828   34.225  78.333  \n",
       "             CHI       42.593   30.303  85.646  \n",
       "             CLE       47.368   33.409  86.933  \n",
       "             DAL       51.389   45.833  53.333  "
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "home_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's check to make sure didn't drop any games from our data set during the aggregation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "24797.0"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "home_df['games'].sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The correct number of games got picked up in the aggregation. Since the aggregation takes a while, let's save the results in a CSV file in case we want to pick up this analysis on a different occasion."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "csvfile = DATA_DIR.joinpath('stats_nba_com-agg_matchup_box_scores-home-1996_97-2016_17.csv')\n",
    "home_df.to_csv(csvfile, index=True, float_format='%g')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can perform the same steps for the away games."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(17290, 18)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "away_df = aggregate_stats(reg, AWAY)\n",
    "away_df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "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></th>\n",
       "      <th></th>\n",
       "      <th>games</th>\n",
       "      <th>pts</th>\n",
       "      <th>fgm</th>\n",
       "      <th>fga</th>\n",
       "      <th>fg3m</th>\n",
       "      <th>fg3a</th>\n",
       "      <th>ftm</th>\n",
       "      <th>fta</th>\n",
       "      <th>oreb</th>\n",
       "      <th>dreb</th>\n",
       "      <th>ast</th>\n",
       "      <th>tov</th>\n",
       "      <th>stl</th>\n",
       "      <th>blk</th>\n",
       "      <th>pf</th>\n",
       "      <th>fg_pct</th>\n",
       "      <th>fg3_pct</th>\n",
       "      <th>ft_pct</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>season</th>\n",
       "      <th>team</th>\n",
       "      <th>opponent</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">1996-97</th>\n",
       "      <th rowspan=\"5\" valign=\"top\">ATL</th>\n",
       "      <th>BKN</th>\n",
       "      <td>2.000</td>\n",
       "      <td>93.500</td>\n",
       "      <td>35.500</td>\n",
       "      <td>88.000</td>\n",
       "      <td>8.000</td>\n",
       "      <td>30.500</td>\n",
       "      <td>14.500</td>\n",
       "      <td>17.500</td>\n",
       "      <td>17.000</td>\n",
       "      <td>28.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>12.500</td>\n",
       "      <td>8.500</td>\n",
       "      <td>5.000</td>\n",
       "      <td>15.000</td>\n",
       "      <td>40.413</td>\n",
       "      <td>26.407</td>\n",
       "      <td>81.250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BOS</th>\n",
       "      <td>2.000</td>\n",
       "      <td>99.500</td>\n",
       "      <td>38.000</td>\n",
       "      <td>81.000</td>\n",
       "      <td>10.000</td>\n",
       "      <td>26.000</td>\n",
       "      <td>13.500</td>\n",
       "      <td>24.500</td>\n",
       "      <td>12.500</td>\n",
       "      <td>33.000</td>\n",
       "      <td>28.000</td>\n",
       "      <td>24.000</td>\n",
       "      <td>11.500</td>\n",
       "      <td>6.500</td>\n",
       "      <td>19.500</td>\n",
       "      <td>46.558</td>\n",
       "      <td>38.370</td>\n",
       "      <td>55.051</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CHI</th>\n",
       "      <td>2.000</td>\n",
       "      <td>74.000</td>\n",
       "      <td>27.000</td>\n",
       "      <td>79.500</td>\n",
       "      <td>5.500</td>\n",
       "      <td>18.500</td>\n",
       "      <td>14.500</td>\n",
       "      <td>19.000</td>\n",
       "      <td>14.500</td>\n",
       "      <td>25.500</td>\n",
       "      <td>12.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>4.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>33.972</td>\n",
       "      <td>28.205</td>\n",
       "      <td>77.451</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CLE</th>\n",
       "      <td>2.000</td>\n",
       "      <td>78.000</td>\n",
       "      <td>28.500</td>\n",
       "      <td>66.500</td>\n",
       "      <td>7.000</td>\n",
       "      <td>21.500</td>\n",
       "      <td>14.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>28.500</td>\n",
       "      <td>18.500</td>\n",
       "      <td>13.500</td>\n",
       "      <td>7.000</td>\n",
       "      <td>5.000</td>\n",
       "      <td>17.500</td>\n",
       "      <td>43.617</td>\n",
       "      <td>32.717</td>\n",
       "      <td>76.190</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DAL</th>\n",
       "      <td>1.000</td>\n",
       "      <td>109.000</td>\n",
       "      <td>40.000</td>\n",
       "      <td>74.000</td>\n",
       "      <td>19.000</td>\n",
       "      <td>27.000</td>\n",
       "      <td>10.000</td>\n",
       "      <td>22.000</td>\n",
       "      <td>12.000</td>\n",
       "      <td>37.000</td>\n",
       "      <td>26.000</td>\n",
       "      <td>15.000</td>\n",
       "      <td>6.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>14.000</td>\n",
       "      <td>54.054</td>\n",
       "      <td>70.370</td>\n",
       "      <td>45.455</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       games     pts    fgm    fga   fg3m   fg3a    ftm  \\\n",
       "season  team opponent                                                     \n",
       "1996-97 ATL  BKN       2.000  93.500 35.500 88.000  8.000 30.500 14.500   \n",
       "             BOS       2.000  99.500 38.000 81.000 10.000 26.000 13.500   \n",
       "             CHI       2.000  74.000 27.000 79.500  5.500 18.500 14.500   \n",
       "             CLE       2.000  78.000 28.500 66.500  7.000 21.500 14.000   \n",
       "             DAL       1.000 109.000 40.000 74.000 19.000 27.000 10.000   \n",
       "\n",
       "                         fta   oreb   dreb    ast    tov    stl   blk     pf  \\\n",
       "season  team opponent                                                          \n",
       "1996-97 ATL  BKN      17.500 17.000 28.000 18.000 12.500  8.500 5.000 15.000   \n",
       "             BOS      24.500 12.500 33.000 28.000 24.000 11.500 6.500 19.500   \n",
       "             CHI      19.000 14.500 25.500 12.000 16.000  9.000 4.000 16.000   \n",
       "             CLE      18.000  9.000 28.500 18.500 13.500  7.000 5.000 17.500   \n",
       "             DAL      22.000 12.000 37.000 26.000 15.000  6.000 9.000 14.000   \n",
       "\n",
       "                       fg_pct  fg3_pct  ft_pct  \n",
       "season  team opponent                           \n",
       "1996-97 ATL  BKN       40.413   26.407  81.250  \n",
       "             BOS       46.558   38.370  55.051  \n",
       "             CHI       33.972   28.205  77.451  \n",
       "             CLE       43.617   32.717  76.190  \n",
       "             DAL       54.054   70.370  45.455  "
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "away_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "24797.0"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "away_df['games'].sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "csvfile = DATA_DIR.joinpath('stats_nba_com-agg_matchup_box_scores-away-1996_97-2016_17.csv')\n",
    "away_df.to_csv(csvfile, index=True, float_format='%g')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Combining the Home and Away Data\n",
    "\n",
    "Now that we have aggregated the home games and the away games, we need to combine the information. Remember, our goal is to subtract each team's home game performance from the same team's away game performance, grouped by season and opposing team.\n",
    "\n",
    "We can use the `pandas` [`join()`](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.join.html) method to accomplish this. We will add a suffix to each of the data columns to keep trach of which statistics came from the home games, and which came from the away games."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(17554, 36)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = home_df.join(away_df, how='outer', lsuffix='_h', rsuffix='_a')\n",
    "df.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Checking the Number of Rows\n",
    "\n",
    "Notice that the number of rows in the combined `DataFrame` is larger than the number of rows in each of the home and away `DataFrame` objects. That means we need to look more closely at whether the `join()` method created any rows with missing or null data. We will do that shortly. First, let's take a look at the combined data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "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></th>\n",
       "      <th></th>\n",
       "      <th>games_h</th>\n",
       "      <th>pts_h</th>\n",
       "      <th>fgm_h</th>\n",
       "      <th>fga_h</th>\n",
       "      <th>fg3m_h</th>\n",
       "      <th>fg3a_h</th>\n",
       "      <th>ftm_h</th>\n",
       "      <th>fta_h</th>\n",
       "      <th>oreb_h</th>\n",
       "      <th>dreb_h</th>\n",
       "      <th>ast_h</th>\n",
       "      <th>tov_h</th>\n",
       "      <th>stl_h</th>\n",
       "      <th>blk_h</th>\n",
       "      <th>pf_h</th>\n",
       "      <th>fg_pct_h</th>\n",
       "      <th>fg3_pct_h</th>\n",
       "      <th>ft_pct_h</th>\n",
       "      <th>games_a</th>\n",
       "      <th>pts_a</th>\n",
       "      <th>fgm_a</th>\n",
       "      <th>fga_a</th>\n",
       "      <th>fg3m_a</th>\n",
       "      <th>fg3a_a</th>\n",
       "      <th>ftm_a</th>\n",
       "      <th>fta_a</th>\n",
       "      <th>oreb_a</th>\n",
       "      <th>dreb_a</th>\n",
       "      <th>ast_a</th>\n",
       "      <th>tov_a</th>\n",
       "      <th>stl_a</th>\n",
       "      <th>blk_a</th>\n",
       "      <th>pf_a</th>\n",
       "      <th>fg_pct_a</th>\n",
       "      <th>fg3_pct_a</th>\n",
       "      <th>ft_pct_a</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>season</th>\n",
       "      <th>team</th>\n",
       "      <th>opponent</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">1996-97</th>\n",
       "      <th rowspan=\"5\" valign=\"top\">ATL</th>\n",
       "      <th>BKN</th>\n",
       "      <td>2.000</td>\n",
       "      <td>109.000</td>\n",
       "      <td>37.000</td>\n",
       "      <td>76.000</td>\n",
       "      <td>12.000</td>\n",
       "      <td>26.500</td>\n",
       "      <td>23.000</td>\n",
       "      <td>28.000</td>\n",
       "      <td>10.500</td>\n",
       "      <td>30.500</td>\n",
       "      <td>22.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>5.000</td>\n",
       "      <td>19.000</td>\n",
       "      <td>48.710</td>\n",
       "      <td>45.214</td>\n",
       "      <td>82.143</td>\n",
       "      <td>2.000</td>\n",
       "      <td>93.500</td>\n",
       "      <td>35.500</td>\n",
       "      <td>88.000</td>\n",
       "      <td>8.000</td>\n",
       "      <td>30.500</td>\n",
       "      <td>14.500</td>\n",
       "      <td>17.500</td>\n",
       "      <td>17.000</td>\n",
       "      <td>28.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>12.500</td>\n",
       "      <td>8.500</td>\n",
       "      <td>5.000</td>\n",
       "      <td>15.000</td>\n",
       "      <td>40.413</td>\n",
       "      <td>26.407</td>\n",
       "      <td>81.250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BOS</th>\n",
       "      <td>2.000</td>\n",
       "      <td>100.000</td>\n",
       "      <td>38.500</td>\n",
       "      <td>84.000</td>\n",
       "      <td>8.000</td>\n",
       "      <td>25.000</td>\n",
       "      <td>15.000</td>\n",
       "      <td>19.000</td>\n",
       "      <td>17.500</td>\n",
       "      <td>30.000</td>\n",
       "      <td>22.500</td>\n",
       "      <td>17.000</td>\n",
       "      <td>10.000</td>\n",
       "      <td>7.500</td>\n",
       "      <td>19.000</td>\n",
       "      <td>45.828</td>\n",
       "      <td>34.225</td>\n",
       "      <td>78.333</td>\n",
       "      <td>2.000</td>\n",
       "      <td>99.500</td>\n",
       "      <td>38.000</td>\n",
       "      <td>81.000</td>\n",
       "      <td>10.000</td>\n",
       "      <td>26.000</td>\n",
       "      <td>13.500</td>\n",
       "      <td>24.500</td>\n",
       "      <td>12.500</td>\n",
       "      <td>33.000</td>\n",
       "      <td>28.000</td>\n",
       "      <td>24.000</td>\n",
       "      <td>11.500</td>\n",
       "      <td>6.500</td>\n",
       "      <td>19.500</td>\n",
       "      <td>46.558</td>\n",
       "      <td>38.370</td>\n",
       "      <td>55.051</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CHI</th>\n",
       "      <td>2.000</td>\n",
       "      <td>98.000</td>\n",
       "      <td>34.500</td>\n",
       "      <td>81.000</td>\n",
       "      <td>7.500</td>\n",
       "      <td>24.500</td>\n",
       "      <td>21.500</td>\n",
       "      <td>24.500</td>\n",
       "      <td>15.500</td>\n",
       "      <td>28.500</td>\n",
       "      <td>13.500</td>\n",
       "      <td>13.000</td>\n",
       "      <td>7.500</td>\n",
       "      <td>4.500</td>\n",
       "      <td>19.500</td>\n",
       "      <td>42.593</td>\n",
       "      <td>30.303</td>\n",
       "      <td>85.646</td>\n",
       "      <td>2.000</td>\n",
       "      <td>74.000</td>\n",
       "      <td>27.000</td>\n",
       "      <td>79.500</td>\n",
       "      <td>5.500</td>\n",
       "      <td>18.500</td>\n",
       "      <td>14.500</td>\n",
       "      <td>19.000</td>\n",
       "      <td>14.500</td>\n",
       "      <td>25.500</td>\n",
       "      <td>12.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>4.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>33.972</td>\n",
       "      <td>28.205</td>\n",
       "      <td>77.451</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CLE</th>\n",
       "      <td>2.000</td>\n",
       "      <td>90.000</td>\n",
       "      <td>31.000</td>\n",
       "      <td>66.500</td>\n",
       "      <td>7.000</td>\n",
       "      <td>21.000</td>\n",
       "      <td>21.000</td>\n",
       "      <td>24.000</td>\n",
       "      <td>8.000</td>\n",
       "      <td>25.000</td>\n",
       "      <td>19.500</td>\n",
       "      <td>15.000</td>\n",
       "      <td>6.500</td>\n",
       "      <td>5.000</td>\n",
       "      <td>19.000</td>\n",
       "      <td>47.368</td>\n",
       "      <td>33.409</td>\n",
       "      <td>86.933</td>\n",
       "      <td>2.000</td>\n",
       "      <td>78.000</td>\n",
       "      <td>28.500</td>\n",
       "      <td>66.500</td>\n",
       "      <td>7.000</td>\n",
       "      <td>21.500</td>\n",
       "      <td>14.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>28.500</td>\n",
       "      <td>18.500</td>\n",
       "      <td>13.500</td>\n",
       "      <td>7.000</td>\n",
       "      <td>5.000</td>\n",
       "      <td>17.500</td>\n",
       "      <td>43.617</td>\n",
       "      <td>32.717</td>\n",
       "      <td>76.190</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DAL</th>\n",
       "      <td>1.000</td>\n",
       "      <td>93.000</td>\n",
       "      <td>37.000</td>\n",
       "      <td>72.000</td>\n",
       "      <td>11.000</td>\n",
       "      <td>24.000</td>\n",
       "      <td>8.000</td>\n",
       "      <td>15.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>29.000</td>\n",
       "      <td>22.000</td>\n",
       "      <td>13.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>3.000</td>\n",
       "      <td>13.000</td>\n",
       "      <td>51.389</td>\n",
       "      <td>45.833</td>\n",
       "      <td>53.333</td>\n",
       "      <td>1.000</td>\n",
       "      <td>109.000</td>\n",
       "      <td>40.000</td>\n",
       "      <td>74.000</td>\n",
       "      <td>19.000</td>\n",
       "      <td>27.000</td>\n",
       "      <td>10.000</td>\n",
       "      <td>22.000</td>\n",
       "      <td>12.000</td>\n",
       "      <td>37.000</td>\n",
       "      <td>26.000</td>\n",
       "      <td>15.000</td>\n",
       "      <td>6.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>14.000</td>\n",
       "      <td>54.054</td>\n",
       "      <td>70.370</td>\n",
       "      <td>45.455</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       games_h   pts_h  fgm_h  fga_h  fg3m_h  fg3a_h  ftm_h  \\\n",
       "season  team opponent                                                         \n",
       "1996-97 ATL  BKN         2.000 109.000 37.000 76.000  12.000  26.500 23.000   \n",
       "             BOS         2.000 100.000 38.500 84.000   8.000  25.000 15.000   \n",
       "             CHI         2.000  98.000 34.500 81.000   7.500  24.500 21.500   \n",
       "             CLE         2.000  90.000 31.000 66.500   7.000  21.000 21.000   \n",
       "             DAL         1.000  93.000 37.000 72.000  11.000  24.000  8.000   \n",
       "\n",
       "                       fta_h  oreb_h  dreb_h  ast_h  tov_h  stl_h  blk_h  \\\n",
       "season  team opponent                                                      \n",
       "1996-97 ATL  BKN      28.000  10.500  30.500 22.000 16.000  9.000  5.000   \n",
       "             BOS      19.000  17.500  30.000 22.500 17.000 10.000  7.500   \n",
       "             CHI      24.500  15.500  28.500 13.500 13.000  7.500  4.500   \n",
       "             CLE      24.000   8.000  25.000 19.500 15.000  6.500  5.000   \n",
       "             DAL      15.000   9.000  29.000 22.000 13.000  9.000  3.000   \n",
       "\n",
       "                        pf_h  fg_pct_h  fg3_pct_h  ft_pct_h  games_a   pts_a  \\\n",
       "season  team opponent                                                          \n",
       "1996-97 ATL  BKN      19.000    48.710     45.214    82.143    2.000  93.500   \n",
       "             BOS      19.000    45.828     34.225    78.333    2.000  99.500   \n",
       "             CHI      19.500    42.593     30.303    85.646    2.000  74.000   \n",
       "             CLE      19.000    47.368     33.409    86.933    2.000  78.000   \n",
       "             DAL      13.000    51.389     45.833    53.333    1.000 109.000   \n",
       "\n",
       "                       fgm_a  fga_a  fg3m_a  fg3a_a  ftm_a  fta_a  oreb_a  \\\n",
       "season  team opponent                                                       \n",
       "1996-97 ATL  BKN      35.500 88.000   8.000  30.500 14.500 17.500  17.000   \n",
       "             BOS      38.000 81.000  10.000  26.000 13.500 24.500  12.500   \n",
       "             CHI      27.000 79.500   5.500  18.500 14.500 19.000  14.500   \n",
       "             CLE      28.500 66.500   7.000  21.500 14.000 18.000   9.000   \n",
       "             DAL      40.000 74.000  19.000  27.000 10.000 22.000  12.000   \n",
       "\n",
       "                       dreb_a  ast_a  tov_a  stl_a  blk_a   pf_a  fg_pct_a  \\\n",
       "season  team opponent                                                        \n",
       "1996-97 ATL  BKN       28.000 18.000 12.500  8.500  5.000 15.000    40.413   \n",
       "             BOS       33.000 28.000 24.000 11.500  6.500 19.500    46.558   \n",
       "             CHI       25.500 12.000 16.000  9.000  4.000 16.000    33.972   \n",
       "             CLE       28.500 18.500 13.500  7.000  5.000 17.500    43.617   \n",
       "             DAL       37.000 26.000 15.000  6.000  9.000 14.000    54.054   \n",
       "\n",
       "                       fg3_pct_a  ft_pct_a  \n",
       "season  team opponent                       \n",
       "1996-97 ATL  BKN          26.407    81.250  \n",
       "             BOS          38.370    55.051  \n",
       "             CHI          28.205    77.451  \n",
       "             CLE          32.717    76.190  \n",
       "             DAL          70.370    45.455  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice that this `DataFrame` uses a `pandas` [`MultiIndex`](https://pandas.pydata.org/pandas-docs/stable/advanced.html) structure for the 3 index columns. Here is an example of how to access a particular match up for a particular season."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "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></th>\n",
       "      <th></th>\n",
       "      <th>games_h</th>\n",
       "      <th>pts_h</th>\n",
       "      <th>fgm_h</th>\n",
       "      <th>fga_h</th>\n",
       "      <th>fg3m_h</th>\n",
       "      <th>fg3a_h</th>\n",
       "      <th>ftm_h</th>\n",
       "      <th>fta_h</th>\n",
       "      <th>oreb_h</th>\n",
       "      <th>dreb_h</th>\n",
       "      <th>ast_h</th>\n",
       "      <th>tov_h</th>\n",
       "      <th>stl_h</th>\n",
       "      <th>blk_h</th>\n",
       "      <th>pf_h</th>\n",
       "      <th>fg_pct_h</th>\n",
       "      <th>fg3_pct_h</th>\n",
       "      <th>ft_pct_h</th>\n",
       "      <th>games_a</th>\n",
       "      <th>pts_a</th>\n",
       "      <th>fgm_a</th>\n",
       "      <th>fga_a</th>\n",
       "      <th>fg3m_a</th>\n",
       "      <th>fg3a_a</th>\n",
       "      <th>ftm_a</th>\n",
       "      <th>fta_a</th>\n",
       "      <th>oreb_a</th>\n",
       "      <th>dreb_a</th>\n",
       "      <th>ast_a</th>\n",
       "      <th>tov_a</th>\n",
       "      <th>stl_a</th>\n",
       "      <th>blk_a</th>\n",
       "      <th>pf_a</th>\n",
       "      <th>fg_pct_a</th>\n",
       "      <th>fg3_pct_a</th>\n",
       "      <th>ft_pct_a</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>season</th>\n",
       "      <th>team</th>\n",
       "      <th>opponent</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">2016-17</th>\n",
       "      <th>UTA</th>\n",
       "      <th>WAS</th>\n",
       "      <td>1.000</td>\n",
       "      <td>95.000</td>\n",
       "      <td>33.000</td>\n",
       "      <td>72.000</td>\n",
       "      <td>10.000</td>\n",
       "      <td>25.000</td>\n",
       "      <td>19.000</td>\n",
       "      <td>31.000</td>\n",
       "      <td>7.000</td>\n",
       "      <td>35.000</td>\n",
       "      <td>20.000</td>\n",
       "      <td>12.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>7.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>45.833</td>\n",
       "      <td>40.000</td>\n",
       "      <td>61.290</td>\n",
       "      <td>1.000</td>\n",
       "      <td>102.000</td>\n",
       "      <td>34.000</td>\n",
       "      <td>72.000</td>\n",
       "      <td>11.000</td>\n",
       "      <td>24.000</td>\n",
       "      <td>23.000</td>\n",
       "      <td>32.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>41.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>25.000</td>\n",
       "      <td>10.000</td>\n",
       "      <td>11.000</td>\n",
       "      <td>19.000</td>\n",
       "      <td>47.222</td>\n",
       "      <td>45.833</td>\n",
       "      <td>71.875</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WAS</th>\n",
       "      <th>UTA</th>\n",
       "      <td>1.000</td>\n",
       "      <td>92.000</td>\n",
       "      <td>37.000</td>\n",
       "      <td>87.000</td>\n",
       "      <td>8.000</td>\n",
       "      <td>22.000</td>\n",
       "      <td>10.000</td>\n",
       "      <td>13.000</td>\n",
       "      <td>6.000</td>\n",
       "      <td>22.000</td>\n",
       "      <td>21.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>27.000</td>\n",
       "      <td>42.529</td>\n",
       "      <td>36.364</td>\n",
       "      <td>76.923</td>\n",
       "      <td>1.000</td>\n",
       "      <td>88.000</td>\n",
       "      <td>35.000</td>\n",
       "      <td>87.000</td>\n",
       "      <td>5.000</td>\n",
       "      <td>17.000</td>\n",
       "      <td>13.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>14.000</td>\n",
       "      <td>31.000</td>\n",
       "      <td>12.000</td>\n",
       "      <td>15.000</td>\n",
       "      <td>8.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>23.000</td>\n",
       "      <td>40.230</td>\n",
       "      <td>29.412</td>\n",
       "      <td>81.250</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       games_h  pts_h  fgm_h  fga_h  fg3m_h  fg3a_h  ftm_h  \\\n",
       "season  team opponent                                                        \n",
       "2016-17 UTA  WAS         1.000 95.000 33.000 72.000  10.000  25.000 19.000   \n",
       "        WAS  UTA         1.000 92.000 37.000 87.000   8.000  22.000 10.000   \n",
       "\n",
       "                       fta_h  oreb_h  dreb_h  ast_h  tov_h  stl_h  blk_h  \\\n",
       "season  team opponent                                                      \n",
       "2016-17 UTA  WAS      31.000   7.000  35.000 20.000 12.000  9.000  7.000   \n",
       "        WAS  UTA      13.000   6.000  22.000 21.000 16.000 16.000  1.000   \n",
       "\n",
       "                        pf_h  fg_pct_h  fg3_pct_h  ft_pct_h  games_a   pts_a  \\\n",
       "season  team opponent                                                          \n",
       "2016-17 UTA  WAS      18.000    45.833     40.000    61.290    1.000 102.000   \n",
       "        WAS  UTA      27.000    42.529     36.364    76.923    1.000  88.000   \n",
       "\n",
       "                       fgm_a  fga_a  fg3m_a  fg3a_a  ftm_a  fta_a  oreb_a  \\\n",
       "season  team opponent                                                       \n",
       "2016-17 UTA  WAS      34.000 72.000  11.000  24.000 23.000 32.000   9.000   \n",
       "        WAS  UTA      35.000 87.000   5.000  17.000 13.000 16.000  14.000   \n",
       "\n",
       "                       dreb_a  ast_a  tov_a  stl_a  blk_a   pf_a  fg_pct_a  \\\n",
       "season  team opponent                                                        \n",
       "2016-17 UTA  WAS       41.000 18.000 25.000 10.000 11.000 19.000    47.222   \n",
       "        WAS  UTA       31.000 12.000 15.000  8.000  1.000 23.000    40.230   \n",
       "\n",
       "                       fg3_pct_a  ft_pct_a  \n",
       "season  team opponent                       \n",
       "2016-17 UTA  WAS          45.833    71.875  \n",
       "        WAS  UTA          29.412    81.250  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.loc['2016-17', ['WAS', 'UTA'], ['WAS', 'UTA']]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The first row in the above example are Utah's statistics, when they played Washington during the 2016-17 regular season. The columns ending in `_h` are Utah's home statistics, and the columns ending in `_a` are their away statistics. We can see from the games columns that the Jazz and the Wizards played 1 game in Salt Lake City and 1 game in Washington, D.C. during that season.\n",
    "\n",
    "The second row is the same match up, but with Washington's statistics.\n",
    "\n",
    "Let's just double-check that we still have all the relevant regular season games captured in this `DataFrame`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "24797.0"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['games_h'].sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "24797.0"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['games_a'].sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Understanding the Number of Rows\n",
    "\n",
    "All the games are there. But, as we noticed above, extra rows were created in this `DataFrame` when we merged the home and away game data. Let's check to see how many rows have at least one null or missing value."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "528"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(df[df.isnull().any(axis=1)])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Bingo. The joined `DataFrame` had 264 extra rows compared to the original home and away `DataFrame` objects (264 = 17,554 - 17,290).\n",
    "\n",
    "And, 528 is double 264. This means that there are some match ups in particular seasons that didn't have both home and away games. The reason the 264 is doubled is that for one match up row in the table, the home game columns are null, and in the other row, the away game columsn are null.\n",
    "\n",
    "Let's take a look at the rows that have missing values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "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></th>\n",
       "      <th></th>\n",
       "      <th>games_h</th>\n",
       "      <th>pts_h</th>\n",
       "      <th>fgm_h</th>\n",
       "      <th>fga_h</th>\n",
       "      <th>fg3m_h</th>\n",
       "      <th>fg3a_h</th>\n",
       "      <th>ftm_h</th>\n",
       "      <th>fta_h</th>\n",
       "      <th>oreb_h</th>\n",
       "      <th>dreb_h</th>\n",
       "      <th>ast_h</th>\n",
       "      <th>tov_h</th>\n",
       "      <th>stl_h</th>\n",
       "      <th>blk_h</th>\n",
       "      <th>pf_h</th>\n",
       "      <th>fg_pct_h</th>\n",
       "      <th>fg3_pct_h</th>\n",
       "      <th>ft_pct_h</th>\n",
       "      <th>games_a</th>\n",
       "      <th>pts_a</th>\n",
       "      <th>fgm_a</th>\n",
       "      <th>fga_a</th>\n",
       "      <th>fg3m_a</th>\n",
       "      <th>fg3a_a</th>\n",
       "      <th>ftm_a</th>\n",
       "      <th>fta_a</th>\n",
       "      <th>oreb_a</th>\n",
       "      <th>dreb_a</th>\n",
       "      <th>ast_a</th>\n",
       "      <th>tov_a</th>\n",
       "      <th>stl_a</th>\n",
       "      <th>blk_a</th>\n",
       "      <th>pf_a</th>\n",
       "      <th>fg_pct_a</th>\n",
       "      <th>fg3_pct_a</th>\n",
       "      <th>ft_pct_a</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>season</th>\n",
       "      <th>team</th>\n",
       "      <th>opponent</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">1998-99</th>\n",
       "      <th rowspan=\"5\" valign=\"top\">ATL</th>\n",
       "      <th>DAL</th>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>1.000</td>\n",
       "      <td>85.000</td>\n",
       "      <td>32.000</td>\n",
       "      <td>86.000</td>\n",
       "      <td>4.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>17.000</td>\n",
       "      <td>26.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>31.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>12.000</td>\n",
       "      <td>5.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>17.000</td>\n",
       "      <td>37.209</td>\n",
       "      <td>25.000</td>\n",
       "      <td>65.385</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HOU</th>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>1.000</td>\n",
       "      <td>93.000</td>\n",
       "      <td>38.000</td>\n",
       "      <td>92.000</td>\n",
       "      <td>4.000</td>\n",
       "      <td>10.000</td>\n",
       "      <td>13.000</td>\n",
       "      <td>17.000</td>\n",
       "      <td>15.000</td>\n",
       "      <td>26.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>4.000</td>\n",
       "      <td>10.000</td>\n",
       "      <td>8.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>41.304</td>\n",
       "      <td>40.000</td>\n",
       "      <td>76.471</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LAC</th>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>1.000</td>\n",
       "      <td>103.000</td>\n",
       "      <td>40.000</td>\n",
       "      <td>74.000</td>\n",
       "      <td>2.000</td>\n",
       "      <td>7.000</td>\n",
       "      <td>21.000</td>\n",
       "      <td>24.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>32.000</td>\n",
       "      <td>23.000</td>\n",
       "      <td>8.000</td>\n",
       "      <td>7.000</td>\n",
       "      <td>5.000</td>\n",
       "      <td>19.000</td>\n",
       "      <td>54.054</td>\n",
       "      <td>28.571</td>\n",
       "      <td>87.500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MEM</th>\n",
       "      <td>1.000</td>\n",
       "      <td>84.000</td>\n",
       "      <td>30.000</td>\n",
       "      <td>78.000</td>\n",
       "      <td>2.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>22.000</td>\n",
       "      <td>26.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>27.000</td>\n",
       "      <td>11.000</td>\n",
       "      <td>15.000</td>\n",
       "      <td>10.000</td>\n",
       "      <td>6.000</td>\n",
       "      <td>26.000</td>\n",
       "      <td>38.462</td>\n",
       "      <td>22.222</td>\n",
       "      <td>84.615</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>PHX</th>\n",
       "      <td>1.000</td>\n",
       "      <td>93.000</td>\n",
       "      <td>31.000</td>\n",
       "      <td>74.000</td>\n",
       "      <td>9.000</td>\n",
       "      <td>24.000</td>\n",
       "      <td>22.000</td>\n",
       "      <td>24.000</td>\n",
       "      <td>15.000</td>\n",
       "      <td>37.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>19.000</td>\n",
       "      <td>7.000</td>\n",
       "      <td>6.000</td>\n",
       "      <td>21.000</td>\n",
       "      <td>41.892</td>\n",
       "      <td>37.500</td>\n",
       "      <td>91.667</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "      <td>nan</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       games_h  pts_h  fgm_h  fga_h  fg3m_h  fg3a_h  ftm_h  \\\n",
       "season  team opponent                                                        \n",
       "1998-99 ATL  DAL           nan    nan    nan    nan     nan     nan    nan   \n",
       "             HOU           nan    nan    nan    nan     nan     nan    nan   \n",
       "             LAC           nan    nan    nan    nan     nan     nan    nan   \n",
       "             MEM         1.000 84.000 30.000 78.000   2.000   9.000 22.000   \n",
       "             PHX         1.000 93.000 31.000 74.000   9.000  24.000 22.000   \n",
       "\n",
       "                       fta_h  oreb_h  dreb_h  ast_h  tov_h  stl_h  blk_h  \\\n",
       "season  team opponent                                                      \n",
       "1998-99 ATL  DAL         nan     nan     nan    nan    nan    nan    nan   \n",
       "             HOU         nan     nan     nan    nan    nan    nan    nan   \n",
       "             LAC         nan     nan     nan    nan    nan    nan    nan   \n",
       "             MEM      26.000  18.000  27.000 11.000 15.000 10.000  6.000   \n",
       "             PHX      24.000  15.000  37.000 18.000 19.000  7.000  6.000   \n",
       "\n",
       "                        pf_h  fg_pct_h  fg3_pct_h  ft_pct_h  games_a   pts_a  \\\n",
       "season  team opponent                                                          \n",
       "1998-99 ATL  DAL         nan       nan        nan       nan    1.000  85.000   \n",
       "             HOU         nan       nan        nan       nan    1.000  93.000   \n",
       "             LAC         nan       nan        nan       nan    1.000 103.000   \n",
       "             MEM      26.000    38.462     22.222    84.615      nan     nan   \n",
       "             PHX      21.000    41.892     37.500    91.667      nan     nan   \n",
       "\n",
       "                       fgm_a  fga_a  fg3m_a  fg3a_a  ftm_a  fta_a  oreb_a  \\\n",
       "season  team opponent                                                       \n",
       "1998-99 ATL  DAL      32.000 86.000   4.000  16.000 17.000 26.000  18.000   \n",
       "             HOU      38.000 92.000   4.000  10.000 13.000 17.000  15.000   \n",
       "             LAC      40.000 74.000   2.000   7.000 21.000 24.000   9.000   \n",
       "             MEM         nan    nan     nan     nan    nan    nan     nan   \n",
       "             PHX         nan    nan     nan     nan    nan    nan     nan   \n",
       "\n",
       "                       dreb_a  ast_a  tov_a  stl_a  blk_a   pf_a  fg_pct_a  \\\n",
       "season  team opponent                                                        \n",
       "1998-99 ATL  DAL       31.000 18.000 12.000  5.000  9.000 17.000    37.209   \n",
       "             HOU       26.000 18.000  4.000 10.000  8.000 18.000    41.304   \n",
       "             LAC       32.000 23.000  8.000  7.000  5.000 19.000    54.054   \n",
       "             MEM          nan    nan    nan    nan    nan    nan       nan   \n",
       "             PHX          nan    nan    nan    nan    nan    nan       nan   \n",
       "\n",
       "                       fg3_pct_a  ft_pct_a  \n",
       "season  team opponent                       \n",
       "1998-99 ATL  DAL          25.000    65.385  \n",
       "             HOU          40.000    76.471  \n",
       "             LAC          28.571    87.500  \n",
       "             MEM             nan       nan  \n",
       "             PHX             nan       nan  "
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.isnull().any(axis=1)].head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's see which seasons don't have balanced match ups between home and away games."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "season\n",
       "1998-99    168\n",
       "2011-12    360\n",
       "dtype: int64"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.isnull().any(axis=1)].groupby(['season']).size()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This makes sense. These are the seasons that experienced [lockouts](https://en.wikipedia.org/wiki/NBA_lockout) and therefore didn't have a normal schedule.\n",
    "\n",
    "In our analysis, we need to subtract the away game aggregate statistics from the home game aggregate statistics. So, we'll have to drop these rows that have null values.\n",
    "\n",
    "### Home versus Away Difference\n",
    "\n",
    "Now we are ready to do the subtract to create the home court advantage analysis."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "def matchup_home_edge(df):\n",
    "    stat_cols = [col[:-2] for col in df.columns if '_h' in col and 'games' not in col]\n",
    "    df = df.copy().dropna()\n",
    "    for col in stat_cols:\n",
    "        df[col] = df[col+'_h'] - df[col+'_a']\n",
    "    df['games'] = df['games_h'] + df['games_a']\n",
    "    df['games'] = df['games'].astype(int)\n",
    "    return df[['games']+stat_cols]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "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></th>\n",
       "      <th></th>\n",
       "      <th>games</th>\n",
       "      <th>pts</th>\n",
       "      <th>fgm</th>\n",
       "      <th>fga</th>\n",
       "      <th>fg3m</th>\n",
       "      <th>fg3a</th>\n",
       "      <th>ftm</th>\n",
       "      <th>fta</th>\n",
       "      <th>oreb</th>\n",
       "      <th>dreb</th>\n",
       "      <th>ast</th>\n",
       "      <th>tov</th>\n",
       "      <th>stl</th>\n",
       "      <th>blk</th>\n",
       "      <th>pf</th>\n",
       "      <th>fg_pct</th>\n",
       "      <th>fg3_pct</th>\n",
       "      <th>ft_pct</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>season</th>\n",
       "      <th>team</th>\n",
       "      <th>opponent</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">1996-97</th>\n",
       "      <th rowspan=\"5\" valign=\"top\">ATL</th>\n",
       "      <th>BKN</th>\n",
       "      <td>4</td>\n",
       "      <td>15.500</td>\n",
       "      <td>1.500</td>\n",
       "      <td>-12.000</td>\n",
       "      <td>4.000</td>\n",
       "      <td>-4.000</td>\n",
       "      <td>8.500</td>\n",
       "      <td>10.500</td>\n",
       "      <td>-6.500</td>\n",
       "      <td>2.500</td>\n",
       "      <td>4.000</td>\n",
       "      <td>3.500</td>\n",
       "      <td>0.500</td>\n",
       "      <td>0.000</td>\n",
       "      <td>4.000</td>\n",
       "      <td>8.297</td>\n",
       "      <td>18.807</td>\n",
       "      <td>0.893</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BOS</th>\n",
       "      <td>4</td>\n",
       "      <td>0.500</td>\n",
       "      <td>0.500</td>\n",
       "      <td>3.000</td>\n",
       "      <td>-2.000</td>\n",
       "      <td>-1.000</td>\n",
       "      <td>1.500</td>\n",
       "      <td>-5.500</td>\n",
       "      <td>5.000</td>\n",
       "      <td>-3.000</td>\n",
       "      <td>-5.500</td>\n",
       "      <td>-7.000</td>\n",
       "      <td>-1.500</td>\n",
       "      <td>1.000</td>\n",
       "      <td>-0.500</td>\n",
       "      <td>-0.730</td>\n",
       "      <td>-4.146</td>\n",
       "      <td>23.283</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CHI</th>\n",
       "      <td>4</td>\n",
       "      <td>24.000</td>\n",
       "      <td>7.500</td>\n",
       "      <td>1.500</td>\n",
       "      <td>2.000</td>\n",
       "      <td>6.000</td>\n",
       "      <td>7.000</td>\n",
       "      <td>5.500</td>\n",
       "      <td>1.000</td>\n",
       "      <td>3.000</td>\n",
       "      <td>1.500</td>\n",
       "      <td>-3.000</td>\n",
       "      <td>-1.500</td>\n",
       "      <td>0.500</td>\n",
       "      <td>3.500</td>\n",
       "      <td>8.621</td>\n",
       "      <td>2.098</td>\n",
       "      <td>8.195</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CLE</th>\n",
       "      <td>4</td>\n",
       "      <td>12.000</td>\n",
       "      <td>2.500</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>-0.500</td>\n",
       "      <td>7.000</td>\n",
       "      <td>6.000</td>\n",
       "      <td>-1.000</td>\n",
       "      <td>-3.500</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.500</td>\n",
       "      <td>-0.500</td>\n",
       "      <td>0.000</td>\n",
       "      <td>1.500</td>\n",
       "      <td>3.752</td>\n",
       "      <td>0.692</td>\n",
       "      <td>10.742</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DAL</th>\n",
       "      <td>2</td>\n",
       "      <td>-16.000</td>\n",
       "      <td>-3.000</td>\n",
       "      <td>-2.000</td>\n",
       "      <td>-8.000</td>\n",
       "      <td>-3.000</td>\n",
       "      <td>-2.000</td>\n",
       "      <td>-7.000</td>\n",
       "      <td>-3.000</td>\n",
       "      <td>-8.000</td>\n",
       "      <td>-4.000</td>\n",
       "      <td>-2.000</td>\n",
       "      <td>3.000</td>\n",
       "      <td>-6.000</td>\n",
       "      <td>-1.000</td>\n",
       "      <td>-2.665</td>\n",
       "      <td>-24.537</td>\n",
       "      <td>7.879</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       games     pts    fgm     fga   fg3m   fg3a    ftm  \\\n",
       "season  team opponent                                                      \n",
       "1996-97 ATL  BKN           4  15.500  1.500 -12.000  4.000 -4.000  8.500   \n",
       "             BOS           4   0.500  0.500   3.000 -2.000 -1.000  1.500   \n",
       "             CHI           4  24.000  7.500   1.500  2.000  6.000  7.000   \n",
       "             CLE           4  12.000  2.500   0.000  0.000 -0.500  7.000   \n",
       "             DAL           2 -16.000 -3.000  -2.000 -8.000 -3.000 -2.000   \n",
       "\n",
       "                         fta   oreb   dreb    ast    tov    stl    blk     pf  \\\n",
       "season  team opponent                                                           \n",
       "1996-97 ATL  BKN      10.500 -6.500  2.500  4.000  3.500  0.500  0.000  4.000   \n",
       "             BOS      -5.500  5.000 -3.000 -5.500 -7.000 -1.500  1.000 -0.500   \n",
       "             CHI       5.500  1.000  3.000  1.500 -3.000 -1.500  0.500  3.500   \n",
       "             CLE       6.000 -1.000 -3.500  1.000  1.500 -0.500  0.000  1.500   \n",
       "             DAL      -7.000 -3.000 -8.000 -4.000 -2.000  3.000 -6.000 -1.000   \n",
       "\n",
       "                       fg_pct  fg3_pct  ft_pct  \n",
       "season  team opponent                           \n",
       "1996-97 ATL  BKN        8.297   18.807   0.893  \n",
       "             BOS       -0.730   -4.146  23.283  \n",
       "             CHI        8.621    2.098   8.195  \n",
       "             CLE        3.752    0.692  10.742  \n",
       "             DAL       -2.665  -24.537   7.879  "
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hca = matchup_home_edge(df)\n",
    "hca.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice how we differenced the home and away statistics and returned a simpler `DataFrame`. The original home and away `DataFrame` objects are unchanged, of course.\n",
    "\n",
    "#### Home Court Impact on Box Score Statistics\n",
    "\n",
    "Now let's take a look at the impact of home court on box score statistics.\n",
    "\n",
    "We'll separate out the statistics by type, either scoring or other."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "stats_cols = [col for col in hca.columns if col not in ['games']]\n",
    "scoring_cols = [col for col in stats_cols if any(s in col for s in ['pts', 'fg', 'ft'])]\n",
    "other_cols = [col for col in stats_cols if col not in scoring_cols]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, let's see how many games typically occurred between a particular pair of teams in each season."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count   17026.000\n",
       "mean        2.882\n",
       "std         0.927\n",
       "min         2.000\n",
       "25%         2.000\n",
       "50%         3.000\n",
       "75%         4.000\n",
       "max         5.000\n",
       "Name: games, dtype: float64"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hca['games'].describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We see that each match up in our data set occurred between 2 and 5 times per season, with a typical value of 3 games. We know from the [rules of the NBA season](https://www.nbastuffer.com/analytics101/how-the-nba-schedule-is-made/) that teams in the same Division play more games, so this distribution makes sense.\n",
    "\n",
    "Now, let's look at the scoring and other statistics."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "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>pts</th>\n",
       "      <th>fgm</th>\n",
       "      <th>fga</th>\n",
       "      <th>fg3m</th>\n",
       "      <th>fg3a</th>\n",
       "      <th>ftm</th>\n",
       "      <th>fta</th>\n",
       "      <th>fg_pct</th>\n",
       "      <th>fg3_pct</th>\n",
       "      <th>ft_pct</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>3.099</td>\n",
       "      <td>1.071</td>\n",
       "      <td>0.166</td>\n",
       "      <td>0.154</td>\n",
       "      <td>0.001</td>\n",
       "      <td>0.803</td>\n",
       "      <td>0.985</td>\n",
       "      <td>1.225</td>\n",
       "      <td>0.883</td>\n",
       "      <td>0.279</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>12.508</td>\n",
       "      <td>5.483</td>\n",
       "      <td>7.373</td>\n",
       "      <td>3.235</td>\n",
       "      <td>5.374</td>\n",
       "      <td>7.151</td>\n",
       "      <td>8.752</td>\n",
       "      <td>6.618</td>\n",
       "      <td>15.459</td>\n",
       "      <td>12.067</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-50.000</td>\n",
       "      <td>-21.000</td>\n",
       "      <td>-33.000</td>\n",
       "      <td>-18.000</td>\n",
       "      <td>-26.000</td>\n",
       "      <td>-33.000</td>\n",
       "      <td>-41.000</td>\n",
       "      <td>-28.482</td>\n",
       "      <td>-80.000</td>\n",
       "      <td>-56.618</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-5.000</td>\n",
       "      <td>-2.500</td>\n",
       "      <td>-4.696</td>\n",
       "      <td>-2.000</td>\n",
       "      <td>-3.500</td>\n",
       "      <td>-4.000</td>\n",
       "      <td>-4.788</td>\n",
       "      <td>-3.092</td>\n",
       "      <td>-8.772</td>\n",
       "      <td>-7.585</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.189</td>\n",
       "      <td>0.739</td>\n",
       "      <td>0.274</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>11.000</td>\n",
       "      <td>4.500</td>\n",
       "      <td>5.000</td>\n",
       "      <td>2.000</td>\n",
       "      <td>3.500</td>\n",
       "      <td>5.500</td>\n",
       "      <td>6.500</td>\n",
       "      <td>5.467</td>\n",
       "      <td>10.464</td>\n",
       "      <td>8.036</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>55.000</td>\n",
       "      <td>23.000</td>\n",
       "      <td>32.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>24.000</td>\n",
       "      <td>29.000</td>\n",
       "      <td>44.000</td>\n",
       "      <td>29.252</td>\n",
       "      <td>72.143</td>\n",
       "      <td>52.941</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            pts       fgm       fga      fg3m      fg3a       ftm       fta  \\\n",
       "count 17026.000 17026.000 17026.000 17026.000 17026.000 17026.000 17026.000   \n",
       "mean      3.099     1.071     0.166     0.154     0.001     0.803     0.985   \n",
       "std      12.508     5.483     7.373     3.235     5.374     7.151     8.752   \n",
       "min     -50.000   -21.000   -33.000   -18.000   -26.000   -33.000   -41.000   \n",
       "25%      -5.000    -2.500    -4.696    -2.000    -3.500    -4.000    -4.788   \n",
       "50%       3.000     1.000     0.000     0.000     0.000     1.000     1.000   \n",
       "75%      11.000     4.500     5.000     2.000     3.500     5.500     6.500   \n",
       "max      55.000    23.000    32.000    16.000    24.000    29.000    44.000   \n",
       "\n",
       "         fg_pct   fg3_pct    ft_pct  \n",
       "count 17026.000 17026.000 17026.000  \n",
       "mean      1.225     0.883     0.279  \n",
       "std       6.618    15.459    12.067  \n",
       "min     -28.482   -80.000   -56.618  \n",
       "25%      -3.092    -8.772    -7.585  \n",
       "50%       1.189     0.739     0.274  \n",
       "75%       5.467    10.464     8.036  \n",
       "max      29.252    72.143    52.941  "
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hca[scoring_cols].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "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>oreb</th>\n",
       "      <th>dreb</th>\n",
       "      <th>ast</th>\n",
       "      <th>tov</th>\n",
       "      <th>stl</th>\n",
       "      <th>blk</th>\n",
       "      <th>pf</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "      <td>17026.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>0.374</td>\n",
       "      <td>1.057</td>\n",
       "      <td>1.666</td>\n",
       "      <td>-0.373</td>\n",
       "      <td>0.119</td>\n",
       "      <td>0.639</td>\n",
       "      <td>-0.532</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>4.653</td>\n",
       "      <td>5.825</td>\n",
       "      <td>5.680</td>\n",
       "      <td>4.501</td>\n",
       "      <td>3.418</td>\n",
       "      <td>3.025</td>\n",
       "      <td>4.920</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-23.000</td>\n",
       "      <td>-26.000</td>\n",
       "      <td>-20.000</td>\n",
       "      <td>-22.000</td>\n",
       "      <td>-14.500</td>\n",
       "      <td>-12.085</td>\n",
       "      <td>-20.500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-2.613</td>\n",
       "      <td>-2.802</td>\n",
       "      <td>-2.000</td>\n",
       "      <td>-3.083</td>\n",
       "      <td>-2.000</td>\n",
       "      <td>-1.000</td>\n",
       "      <td>-4.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.500</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.513</td>\n",
       "      <td>-0.415</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.500</td>\n",
       "      <td>-0.500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>3.293</td>\n",
       "      <td>5.000</td>\n",
       "      <td>5.308</td>\n",
       "      <td>2.500</td>\n",
       "      <td>2.130</td>\n",
       "      <td>2.500</td>\n",
       "      <td>2.826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>29.000</td>\n",
       "      <td>26.000</td>\n",
       "      <td>31.000</td>\n",
       "      <td>18.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>16.000</td>\n",
       "      <td>20.943</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           oreb      dreb       ast       tov       stl       blk        pf\n",
       "count 17026.000 17026.000 17026.000 17026.000 17026.000 17026.000 17026.000\n",
       "mean      0.374     1.057     1.666    -0.373     0.119     0.639    -0.532\n",
       "std       4.653     5.825     5.680     4.501     3.418     3.025     4.920\n",
       "min     -23.000   -26.000   -20.000   -22.000   -14.500   -12.085   -20.500\n",
       "25%      -2.613    -2.802    -2.000    -3.083    -2.000    -1.000    -4.000\n",
       "50%       0.500     1.000     1.513    -0.415     0.000     0.500    -0.500\n",
       "75%       3.293     5.000     5.308     2.500     2.130     2.500     2.826\n",
       "max      29.000    26.000    31.000    18.000    16.000    16.000    20.943"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hca[other_cols].describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Scoring\n",
    "\n",
    "If you look at the `pts` column, you will see that the same 3.1 point home court advantage emerges from our aggregated data.\n",
    "\n",
    "Looking at that same column, you will also see that there is a lot of variation around that average. Remember, the data we're looking at are match ups within a particular season. The point differentials between the same two teams is not very consistent, even within the same season.\n",
    "\n",
    "Let's plot the point differential."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_bins(s):\n",
    "    mins = s.min()\n",
    "    maxs = s.max()\n",
    "    return np.arange(2*(round(mins/2)-1), 2*(round(maxs/2)+2), 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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5ptvePvtt+natSt/+9vfiI+PJykpiV//+tfUrl0bgJycHB599FHGjRvHxo0b+eUvf8mkSZPIysriT3/6E4MGDeLbb7/lvvvuY9y4caxYsYImTZqQk+PddfLgwYM899xz7N+/H4Cf/OQntGzZsvJ/mCGmQk0kSuTn5/Puu++SkJDALbfc4necqHbr4H5+R4hqbdq04fLLL2fJkiWsXLmSHj16+B2pUqxZs4axY8eSn5/PV199xbPPPnvSOgkJCfzxj39k1apVWGvp0aMHs2bN4uWXX6Zhw4akp6cft35RURH79+/n+eefJzY2lp///Ods2uRNWVq3bl2eeeYZ9u/fz5gxY3j99ddJTEzk97//PatWraJbt27H9lNSpG3YsIGPPvqIl19++aRsubm5PP/882RnZ/Pggw9y+eWX88ILL/DKK6/QuHFjPvjgA8aPH0/v3r2PbbNz507+/Oc/06RJEx566CFc1+W2227jq6++4s477+T111+nb9++3HjjjSxdupQDBw4cK9SSk5OpV68e33//PStWrKBx48Z8+eWXuK5L3759jx1j69atfPbZZ7z++uvk5uYeu9L9vffeo2vXrlxzzTVs376dP/7xj7z66qtn+uPzjQo1kSiRnp7Orl27GDVqFI0bN/Y7TlSrdUJrg5ydooXpJz13e8fWLFmyhLdefZnu77wbFa1qXbp04YknngDg22+/5aGHHmLChAnHrdOmTRsAmjRpQl5eHgCPP/44b7zxBllZWfTs2fO49WNjY4mPj+epp56iVq1a/PDDDxQWFgJw3nnnAfDdd9+RnZ3NY489BsDhw4dLvYdlRkYG7733Hs8++ywpKSknLe/cuTOxsbE0aNCAunXrkpWVRe3atY/9vuncuTPjxo07rlBLTk6mSZMmJ72mErfeeivvvvsujz76KI0aNaJdu3bHLe/bty/Lly9n48aN3HzzzXz66ads2LCBX/ziF6xYsQLwCjXHcYiNjaVOnTq0aNHi2PNr1qxh3rx5gNeKGYk0Rk0kChw5coTx48dTo0YNbr75Zr/jRL0Dh3M5cDjX7xhRrVXTJlzR3sHdsYtFixb5HafSNWjQoNTnTyxI8/LyWLBgAY8//jh//vOfj/1BVmLLli0sXryYJ598kjFjxlBcXHzsIozYWO8jvlmzZjRp0oTnn3+el156idGjR9O+ffvjjjN79mw++ugjXnzxxTJvEP7ll18C3hizw4cP07BhQw4fPszevXsBWLduHeeee+5pX3tMTMyxjHPmzGHYsGG8+OKLXHjhhUydOvW4dfv06cPcuXOpXbs2PXv2ZPHixeTn5x93/s4//3y++OILioqKyM3N5ZtvvgG8QvX666/npZde4sknn2Tw4MGnzRaO1KImEgU+fOEP7N27l5v69KT+xpUU+R0oyv17/mIA7hkxxOck0e3ugX1Ysmkz48aN47LLLiM+PrI/skq6PmNjY8nNzeXBBx+kZs2ap9ymRo0aJCUlcc8995CUlES3bt2OG3/avHlzatWqxf33309CQgINGzZkz549x+0jJSWFG264gbFjx1JYWEjTpk3p37//seWFhYW8+uqrNGnS5FiLX+fOnbn77ruP209WVhaPPPIIhw4dYuzYscTFxfGzn/2MJ554gpiYGJKSknjsscfYuhlNZGYAACAASURBVHXrKV9T/fr1yc/P5+9//zt9+/bl2WefpVatWiQkJPDoo48et27jxo3Jy8uja9euJCUlERcXR69ex99nt3Xr1vTv358HHniARo0aHWsNvO2223juueeYOnUqhw8fPuUFDuEsJpoufw5SfGKzbmpqaqlNvVI5dH5D53TnNjs7m9tvvpn4uDjeGXMvdRJP/YtfjpeSnEJ2TnaFthk3fTagQq08zuT8Bntl2mymrFrLmDFjuOaaayoxWeSryt+76enpxwbuVxdVeX4DrZil9u+r61Mkwr377rsczsvjtn69VaRJ1Lm932XUqlWLd955h8OHD/sdR6TKqVATiWA7duxgypQpNKufzFXdLvE7jsj/b+/Ow6OqzgeOfycBkhBCEkEgILJviiCCArKrKCpFCvLqz4qi4NqC1WqLC1atihuoiFarIFah+lZFKyCKgMheVHYQCgKyL0KCIQvZfn+cGxwgC4QkdxLez/PMk8zd5r1n7sx955xz7yl28VWiERESExP54IMP/A7ntNWrV6/TqjYtlFiiZkwZ9vrrr5OZmcngS7tSMTzc73CMKREDBgygWrVqqKrvd/A3prRZomZMGbV06VLmz59Py5Yt6XpOM7/DMabEREVFMWTIEA4fPsxbb73ldzjGlCpL1Iwpg7Kysnj11VcJBAL8/ve/Lxf3mCpLurduSffWLf0O47Ry2WWX0axZM2bNmsXq1av9DseYUlO2r3U2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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10caf60b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(10, 5))\n",
    "# Plot points distribution\n",
    "data = hca['pts']\n",
    "ax = sns.distplot(data, bins=get_bins(data), kde=False, fit=stats.norm, ax=ax)\n",
    "ax.set_xlabel('Avg. Home Points - Avg. Away Points, by Matchup and Season')\n",
    "ax.set_ylabel('Frequency')\n",
    "ax.set_title('Home Court Impact on Points Scored')\n",
    "ax.text(x=35, y=0.008, s='Bins are 2 points wide')\n",
    "ax.axvline(x=data.mean(), linestyle='--', alpha=0.5, color='black')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The plot shows that a normal distribution fits the aggregated data relatively well. Nothing really stands out from the plot. Even so, the average impact of 3.1 points looks relatively small compared to the noisiness of the data.\n",
    "\n",
    "#### Better Shooting Isn't the Whole Story\n",
    "\n",
    "It's hard to pinpoint exactly how home court advantage translates into superior scoring. Field goal percentage goes up by about 1.2% on average, and three-point shooting percentage goes up by about 0.9% on average.\n",
    "\n",
    "These modest improvements in scoring percentage are pointing in the right direction, but aren't sufficient to clearly explain the magnitude of NBA home court advantage.\n",
    "\n",
    "#### Other Statistics\n",
    "\n",
    "If you look at the other statistics, you will see that rebounding improves, _and_ assists improve, _and_ turnovers improve, _and_ steals improve, _and_ blocks improve, _and_ personal fouls called against the team improve. Of course, you wouldn't expect statistics like blocks and personal fouls to directly benefit scoring.\n",
    "\n",
    "The overall message is: teams really do play better at home, and the benefit shows up in a lot of statistics. We will have to dig deeper in future analysis to try to understand better what is going on.\n",
    "\n",
    "#### Box Score Variation by Team\n",
    "\n",
    "To conclude, let's look at how these same statistics vary by team, aggregated over the course of the 21 complete regular seasons."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "cols = ['pts', 'fg_pct', 'fg3_pct', 'ft_pct',] + other_cols"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "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>pts</th>\n",
       "      <th>fg_pct</th>\n",
       "      <th>fg3_pct</th>\n",
       "      <th>ft_pct</th>\n",
       "      <th>oreb</th>\n",
       "      <th>dreb</th>\n",
       "      <th>ast</th>\n",
       "      <th>tov</th>\n",
       "      <th>stl</th>\n",
       "      <th>blk</th>\n",
       "      <th>pf</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>team</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>DEN</th>\n",
       "      <td>4.579</td>\n",
       "      <td>0.992</td>\n",
       "      <td>1.410</td>\n",
       "      <td>-0.086</td>\n",
       "      <td>0.199</td>\n",
       "      <td>1.757</td>\n",
       "      <td>3.591</td>\n",
       "      <td>-0.775</td>\n",
       "      <td>-0.114</td>\n",
       "      <td>1.839</td>\n",
       "      <td>0.169</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ATL</th>\n",
       "      <td>4.186</td>\n",
       "      <td>1.738</td>\n",
       "      <td>0.709</td>\n",
       "      <td>-0.024</td>\n",
       "      <td>0.502</td>\n",
       "      <td>0.786</td>\n",
       "      <td>1.946</td>\n",
       "      <td>-0.573</td>\n",
       "      <td>-0.066</td>\n",
       "      <td>-0.248</td>\n",
       "      <td>-0.134</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WAS</th>\n",
       "      <td>4.140</td>\n",
       "      <td>1.681</td>\n",
       "      <td>1.037</td>\n",
       "      <td>1.774</td>\n",
       "      <td>0.296</td>\n",
       "      <td>0.498</td>\n",
       "      <td>1.411</td>\n",
       "      <td>-0.436</td>\n",
       "      <td>0.376</td>\n",
       "      <td>0.363</td>\n",
       "      <td>-0.669</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SAC</th>\n",
       "      <td>4.138</td>\n",
       "      <td>1.372</td>\n",
       "      <td>1.734</td>\n",
       "      <td>-0.042</td>\n",
       "      <td>0.532</td>\n",
       "      <td>1.070</td>\n",
       "      <td>0.226</td>\n",
       "      <td>-0.245</td>\n",
       "      <td>-0.182</td>\n",
       "      <td>0.312</td>\n",
       "      <td>-0.269</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GSW</th>\n",
       "      <td>4.066</td>\n",
       "      <td>1.959</td>\n",
       "      <td>0.966</td>\n",
       "      <td>-0.138</td>\n",
       "      <td>0.787</td>\n",
       "      <td>1.279</td>\n",
       "      <td>3.084</td>\n",
       "      <td>-0.202</td>\n",
       "      <td>0.143</td>\n",
       "      <td>0.441</td>\n",
       "      <td>-0.482</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>POR</th>\n",
       "      <td>4.039</td>\n",
       "      <td>1.505</td>\n",
       "      <td>0.987</td>\n",
       "      <td>0.097</td>\n",
       "      <td>0.590</td>\n",
       "      <td>0.708</td>\n",
       "      <td>2.206</td>\n",
       "      <td>-0.418</td>\n",
       "      <td>0.218</td>\n",
       "      <td>-0.290</td>\n",
       "      <td>-0.770</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DAL</th>\n",
       "      <td>3.724</td>\n",
       "      <td>1.120</td>\n",
       "      <td>1.302</td>\n",
       "      <td>0.179</td>\n",
       "      <td>0.986</td>\n",
       "      <td>1.367</td>\n",
       "      <td>0.669</td>\n",
       "      <td>-0.125</td>\n",
       "      <td>0.341</td>\n",
       "      <td>0.641</td>\n",
       "      <td>-0.291</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MIA</th>\n",
       "      <td>3.723</td>\n",
       "      <td>1.732</td>\n",
       "      <td>0.311</td>\n",
       "      <td>0.657</td>\n",
       "      <td>-0.218</td>\n",
       "      <td>0.195</td>\n",
       "      <td>-0.720</td>\n",
       "      <td>-0.673</td>\n",
       "      <td>0.439</td>\n",
       "      <td>0.285</td>\n",
       "      <td>-0.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>UTA</th>\n",
       "      <td>3.516</td>\n",
       "      <td>1.658</td>\n",
       "      <td>2.340</td>\n",
       "      <td>0.138</td>\n",
       "      <td>-0.404</td>\n",
       "      <td>1.859</td>\n",
       "      <td>0.364</td>\n",
       "      <td>-0.846</td>\n",
       "      <td>0.101</td>\n",
       "      <td>1.130</td>\n",
       "      <td>-0.605</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CLE</th>\n",
       "      <td>3.513</td>\n",
       "      <td>1.337</td>\n",
       "      <td>2.518</td>\n",
       "      <td>1.683</td>\n",
       "      <td>0.396</td>\n",
       "      <td>1.378</td>\n",
       "      <td>3.727</td>\n",
       "      <td>-0.307</td>\n",
       "      <td>-0.149</td>\n",
       "      <td>1.323</td>\n",
       "      <td>-1.041</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ORL</th>\n",
       "      <td>3.487</td>\n",
       "      <td>1.425</td>\n",
       "      <td>-0.033</td>\n",
       "      <td>0.107</td>\n",
       "      <td>0.679</td>\n",
       "      <td>0.842</td>\n",
       "      <td>0.436</td>\n",
       "      <td>0.113</td>\n",
       "      <td>0.208</td>\n",
       "      <td>0.323</td>\n",
       "      <td>-0.610</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LAL</th>\n",
       "      <td>3.430</td>\n",
       "      <td>1.059</td>\n",
       "      <td>-0.213</td>\n",
       "      <td>-0.470</td>\n",
       "      <td>0.713</td>\n",
       "      <td>1.477</td>\n",
       "      <td>2.883</td>\n",
       "      <td>0.190</td>\n",
       "      <td>0.109</td>\n",
       "      <td>0.846</td>\n",
       "      <td>0.002</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SAS</th>\n",
       "      <td>3.416</td>\n",
       "      <td>1.814</td>\n",
       "      <td>1.427</td>\n",
       "      <td>-0.810</td>\n",
       "      <td>0.016</td>\n",
       "      <td>1.271</td>\n",
       "      <td>1.815</td>\n",
       "      <td>0.093</td>\n",
       "      <td>0.374</td>\n",
       "      <td>1.114</td>\n",
       "      <td>-0.613</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IND</th>\n",
       "      <td>3.357</td>\n",
       "      <td>1.083</td>\n",
       "      <td>1.584</td>\n",
       "      <td>0.687</td>\n",
       "      <td>0.839</td>\n",
       "      <td>1.648</td>\n",
       "      <td>1.062</td>\n",
       "      <td>-1.061</td>\n",
       "      <td>0.049</td>\n",
       "      <td>1.018</td>\n",
       "      <td>-1.107</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CHA</th>\n",
       "      <td>3.268</td>\n",
       "      <td>0.681</td>\n",
       "      <td>1.074</td>\n",
       "      <td>0.196</td>\n",
       "      <td>0.436</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.697</td>\n",
       "      <td>-0.850</td>\n",
       "      <td>-0.130</td>\n",
       "      <td>1.604</td>\n",
       "      <td>-0.014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>PHX</th>\n",
       "      <td>3.255</td>\n",
       "      <td>1.215</td>\n",
       "      <td>1.239</td>\n",
       "      <td>0.999</td>\n",
       "      <td>0.231</td>\n",
       "      <td>1.074</td>\n",
       "      <td>0.345</td>\n",
       "      <td>-0.475</td>\n",
       "      <td>-0.072</td>\n",
       "      <td>0.701</td>\n",
       "      <td>-0.614</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MIL</th>\n",
       "      <td>3.194</td>\n",
       "      <td>1.451</td>\n",
       "      <td>1.261</td>\n",
       "      <td>0.547</td>\n",
       "      <td>0.465</td>\n",
       "      <td>0.350</td>\n",
       "      <td>2.293</td>\n",
       "      <td>-0.406</td>\n",
       "      <td>0.140</td>\n",
       "      <td>0.078</td>\n",
       "      <td>-0.826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NOP</th>\n",
       "      <td>3.111</td>\n",
       "      <td>1.630</td>\n",
       "      <td>0.815</td>\n",
       "      <td>-0.402</td>\n",
       "      <td>0.348</td>\n",
       "      <td>0.650</td>\n",
       "      <td>3.207</td>\n",
       "      <td>-0.436</td>\n",
       "      <td>0.501</td>\n",
       "      <td>0.856</td>\n",
       "      <td>-0.669</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DET</th>\n",
       "      <td>3.065</td>\n",
       "      <td>1.138</td>\n",
       "      <td>0.561</td>\n",
       "      <td>0.814</td>\n",
       "      <td>0.211</td>\n",
       "      <td>1.131</td>\n",
       "      <td>1.867</td>\n",
       "      <td>0.076</td>\n",
       "      <td>0.011</td>\n",
       "      <td>0.766</td>\n",
       "      <td>-0.262</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NYK</th>\n",
       "      <td>2.928</td>\n",
       "      <td>1.218</td>\n",
       "      <td>-0.045</td>\n",
       "      <td>0.583</td>\n",
       "      <td>0.467</td>\n",
       "      <td>0.426</td>\n",
       "      <td>-0.047</td>\n",
       "      <td>-0.329</td>\n",
       "      <td>0.153</td>\n",
       "      <td>-0.324</td>\n",
       "      <td>-0.606</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MEM</th>\n",
       "      <td>2.863</td>\n",
       "      <td>1.240</td>\n",
       "      <td>1.068</td>\n",
       "      <td>0.470</td>\n",
       "      <td>0.367</td>\n",
       "      <td>1.322</td>\n",
       "      <td>0.604</td>\n",
       "      <td>-0.261</td>\n",
       "      <td>-0.051</td>\n",
       "      <td>1.133</td>\n",
       "      <td>-0.514</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BKN</th>\n",
       "      <td>2.755</td>\n",
       "      <td>0.861</td>\n",
       "      <td>1.134</td>\n",
       "      <td>0.969</td>\n",
       "      <td>0.977</td>\n",
       "      <td>1.077</td>\n",
       "      <td>1.522</td>\n",
       "      <td>0.247</td>\n",
       "      <td>0.005</td>\n",
       "      <td>0.469</td>\n",
       "      <td>-0.163</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OKC</th>\n",
       "      <td>2.625</td>\n",
       "      <td>1.389</td>\n",
       "      <td>1.332</td>\n",
       "      <td>0.717</td>\n",
       "      <td>-0.230</td>\n",
       "      <td>0.571</td>\n",
       "      <td>1.424</td>\n",
       "      <td>-0.221</td>\n",
       "      <td>0.666</td>\n",
       "      <td>0.620</td>\n",
       "      <td>-0.363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TOR</th>\n",
       "      <td>2.367</td>\n",
       "      <td>0.999</td>\n",
       "      <td>1.353</td>\n",
       "      <td>1.009</td>\n",
       "      <td>0.388</td>\n",
       "      <td>0.781</td>\n",
       "      <td>1.962</td>\n",
       "      <td>-0.496</td>\n",
       "      <td>-0.030</td>\n",
       "      <td>1.062</td>\n",
       "      <td>-0.826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LAC</th>\n",
       "      <td>2.071</td>\n",
       "      <td>1.307</td>\n",
       "      <td>-0.532</td>\n",
       "      <td>0.261</td>\n",
       "      <td>-0.235</td>\n",
       "      <td>0.840</td>\n",
       "      <td>1.886</td>\n",
       "      <td>-0.010</td>\n",
       "      <td>0.171</td>\n",
       "      <td>1.016</td>\n",
       "      <td>-0.265</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>PHI</th>\n",
       "      <td>1.938</td>\n",
       "      <td>0.956</td>\n",
       "      <td>0.707</td>\n",
       "      <td>0.630</td>\n",
       "      <td>0.088</td>\n",
       "      <td>0.995</td>\n",
       "      <td>2.240</td>\n",
       "      <td>-0.226</td>\n",
       "      <td>0.156</td>\n",
       "      <td>-0.069</td>\n",
       "      <td>-0.241</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HOU</th>\n",
       "      <td>1.853</td>\n",
       "      <td>0.607</td>\n",
       "      <td>-0.689</td>\n",
       "      <td>-1.130</td>\n",
       "      <td>0.615</td>\n",
       "      <td>1.486</td>\n",
       "      <td>1.536</td>\n",
       "      <td>-0.660</td>\n",
       "      <td>-0.017</td>\n",
       "      <td>0.628</td>\n",
       "      <td>-1.100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MIN</th>\n",
       "      <td>1.556</td>\n",
       "      <td>0.700</td>\n",
       "      <td>-0.289</td>\n",
       "      <td>-1.344</td>\n",
       "      <td>-0.257</td>\n",
       "      <td>1.430</td>\n",
       "      <td>2.112</td>\n",
       "      <td>-0.997</td>\n",
       "      <td>-0.173</td>\n",
       "      <td>0.525</td>\n",
       "      <td>-0.498</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CHI</th>\n",
       "      <td>1.545</td>\n",
       "      <td>-0.094</td>\n",
       "      <td>0.647</td>\n",
       "      <td>0.194</td>\n",
       "      <td>0.983</td>\n",
       "      <td>1.456</td>\n",
       "      <td>2.462</td>\n",
       "      <td>-0.909</td>\n",
       "      <td>0.227</td>\n",
       "      <td>0.991</td>\n",
       "      <td>-0.392</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BOS</th>\n",
       "      <td>1.314</td>\n",
       "      <td>0.789</td>\n",
       "      <td>0.855</td>\n",
       "      <td>0.059</td>\n",
       "      <td>0.463</td>\n",
       "      <td>0.964</td>\n",
       "      <td>2.168</td>\n",
       "      <td>-0.157</td>\n",
       "      <td>0.084</td>\n",
       "      <td>0.367</td>\n",
       "      <td>-1.194</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       pts  fg_pct  fg3_pct  ft_pct   oreb  dreb    ast    tov    stl    blk  \\\n",
       "team                                                                           \n",
       "DEN  4.579   0.992    1.410  -0.086  0.199 1.757  3.591 -0.775 -0.114  1.839   \n",
       "ATL  4.186   1.738    0.709  -0.024  0.502 0.786  1.946 -0.573 -0.066 -0.248   \n",
       "WAS  4.140   1.681    1.037   1.774  0.296 0.498  1.411 -0.436  0.376  0.363   \n",
       "SAC  4.138   1.372    1.734  -0.042  0.532 1.070  0.226 -0.245 -0.182  0.312   \n",
       "GSW  4.066   1.959    0.966  -0.138  0.787 1.279  3.084 -0.202  0.143  0.441   \n",
       "POR  4.039   1.505    0.987   0.097  0.590 0.708  2.206 -0.418  0.218 -0.290   \n",
       "DAL  3.724   1.120    1.302   0.179  0.986 1.367  0.669 -0.125  0.341  0.641   \n",
       "MIA  3.723   1.732    0.311   0.657 -0.218 0.195 -0.720 -0.673  0.439  0.285   \n",
       "UTA  3.516   1.658    2.340   0.138 -0.404 1.859  0.364 -0.846  0.101  1.130   \n",
       "CLE  3.513   1.337    2.518   1.683  0.396 1.378  3.727 -0.307 -0.149  1.323   \n",
       "ORL  3.487   1.425   -0.033   0.107  0.679 0.842  0.436  0.113  0.208  0.323   \n",
       "LAL  3.430   1.059   -0.213  -0.470  0.713 1.477  2.883  0.190  0.109  0.846   \n",
       "SAS  3.416   1.814    1.427  -0.810  0.016 1.271  1.815  0.093  0.374  1.114   \n",
       "IND  3.357   1.083    1.584   0.687  0.839 1.648  1.062 -1.061  0.049  1.018   \n",
       "CHA  3.268   0.681    1.074   0.196  0.436 1.000  1.697 -0.850 -0.130  1.604   \n",
       "PHX  3.255   1.215    1.239   0.999  0.231 1.074  0.345 -0.475 -0.072  0.701   \n",
       "MIL  3.194   1.451    1.261   0.547  0.465 0.350  2.293 -0.406  0.140  0.078   \n",
       "NOP  3.111   1.630    0.815  -0.402  0.348 0.650  3.207 -0.436  0.501  0.856   \n",
       "DET  3.065   1.138    0.561   0.814  0.211 1.131  1.867  0.076  0.011  0.766   \n",
       "NYK  2.928   1.218   -0.045   0.583  0.467 0.426 -0.047 -0.329  0.153 -0.324   \n",
       "MEM  2.863   1.240    1.068   0.470  0.367 1.322  0.604 -0.261 -0.051  1.133   \n",
       "BKN  2.755   0.861    1.134   0.969  0.977 1.077  1.522  0.247  0.005  0.469   \n",
       "OKC  2.625   1.389    1.332   0.717 -0.230 0.571  1.424 -0.221  0.666  0.620   \n",
       "TOR  2.367   0.999    1.353   1.009  0.388 0.781  1.962 -0.496 -0.030  1.062   \n",
       "LAC  2.071   1.307   -0.532   0.261 -0.235 0.840  1.886 -0.010  0.171  1.016   \n",
       "PHI  1.938   0.956    0.707   0.630  0.088 0.995  2.240 -0.226  0.156 -0.069   \n",
       "HOU  1.853   0.607   -0.689  -1.130  0.615 1.486  1.536 -0.660 -0.017  0.628   \n",
       "MIN  1.556   0.700   -0.289  -1.344 -0.257 1.430  2.112 -0.997 -0.173  0.525   \n",
       "CHI  1.545  -0.094    0.647   0.194  0.983 1.456  2.462 -0.909  0.227  0.991   \n",
       "BOS  1.314   0.789    0.855   0.059  0.463 0.964  2.168 -0.157  0.084  0.367   \n",
       "\n",
       "         pf  \n",
       "team         \n",
       "DEN   0.169  \n",
       "ATL  -0.134  \n",
       "WAS  -0.669  \n",
       "SAC  -0.269  \n",
       "GSW  -0.482  \n",
       "POR  -0.770  \n",
       "DAL  -0.291  \n",
       "MIA  -0.801  \n",
       "UTA  -0.605  \n",
       "CLE  -1.041  \n",
       "ORL  -0.610  \n",
       "LAL   0.002  \n",
       "SAS  -0.613  \n",
       "IND  -1.107  \n",
       "CHA  -0.014  \n",
       "PHX  -0.614  \n",
       "MIL  -0.826  \n",
       "NOP  -0.669  \n",
       "DET  -0.262  \n",
       "NYK  -0.606  \n",
       "MEM  -0.514  \n",
       "BKN  -0.163  \n",
       "OKC  -0.363  \n",
       "TOR  -0.826  \n",
       "LAC  -0.265  \n",
       "PHI  -0.241  \n",
       "HOU  -1.100  \n",
       "MIN  -0.498  \n",
       "CHI  -0.392  \n",
       "BOS  -1.194  "
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hca.groupby('team')[cols].mean().sort_values(by='pts', ascending=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this table, we are sorting by average point differential (home versus away), grouped by season and matchup. In this ordering, Denver is still on top, but teams such as Utah and Cleveland are further down the list than in our [prior analysis](https://nbviewer.jupyter.org/github/practicallypredictable/posts/blob/master/notebooks/nba_home_court-part3.ipynb).\n",
    "\n",
    "This table also makes clear that the impact of home court on particular statistics appears to vary significantly by team. For example, the Nuggets, the Jazz and the Pacers show a relatively large drop in turnovers, while the Warriors and the Spurs show a relatively large increase in shooting efficiency."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:sports_py36]",
   "language": "python",
   "name": "conda-env-sports_py36-py"
  },
  "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.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}