diff --git a/s24/Louis_Lecture_Notes/37_AdvPandas/Lec37_AdvPandas_Solution_Oliphant.ipynb b/s24/Louis_Lecture_Notes/37_AdvPandas/Lec37_AdvPandas_Solution_Oliphant.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..2e2b7cb08114f31398ca21fadaafd8da078c7ee1
--- /dev/null
+++ b/s24/Louis_Lecture_Notes/37_AdvPandas/Lec37_AdvPandas_Solution_Oliphant.ipynb
@@ -0,0 +1,4036 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Advanced Pandas"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "id": "CeWtFirwteFY"
+   },
+   "outputs": [],
+   "source": [
+    "# known import statements\n",
+    "import pandas as pd\n",
+    "import sqlite3\n",
+    "import os\n",
+    "\n",
+    "# new import statement\n",
+    "import numpy as np"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "CREATE TABLE \"piazza\" (\n",
+      "\"student_id\" TEXT,\n",
+      "  \"name\" TEXT,\n",
+      "  \"email\" TEXT,\n",
+      "  \"role\" TEXT,\n",
+      "  \"days_online\" INTEGER,\n",
+      "  \"posts\" INTEGER,\n",
+      "  \"answers\" INTEGER,\n",
+      "  \"edits\" INTEGER,\n",
+      "  \"followups\" INTEGER,\n",
+      "  \"replies_to_followups\" INTEGER\n",
+      ")\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Get the Piazza data from 'piazza.db'\n",
+    "\n",
+    "db_name = \"piazza.db\"\n",
+    "assert os.path.exists(db_name)\n",
+    "conn = sqlite3.connect(db_name)\n",
+    "\n",
+    "def qry(sql):\n",
+    "    return pd.read_sql(sql, conn)\n",
+    "\n",
+    "df = qry(\"\"\"\n",
+    "    SELECT *\n",
+    "    FROM sqlite_master\n",
+    "    WHERE type='table'\n",
+    "\"\"\")\n",
+    "print(df.iloc[0]['sql'])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "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>student_id</th>\n",
+       "      <th>name</th>\n",
+       "      <th>email</th>\n",
+       "      <th>role</th>\n",
+       "      <th>days_online</th>\n",
+       "      <th>posts</th>\n",
+       "      <th>answers</th>\n",
+       "      <th>edits</th>\n",
+       "      <th>followups</th>\n",
+       "      <th>replies_to_followups</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>bffd301b-3ab9-42d7-bfb1-e5d56117543a</td>\n",
+       "      <td>timid city</td>\n",
+       "      <td>timid_city@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>0fda0d07-ff49-4f6b-86de-c0e24ee211f1</td>\n",
+       "      <td>hard coffee</td>\n",
+       "      <td>hard_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>4af54672-102f-4788-bbf0-e48a7e6b1e59</td>\n",
+       "      <td>hot love</td>\n",
+       "      <td>hot_love@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3</th>\n",
+       "      <td>295ee845-0eb7-44aa-acd6-8809dc6700fa</td>\n",
+       "      <td>funny house</td>\n",
+       "      <td>funny_house@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4</th>\n",
+       "      <td>4f800f63-e006-436b-8aed-9ce43b48bf76</td>\n",
+       "      <td>calm student</td>\n",
+       "      <td>calm_student@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                             student_id          name                  email  \\\n",
+       "0  bffd301b-3ab9-42d7-bfb1-e5d56117543a    timid city    timid_city@wisc.edu   \n",
+       "1  0fda0d07-ff49-4f6b-86de-c0e24ee211f1   hard coffee   hard_coffee@wisc.edu   \n",
+       "2  4af54672-102f-4788-bbf0-e48a7e6b1e59      hot love      hot_love@wisc.edu   \n",
+       "3  295ee845-0eb7-44aa-acd6-8809dc6700fa   funny house   funny_house@wisc.edu   \n",
+       "4  4f800f63-e006-436b-8aed-9ce43b48bf76  calm student  calm_student@wisc.edu   \n",
+       "\n",
+       "      role  days_online  posts  answers  edits  followups  \\\n",
+       "0  student            0      0        0      0          0   \n",
+       "1  student            0      0        0      0          0   \n",
+       "2  student            0      0        0      0          0   \n",
+       "3  student            0      0        0      0          0   \n",
+       "4  student            0      0        0      0          0   \n",
+       "\n",
+       "   replies_to_followups  \n",
+       "0                     0  \n",
+       "1                     0  \n",
+       "2                     0  \n",
+       "3                     0  \n",
+       "4                     0  "
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "piazza_df = pd.read_sql(\"\"\"\n",
+    "    SELECT *\n",
+    "    FROM piazza\n",
+    "\"\"\", conn)\n",
+    "piazza_df.head(5)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div>\n",
+       "<style scoped>\n",
+       "    .dataframe tbody tr th:only-of-type {\n",
+       "        vertical-align: middle;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe tbody tr th {\n",
+       "        vertical-align: top;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe thead th {\n",
+       "        text-align: right;\n",
+       "    }\n",
+       "</style>\n",
+       "<table border=\"1\" class=\"dataframe\">\n",
+       "  <thead>\n",
+       "    <tr style=\"text-align: right;\">\n",
+       "      <th></th>\n",
+       "      <th>name</th>\n",
+       "      <th>email</th>\n",
+       "      <th>role</th>\n",
+       "      <th>days_online</th>\n",
+       "      <th>posts</th>\n",
+       "      <th>answers</th>\n",
+       "      <th>edits</th>\n",
+       "      <th>followups</th>\n",
+       "      <th>replies_to_followups</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student_id</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>bffd301b-3ab9-42d7-bfb1-e5d56117543a</th>\n",
+       "      <td>timid city</td>\n",
+       "      <td>timid_city@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>0fda0d07-ff49-4f6b-86de-c0e24ee211f1</th>\n",
+       "      <td>hard coffee</td>\n",
+       "      <td>hard_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4af54672-102f-4788-bbf0-e48a7e6b1e59</th>\n",
+       "      <td>hot love</td>\n",
+       "      <td>hot_love@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>295ee845-0eb7-44aa-acd6-8809dc6700fa</th>\n",
+       "      <td>funny house</td>\n",
+       "      <td>funny_house@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4f800f63-e006-436b-8aed-9ce43b48bf76</th>\n",
+       "      <td>calm student</td>\n",
+       "      <td>calm_student@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>f8b5c7f3-72a8-4831-ad08-1b21e277c5c6</th>\n",
+       "      <td>clean coffee</td>\n",
+       "      <td>clean_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>9</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>50a18796-c7ff-4a20-9f8f-30d9db075db5</th>\n",
+       "      <td>stale music</td>\n",
+       "      <td>stale_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>94</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>877efa7c-a88d-45f9-85b0-73b2378f493c</th>\n",
+       "      <td>wide music</td>\n",
+       "      <td>wide_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>47</td>\n",
+       "      <td>2</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3fd9b2c0-7974-4f14-896e-9b59dfda2bca</th>\n",
+       "      <td>thick country</td>\n",
+       "      <td>thick_country@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>85</td>\n",
+       "      <td>8</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>36e2dbd3-95c9-4ee7-8e02-db96656906df</th>\n",
+       "      <td>fast friend</td>\n",
+       "      <td>fast_friend@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>39</td>\n",
+       "      <td>3</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>800 rows × 9 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                               name                   email  \\\n",
+       "student_id                                                                    \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a     timid city     timid_city@wisc.edu   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1    hard coffee    hard_coffee@wisc.edu   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59       hot love       hot_love@wisc.edu   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa    funny house    funny_house@wisc.edu   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76   calm student   calm_student@wisc.edu   \n",
+       "...                                             ...                     ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6   clean coffee   clean_coffee@wisc.edu   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5    stale music    stale_music@wisc.edu   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c     wide music     wide_music@wisc.edu   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  thick country  thick_country@wisc.edu   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df    fast friend    fast_friend@wisc.edu   \n",
+       "\n",
+       "                                         role  days_online  posts  answers  \\\n",
+       "student_id                                                                   \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a  student            0      0        0   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1  student            0      0        0   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59  student            0      0        0   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa  student            0      0        0   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76  student            0      0        0   \n",
+       "...                                       ...          ...    ...      ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6  student            9      0        0   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5  student           94      1        0   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c  student           47      2        1   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  student           85      8        0   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df  student           39      3        0   \n",
+       "\n",
+       "                                      edits  followups  replies_to_followups  \n",
+       "student_id                                                                    \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a      0          0                     0  \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1      0          0                     0  \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59      0          0                     0  \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa      0          0                     0  \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76      0          0                     0  \n",
+       "...                                     ...        ...                   ...  \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6      0          0                     0  \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5      0          0                     0  \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c      0          1                     2  \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca      0          0                     0  \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df      0          0                     0  \n",
+       "\n",
+       "[800 rows x 9 columns]"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Warmup 1: Set the student id column as the index\n",
+    "piazza_df = piazza_df.set_index(\"student_id\")\n",
+    "piazza_df"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div>\n",
+       "<style scoped>\n",
+       "    .dataframe tbody tr th:only-of-type {\n",
+       "        vertical-align: middle;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe tbody tr th {\n",
+       "        vertical-align: top;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe thead th {\n",
+       "        text-align: right;\n",
+       "    }\n",
+       "</style>\n",
+       "<table border=\"1\" class=\"dataframe\">\n",
+       "  <thead>\n",
+       "    <tr style=\"text-align: right;\">\n",
+       "      <th></th>\n",
+       "      <th>name</th>\n",
+       "      <th>email</th>\n",
+       "      <th>role</th>\n",
+       "      <th>days_online</th>\n",
+       "      <th>posts</th>\n",
+       "      <th>answers</th>\n",
+       "      <th>edits</th>\n",
+       "      <th>followups</th>\n",
+       "      <th>replies_to_followups</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student_id</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>af42117d-6f04-450a-8766-61d947d26862</th>\n",
+       "      <td>narrow table</td>\n",
+       "      <td>narrow_table@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>231</td>\n",
+       "      <td>37</td>\n",
+       "      <td>6</td>\n",
+       "      <td>1</td>\n",
+       "      <td>7</td>\n",
+       "      <td>4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>b824ed12-13a0-4bfa-9129-7b329c098868</th>\n",
+       "      <td>thick bus</td>\n",
+       "      <td>thick_bus@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>172</td>\n",
+       "      <td>29</td>\n",
+       "      <td>3</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>32091fdf-d857-4b2c-bbfd-c0a213d6fe12</th>\n",
+       "      <td>silent city</td>\n",
+       "      <td>silent_city@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>98</td>\n",
+       "      <td>27</td>\n",
+       "      <td>4</td>\n",
+       "      <td>0</td>\n",
+       "      <td>2</td>\n",
+       "      <td>7</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>fa4077ca-8344-415d-8153-2c31d0dcc081</th>\n",
+       "      <td>old student</td>\n",
+       "      <td>old_student@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>354</td>\n",
+       "      <td>24</td>\n",
+       "      <td>2</td>\n",
+       "      <td>0</td>\n",
+       "      <td>6</td>\n",
+       "      <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>a48a4d6a-8c23-4b6a-93c7-571b4bd62bd8</th>\n",
+       "      <td>sad airplane</td>\n",
+       "      <td>sad_airplane@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>178</td>\n",
+       "      <td>19</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>2</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>d0641d71-4faa-4e71-b9b4-ec70eed5796d</th>\n",
+       "      <td>sweet rain</td>\n",
+       "      <td>sweet_rain@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>84</td>\n",
+       "      <td>18</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>4</td>\n",
+       "      <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>f67b48e1-aef1-4b56-8a56-ac921e42db4b</th>\n",
+       "      <td>slow phone</td>\n",
+       "      <td>slow_phone@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>268</td>\n",
+       "      <td>16</td>\n",
+       "      <td>3</td>\n",
+       "      <td>0</td>\n",
+       "      <td>7</td>\n",
+       "      <td>4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>efe75c65-2b67-42a0-bf5a-8bd214f1d84d</th>\n",
+       "      <td>fast laughter</td>\n",
+       "      <td>fast_laughter@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>365</td>\n",
+       "      <td>15</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>5</td>\n",
+       "      <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>eccc49cc-00f7-4414-a7db-7ce332c7306a</th>\n",
+       "      <td>young bus</td>\n",
+       "      <td>young_bus@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>75</td>\n",
+       "      <td>15</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>3</td>\n",
+       "      <td>6</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>04d44c73-218d-49b6-905c-0454b94831ef</th>\n",
+       "      <td>cold bus</td>\n",
+       "      <td>cold_bus@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>40</td>\n",
+       "      <td>15</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>6</td>\n",
+       "      <td>4</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                               name                   email  \\\n",
+       "student_id                                                                    \n",
+       "af42117d-6f04-450a-8766-61d947d26862   narrow table   narrow_table@wisc.edu   \n",
+       "b824ed12-13a0-4bfa-9129-7b329c098868      thick bus      thick_bus@wisc.edu   \n",
+       "32091fdf-d857-4b2c-bbfd-c0a213d6fe12    silent city    silent_city@wisc.edu   \n",
+       "fa4077ca-8344-415d-8153-2c31d0dcc081    old student    old_student@wisc.edu   \n",
+       "a48a4d6a-8c23-4b6a-93c7-571b4bd62bd8   sad airplane   sad_airplane@wisc.edu   \n",
+       "d0641d71-4faa-4e71-b9b4-ec70eed5796d     sweet rain     sweet_rain@wisc.edu   \n",
+       "f67b48e1-aef1-4b56-8a56-ac921e42db4b     slow phone     slow_phone@wisc.edu   \n",
+       "efe75c65-2b67-42a0-bf5a-8bd214f1d84d  fast laughter  fast_laughter@wisc.edu   \n",
+       "eccc49cc-00f7-4414-a7db-7ce332c7306a      young bus      young_bus@wisc.edu   \n",
+       "04d44c73-218d-49b6-905c-0454b94831ef       cold bus       cold_bus@wisc.edu   \n",
+       "\n",
+       "                                         role  days_online  posts  answers  \\\n",
+       "student_id                                                                   \n",
+       "af42117d-6f04-450a-8766-61d947d26862  student          231     37        6   \n",
+       "b824ed12-13a0-4bfa-9129-7b329c098868  student          172     29        3   \n",
+       "32091fdf-d857-4b2c-bbfd-c0a213d6fe12  student           98     27        4   \n",
+       "fa4077ca-8344-415d-8153-2c31d0dcc081  student          354     24        2   \n",
+       "a48a4d6a-8c23-4b6a-93c7-571b4bd62bd8  student          178     19        1   \n",
+       "d0641d71-4faa-4e71-b9b4-ec70eed5796d  student           84     18        0   \n",
+       "f67b48e1-aef1-4b56-8a56-ac921e42db4b  student          268     16        3   \n",
+       "efe75c65-2b67-42a0-bf5a-8bd214f1d84d  student          365     15        1   \n",
+       "eccc49cc-00f7-4414-a7db-7ce332c7306a  student           75     15        0   \n",
+       "04d44c73-218d-49b6-905c-0454b94831ef  student           40     15        0   \n",
+       "\n",
+       "                                      edits  followups  replies_to_followups  \n",
+       "student_id                                                                    \n",
+       "af42117d-6f04-450a-8766-61d947d26862      1          7                     4  \n",
+       "b824ed12-13a0-4bfa-9129-7b329c098868      0          0                     1  \n",
+       "32091fdf-d857-4b2c-bbfd-c0a213d6fe12      0          2                     7  \n",
+       "fa4077ca-8344-415d-8153-2c31d0dcc081      0          6                     2  \n",
+       "a48a4d6a-8c23-4b6a-93c7-571b4bd62bd8      0          2                     0  \n",
+       "d0641d71-4faa-4e71-b9b4-ec70eed5796d      0          4                     1  \n",
+       "f67b48e1-aef1-4b56-8a56-ac921e42db4b      0          7                     4  \n",
+       "efe75c65-2b67-42a0-bf5a-8bd214f1d84d      0          5                     3  \n",
+       "eccc49cc-00f7-4414-a7db-7ce332c7306a      0          3                     6  \n",
+       "04d44c73-218d-49b6-905c-0454b94831ef      0          6                     4  "
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Warmup 2a: Which 10 students post the most?\n",
+    "top_students = piazza_df[piazza_df[\"role\"] == \"student\"].sort_values(\"posts\", ascending=False).head(10)\n",
+    "top_students"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 2b: Can you plot their number of posts as a bar graph? Be sure to label your axes!\n",
+    "ax = top_students[\"posts\"].plot.bar()\n",
+    "ax.set_xlabel(\"Student ID\")\n",
+    "ax.set_ylabel(\"# of Posts\")\n",
+    "ax.set_title(\"Top Posting Students\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 2c: How about with their name rather than their student id?\n",
+    "ax = top_students.plot.bar(x=\"name\", y=\"posts\")\n",
+    "ax.set_xlabel(\"Student\")\n",
+    "ax.set_ylabel(\"# of Posts\")\n",
+    "ax.set_title(\"Top Posting Students\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "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>name</th>\n",
+       "      <th>email</th>\n",
+       "      <th>role</th>\n",
+       "      <th>days_online</th>\n",
+       "      <th>posts</th>\n",
+       "      <th>answers</th>\n",
+       "      <th>edits</th>\n",
+       "      <th>followups</th>\n",
+       "      <th>replies_to_followups</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student_id</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>291bc772-3bb4-4461-bc14-02580937811b</th>\n",
+       "      <td>stormy door</td>\n",
+       "      <td>stormy_door@wisc.edu</td>\n",
+       "      <td>ta</td>\n",
+       "      <td>101</td>\n",
+       "      <td>35</td>\n",
+       "      <td>296</td>\n",
+       "      <td>130</td>\n",
+       "      <td>118</td>\n",
+       "      <td>145</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>f1b776b5-be88-423a-af72-4c989f95a661</th>\n",
+       "      <td></td>\n",
+       "      <td>loud_computer@wisc.edu</td>\n",
+       "      <td>instructor</td>\n",
+       "      <td>292</td>\n",
+       "      <td>41</td>\n",
+       "      <td>278</td>\n",
+       "      <td>58</td>\n",
+       "      <td>86</td>\n",
+       "      <td>103</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>10e7f31b-b213-4efd-81da-15faabf82ae5</th>\n",
+       "      <td>tight rain</td>\n",
+       "      <td>tight_rain@wisc.edu</td>\n",
+       "      <td>instructor</td>\n",
+       "      <td>252</td>\n",
+       "      <td>11</td>\n",
+       "      <td>169</td>\n",
+       "      <td>91</td>\n",
+       "      <td>13</td>\n",
+       "      <td>25</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>80764a25-00dd-49ac-95eb-3903b417c81e</th>\n",
+       "      <td>quiet rain</td>\n",
+       "      <td>quiet_rain@wisc.edu</td>\n",
+       "      <td>instructor</td>\n",
+       "      <td>336</td>\n",
+       "      <td>5</td>\n",
+       "      <td>107</td>\n",
+       "      <td>10</td>\n",
+       "      <td>24</td>\n",
+       "      <td>28</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>7880e6fa-a00d-48f4-8374-3176512c3236</th>\n",
+       "      <td>silent time</td>\n",
+       "      <td></td>\n",
+       "      <td>instructor</td>\n",
+       "      <td>283</td>\n",
+       "      <td>1</td>\n",
+       "      <td>84</td>\n",
+       "      <td>55</td>\n",
+       "      <td>6</td>\n",
+       "      <td>24</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>11a1224c-8310-4b16-a50f-5b6a485793ee</th>\n",
+       "      <td></td>\n",
+       "      <td>stormy_laughter@wisc.edu</td>\n",
+       "      <td>ta</td>\n",
+       "      <td>185</td>\n",
+       "      <td>0</td>\n",
+       "      <td>75</td>\n",
+       "      <td>11</td>\n",
+       "      <td>8</td>\n",
+       "      <td>7</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>b5963cff-ffe0-460d-b356-d3ef5aa72a5b</th>\n",
+       "      <td></td>\n",
+       "      <td></td>\n",
+       "      <td>instructor</td>\n",
+       "      <td>58</td>\n",
+       "      <td>0</td>\n",
+       "      <td>70</td>\n",
+       "      <td>7</td>\n",
+       "      <td>0</td>\n",
+       "      <td>4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>9f8ac76d-ce1d-4da0-be4b-09b1442922a0</th>\n",
+       "      <td></td>\n",
+       "      <td>soft_apple@wisc.edu</td>\n",
+       "      <td>ta</td>\n",
+       "      <td>332</td>\n",
+       "      <td>0</td>\n",
+       "      <td>59</td>\n",
+       "      <td>24</td>\n",
+       "      <td>2</td>\n",
+       "      <td>11</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>87cd9484-cae8-458f-a101-ddd6632d84e7</th>\n",
+       "      <td>loose music</td>\n",
+       "      <td>loose_music@wisc.edu</td>\n",
+       "      <td>instructor</td>\n",
+       "      <td>201</td>\n",
+       "      <td>0</td>\n",
+       "      <td>58</td>\n",
+       "      <td>4</td>\n",
+       "      <td>2</td>\n",
+       "      <td>9</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>47dd3e0a-f792-4a93-a31e-5c4d3536ac5f</th>\n",
+       "      <td>hot train</td>\n",
+       "      <td>hot_train@wisc.edu</td>\n",
+       "      <td>ta</td>\n",
+       "      <td>104</td>\n",
+       "      <td>0</td>\n",
+       "      <td>53</td>\n",
+       "      <td>4</td>\n",
+       "      <td>3</td>\n",
+       "      <td>4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ec12974a-6790-4b5f-85ff-dd5dc1dc63b6</th>\n",
+       "      <td>short apple</td>\n",
+       "      <td>short_apple@wisc.edu</td>\n",
+       "      <td>ta</td>\n",
+       "      <td>94</td>\n",
+       "      <td>0</td>\n",
+       "      <td>51</td>\n",
+       "      <td>6</td>\n",
+       "      <td>0</td>\n",
+       "      <td>13</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>d423ed1e-d95a-462d-8c18-fb66309942f1</th>\n",
+       "      <td>sour table</td>\n",
+       "      <td>sour_table@wisc.edu</td>\n",
+       "      <td>ta</td>\n",
+       "      <td>214</td>\n",
+       "      <td>0</td>\n",
+       "      <td>44</td>\n",
+       "      <td>9</td>\n",
+       "      <td>4</td>\n",
+       "      <td>16</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>f8ab1dcb-fa24-4f12-93bb-57a19cf17d5c</th>\n",
+       "      <td>large bridge</td>\n",
+       "      <td>large_bridge@wisc.edu</td>\n",
+       "      <td>ta</td>\n",
+       "      <td>48</td>\n",
+       "      <td>0</td>\n",
+       "      <td>37</td>\n",
+       "      <td>6</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3c06148c-a67b-4127-8f77-54955d02da62</th>\n",
+       "      <td>hard car</td>\n",
+       "      <td>hard_car@wisc.edu</td>\n",
+       "      <td>ta</td>\n",
+       "      <td>185</td>\n",
+       "      <td>1</td>\n",
+       "      <td>27</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2</td>\n",
+       "      <td>6</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4307b923-c97b-4746-b049-9dfa5b6282f9</th>\n",
+       "      <td></td>\n",
+       "      <td>thin_river@wisc.edu</td>\n",
+       "      <td>ta</td>\n",
+       "      <td>96</td>\n",
+       "      <td>0</td>\n",
+       "      <td>19</td>\n",
+       "      <td>5</td>\n",
+       "      <td>0</td>\n",
+       "      <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>e9608a83-6dfb-4444-a1eb-194ab57f465b</th>\n",
+       "      <td>thin airplane</td>\n",
+       "      <td>thin_airplane@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>233</td>\n",
+       "      <td>4</td>\n",
+       "      <td>12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>0</td>\n",
+       "      <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>118a5569-728d-4572-9cc2-8665ebcef401</th>\n",
+       "      <td>timid door</td>\n",
+       "      <td>timid_door@wisc.edu</td>\n",
+       "      <td>ta</td>\n",
+       "      <td>61</td>\n",
+       "      <td>4</td>\n",
+       "      <td>12</td>\n",
+       "      <td>7</td>\n",
+       "      <td>2</td>\n",
+       "      <td>1</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                               name                     email  \\\n",
+       "student_id                                                                      \n",
+       "291bc772-3bb4-4461-bc14-02580937811b    stormy door      stormy_door@wisc.edu   \n",
+       "f1b776b5-be88-423a-af72-4c989f95a661                   loud_computer@wisc.edu   \n",
+       "10e7f31b-b213-4efd-81da-15faabf82ae5     tight rain       tight_rain@wisc.edu   \n",
+       "80764a25-00dd-49ac-95eb-3903b417c81e     quiet rain       quiet_rain@wisc.edu   \n",
+       "7880e6fa-a00d-48f4-8374-3176512c3236    silent time                             \n",
+       "11a1224c-8310-4b16-a50f-5b6a485793ee                 stormy_laughter@wisc.edu   \n",
+       "b5963cff-ffe0-460d-b356-d3ef5aa72a5b                                            \n",
+       "9f8ac76d-ce1d-4da0-be4b-09b1442922a0                      soft_apple@wisc.edu   \n",
+       "87cd9484-cae8-458f-a101-ddd6632d84e7    loose music      loose_music@wisc.edu   \n",
+       "47dd3e0a-f792-4a93-a31e-5c4d3536ac5f      hot train        hot_train@wisc.edu   \n",
+       "ec12974a-6790-4b5f-85ff-dd5dc1dc63b6    short apple      short_apple@wisc.edu   \n",
+       "d423ed1e-d95a-462d-8c18-fb66309942f1     sour table       sour_table@wisc.edu   \n",
+       "f8ab1dcb-fa24-4f12-93bb-57a19cf17d5c   large bridge     large_bridge@wisc.edu   \n",
+       "3c06148c-a67b-4127-8f77-54955d02da62       hard car         hard_car@wisc.edu   \n",
+       "4307b923-c97b-4746-b049-9dfa5b6282f9                      thin_river@wisc.edu   \n",
+       "e9608a83-6dfb-4444-a1eb-194ab57f465b  thin airplane    thin_airplane@wisc.edu   \n",
+       "118a5569-728d-4572-9cc2-8665ebcef401     timid door       timid_door@wisc.edu   \n",
+       "\n",
+       "                                            role  days_online  posts  answers  \\\n",
+       "student_id                                                                      \n",
+       "291bc772-3bb4-4461-bc14-02580937811b          ta          101     35      296   \n",
+       "f1b776b5-be88-423a-af72-4c989f95a661  instructor          292     41      278   \n",
+       "10e7f31b-b213-4efd-81da-15faabf82ae5  instructor          252     11      169   \n",
+       "80764a25-00dd-49ac-95eb-3903b417c81e  instructor          336      5      107   \n",
+       "7880e6fa-a00d-48f4-8374-3176512c3236  instructor          283      1       84   \n",
+       "11a1224c-8310-4b16-a50f-5b6a485793ee          ta          185      0       75   \n",
+       "b5963cff-ffe0-460d-b356-d3ef5aa72a5b  instructor           58      0       70   \n",
+       "9f8ac76d-ce1d-4da0-be4b-09b1442922a0          ta          332      0       59   \n",
+       "87cd9484-cae8-458f-a101-ddd6632d84e7  instructor          201      0       58   \n",
+       "47dd3e0a-f792-4a93-a31e-5c4d3536ac5f          ta          104      0       53   \n",
+       "ec12974a-6790-4b5f-85ff-dd5dc1dc63b6          ta           94      0       51   \n",
+       "d423ed1e-d95a-462d-8c18-fb66309942f1          ta          214      0       44   \n",
+       "f8ab1dcb-fa24-4f12-93bb-57a19cf17d5c          ta           48      0       37   \n",
+       "3c06148c-a67b-4127-8f77-54955d02da62          ta          185      1       27   \n",
+       "4307b923-c97b-4746-b049-9dfa5b6282f9          ta           96      0       19   \n",
+       "e9608a83-6dfb-4444-a1eb-194ab57f465b     student          233      4       12   \n",
+       "118a5569-728d-4572-9cc2-8665ebcef401          ta           61      4       12   \n",
+       "\n",
+       "                                      edits  followups  replies_to_followups  \n",
+       "student_id                                                                    \n",
+       "291bc772-3bb4-4461-bc14-02580937811b    130        118                   145  \n",
+       "f1b776b5-be88-423a-af72-4c989f95a661     58         86                   103  \n",
+       "10e7f31b-b213-4efd-81da-15faabf82ae5     91         13                    25  \n",
+       "80764a25-00dd-49ac-95eb-3903b417c81e     10         24                    28  \n",
+       "7880e6fa-a00d-48f4-8374-3176512c3236     55          6                    24  \n",
+       "11a1224c-8310-4b16-a50f-5b6a485793ee     11          8                     7  \n",
+       "b5963cff-ffe0-460d-b356-d3ef5aa72a5b      7          0                     4  \n",
+       "9f8ac76d-ce1d-4da0-be4b-09b1442922a0     24          2                    11  \n",
+       "87cd9484-cae8-458f-a101-ddd6632d84e7      4          2                     9  \n",
+       "47dd3e0a-f792-4a93-a31e-5c4d3536ac5f      4          3                     4  \n",
+       "ec12974a-6790-4b5f-85ff-dd5dc1dc63b6      6          0                    13  \n",
+       "d423ed1e-d95a-462d-8c18-fb66309942f1      9          4                    16  \n",
+       "f8ab1dcb-fa24-4f12-93bb-57a19cf17d5c      6          0                     1  \n",
+       "3c06148c-a67b-4127-8f77-54955d02da62      2          2                     6  \n",
+       "4307b923-c97b-4746-b049-9dfa5b6282f9      5          0                     3  \n",
+       "e9608a83-6dfb-4444-a1eb-194ab57f465b      2          0                     2  \n",
+       "118a5569-728d-4572-9cc2-8665ebcef401      7          2                     1  "
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Warmup 3a: Which people had more than 10 answers? Include all roles.\n",
+    "top_answers = piazza_df[piazza_df[\"answers\"] > 10].sort_values(\"answers\", ascending=False)\n",
+    "top_answers"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "<Axes: xlabel='student_id'>"
+      ]
+     },
+     "execution_count": 19,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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iIiIehEDFBERESIqTWg9duwYderUiWrUqEFnz56lv/76i5ycnOjVq1d0+PBhunHjBpmampKRkRHVqVOHrK2tadasWTR37lxKT0+nJUuWqBxzzJgx1Lp1a1q8eDF1796d4uLiVPJPiIhmzJhBXbt2JWtra+rTpw9JJBK6fPkyXblyhebOnftB525ra0scx9H+/fupS5cupFAoSF9f/4Pfe7169cjPz49CQ0Np9erVpKWlRePGjftHybYiIiJsEHNQREREiIjI0NCQTpw4QV26dCFHR0eaPn06LVmyhDp37kyhoaFUr149at68OZmZmdGpU6dIJpPR1q1b6fr169SkSRNatGhRuYCiVatWtGbNGoqKiiIXFxeKi4uj6dOnq/yMr68v7d+/n44cOUItWrSgVq1a0Xfffccn6n4ItWrVotmzZ1N4eDiZm5vT6NGj/+f3Hx0dTdbW1uTl5UU9e/ak4cOHU40aNf7n44iIiLCBw4csEouIiIiIiIiIqBFxBkVERERERETko0MMUERERKocd+/eVSlbfne7e/eupk9RRETkbxCXeERERKocxcXFKnb772JnZ0daWmKNgIjIx4wYoIiIiIiIiIh8dIhLPCIiIiIiIiIfHWKAIiIiIiIiIvLRIQYoIiIiIiIiIh8dYoAiIiIiIiIi8tEhBigiIiIiIiIiHx1igCIiIiIiIiLy0SEGKCIiIiIiIiIfHWKAIiIiIiIiIvLR8f8ANpI+qX/GtaIAAAAASUVORK5CYII=",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# Warmup 3b: Plot this as a bar graph.\n",
+    "top_answers[\"answers\"].plot.bar()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "<Axes: xlabel='role'>"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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evLJJ+PHP/5xbN68OT744INGr61cuTKjqShW9fX10bp16/jNb34TvXv3znociIiIFi1axNatW6Nz586Nlr/zzjvRtWvX2LdvX0aTFQd7PpqZ++67L8aOHRudO3eOVatWxcCBA6NTp06xYcOGGDFiRNbjUYRKS0ujd+/esWPHjqxHgaipqYnq6uqG+5DU1NQ0PN57771YsGDBfkFC/tnz0cz06dMnbr311vja174W5eXlsWbNmjj22GNjypQp8e6778b999+f9YgUofnz58fdd98ds2bNin79+mU9DkWstLT0U29aWlJSElOnTo2bb7454VTFR3w0M23bto21a9dGZWVldO7cORYtWhT9+/ePN998M84880z/+iQThx9+eOzduzf27dsXrVq1ijZt2jR6/d13381oMorNkiVLIpfLxTnnnBNPPfVUdOzYseG1Vq1aRWVl5We6Kyt/mYJdXp1sdO3aNXbs2BGVlZVRWVkZS5cujf79+8fGjRtDZ5KVmTNnZj0CRETEl770pYiI2LhxY1RUVERpqbMPsiA+mplzzjknnnvuuTj11FPjyiuvjG9/+9vx5JNPxvLly2P06NFZj0eRuvzyy7MeARqprKyMnTt3xquvvhrbt2+P+vr6Rq9fdtllGU1WHBx2aWY2btwY3bt3j1atWkVExI9//OP45S9/Gb169YoRI0b4tgGZqauri3nz5sXatWujpKQk+vbtG6NGjYoWLVpkPRpF6LnnnosxY8bEnj17ory8vNF5ICUlJQ4FFpj4aGY+6etjO3bsiM6dO0ddXV1Gk1HM1q9fHyNHjowtW7bEX/3VX0Uul4t169ZFRUVFzJ8/P4477risR6TIHH/88TFy5MiYNm1atG3bNutxio74aGZKS0tj27Zt+8XHpk2bom/fvrFnz56MJqOYjRw5MnK5XPznf/5nwwl+O3bsiG984xtRWloa8+fPz3hCik27du3i9ddfj2OPPTbrUYqScz6aiQkTJkTER7sLp0yZ0qjk6+rq4pVXXolTTjklo+kodkuWLImlS5c2+mZBp06d4u67744hQ4ZkOBnF6stf/nIsX75cfGREfDQTq1atioiPLmX9+uuvN5zzEfHR18f69+8f3/3ud7MajyJXVlZ2wEtZ7969u9FnFVK54IILYuLEifE///M/cdJJJ8UhhxzS6PVRo0ZlNFlxcNilmRk7dmz8y7/8S7Rv3z7rUaDBZZddFitXroyHHnooBg4cGBERr7zySlx11VVx2mmnxcMPP5ztgBSdT/uKbUlJifPjCkx8AAW3c+fOuPzyy+O5555r+Bfmvn37YtSoUTF79uw47LDDsh0QSEp8AMmsX78+1q5dG7lcLvr27Ru9evXKeiSIP/zhD9G6deusxygqLu0GFNztt98ee/fujV69esVFF10Uo0aNil69esX7778ft99+e9bjUYTq6urijjvuiO7du8ehhx4aGzZsiIiIW265JR566KGMp2v+xAdQcFOnTo3du3fvt3zv3r0xderUDCai2N11113x8MMPx7333tvopOeTTjop/v3f/z3DyYqD+AAKLpfLHfBOomvWrGn09VtI5ZFHHokHHnggxowZ0+gquyeffHL89re/zXCy4uCrtkDBHH744VFSUhIlJSVx/PHHNwqQurq62L17d1xzzTUZTkix2rJlywHPOaqvr48PP/wwg4mKi/gACmbmzJmRy+XiiiuuiKlTp0aHDh0aXmvVqlX06NEjBg8enOGEFKsTTzwxfvGLX0RlZWWj5T/5yU9iwIABGU1VPMQHUDAf3822Z8+eMWTIkGjZ0l85HBxuvfXWuPTSS2PLli1RX18fTz/9dLzxxhvxyCOPxH/9139lPV6z55wPoOD27NkTL7744n7Ln3/++fjZz36WwUQUu4suuijmzp0bCxYsaLgtxdq1a+O5556L8847L+vxmj3X+QAK7uSTT4677747Ro4c2Wj5woULY9KkSbFmzZqMJgOyYM8HUHBvvvlm9O3bd7/lffr0ifXr12cwEZAlB2CBguvQoUNs2LAhevTo0Wj5+vXro127dtkMRdH5+NtXn8W7775b4GmKm/gACm7UqFExfvz4eOaZZ+K4446LiI/C4zvf+Y67h5LMzJkzG37esWNH3HnnnfHlL3+54RtXv/71r+P555+PW265JaMJi4dzPoCCq66ujvPPPz+WL18eRx99dEREvP3223H22WfH008/7cZyJPfVr341hg0bFtddd12j5ffff3/8/Oc/j3nz5mUzWJEQH0ASuVwuFi1aFGvWrIk2bdrEySefHF/84hezHosideihh8bq1av3u9DYm2++GQMGDDjg7QDIH4ddgCRKSkpi+PDhMXz48KxHgejUqVM888wzMXHixEbL582bF506dcpoquIh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",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# Warmup 3c: Plot the contributions as a bar graph.\n",
+    "top_answers[\"role\"].value_counts().plot.bar()"
+   ]
+  },
+  {
+   "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>role</th>\n",
+       "      <th>NumAnswers</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>ta</td>\n",
+       "      <td>10</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>instructor</td>\n",
+       "      <td>6</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>student</td>\n",
+       "      <td>1</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "         role  NumAnswers\n",
+       "0          ta          10\n",
+       "1  instructor           6\n",
+       "2     student           1"
+      ]
+     },
+     "execution_count": 20,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Warmup 3d: Can you get this same data using SQL?\n",
+    "qry(\"\"\"\n",
+    "SELECT role, COUNT(*) as NumAnswers\n",
+    "FROM piazza\n",
+    "WHERE answers > 10\n",
+    "GROUP BY role\n",
+    "ORDER BY NumAnswers DESC\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "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>role</th>\n",
+       "      <th>NumAnswers</th>\n",
+       "      <th>AvgDaysOnline</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>ta</td>\n",
+       "      <td>10</td>\n",
+       "      <td>142.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>instructor</td>\n",
+       "      <td>6</td>\n",
+       "      <td>237.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>student</td>\n",
+       "      <td>1</td>\n",
+       "      <td>233.0</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "         role  NumAnswers  AvgDaysOnline\n",
+       "0          ta          10          142.0\n",
+       "1  instructor           6          237.0\n",
+       "2     student           1          233.0"
+      ]
+     },
+     "execution_count": 21,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Warmup 3e: What about their average # of days online as well?\n",
+    "qry(\"\"\"\n",
+    "SELECT role, COUNT(*) as NumAnswers, AVG(days_online) as AvgDaysOnline\n",
+    "FROM piazza\n",
+    "WHERE answers > 10\n",
+    "GROUP BY role\n",
+    "ORDER BY NumAnswers DESC\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 3f: Can we do that in Pandas as well?\n",
+    "# Today's topic!"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "yoLGptrqhbBo"
+   },
+   "source": [
+    "# Today's Learning Objectives: \n",
+    "\n",
+    "* Setting column as index for pandas `DataFrame`\n",
+    "* Identify, drop, or fill missing values (`np.NaN`) using Pandas `isna`, `dropna`, and `fillna`\n",
+    "* Applying transformations to `DataFrame`:\n",
+    "  * Use `apply` on pandas `Series` to apply a transformation function\n",
+    "  * Use `replace` to replace all target values in Pandas `Series` and `DataFrame` rows / columns\n",
+    "* Filter, aggregate, group, and summarize information in a `DataFrame` with `groupby`\n",
+    "* Convert .groupby examples to SQL\n",
+    "* Solving the same question using SQL and pandas `DataFrame` manipulations:\n",
+    "  * filtering, grouping, and aggregation / summarization"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "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>name</th>\n",
+       "      <th>email</th>\n",
+       "      <th>role</th>\n",
+       "      <th>days_online</th>\n",
+       "      <th>posts</th>\n",
+       "      <th>answers</th>\n",
+       "      <th>edits</th>\n",
+       "      <th>followups</th>\n",
+       "      <th>replies_to_followups</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student_id</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>7c1bed42-3d12-4027-bdce-d3df0b9443b4</th>\n",
+       "      <td></td>\n",
+       "      <td>hot_time@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>86</td>\n",
+       "      <td>2</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>9434914d-88d0-4e64-b3b7-4e864635cfdb</th>\n",
+       "      <td></td>\n",
+       "      <td>thick_love@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>19</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>6ad21c80-1853-4918-a6dc-a5814199b1c5</th>\n",
+       "      <td></td>\n",
+       "      <td>serious_door@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>4</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>15960bb8-bdc7-4c5e-83dc-99bb95c96f94</th>\n",
+       "      <td></td>\n",
+       "      <td>young_time@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>198</td>\n",
+       "      <td>8</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>5c82bf29-303e-4d29-b17b-4709933dbd4b</th>\n",
+       "      <td></td>\n",
+       "      <td>calm_star@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>54</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>74cbaf6e-34e7-4dd0-b577-8164f1d525d7</th>\n",
+       "      <td>young music</td>\n",
+       "      <td>young_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>25</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>50c9efda-f01d-43ca-b79e-0dfd03199020</th>\n",
+       "      <td>young ocean</td>\n",
+       "      <td>young_ocean@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>298</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ab58109e-5493-4893-a301-d85533255707</th>\n",
+       "      <td>young river</td>\n",
+       "      <td></td>\n",
+       "      <td>ta</td>\n",
+       "      <td>143</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>8777e788-7e7e-4193-8f1a-deed767ecdca</th>\n",
+       "      <td>young road</td>\n",
+       "      <td>young_road@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>18</td>\n",
+       "      <td>3</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>0e67e72c-55cd-4e66-8841-1daffb3f5204</th>\n",
+       "      <td>young window</td>\n",
+       "      <td>young_window@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>45</td>\n",
+       "      <td>1</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>800 rows × 9 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                              name                  email  \\\n",
+       "student_id                                                                  \n",
+       "7c1bed42-3d12-4027-bdce-d3df0b9443b4                    hot_time@wisc.edu   \n",
+       "9434914d-88d0-4e64-b3b7-4e864635cfdb                  thick_love@wisc.edu   \n",
+       "6ad21c80-1853-4918-a6dc-a5814199b1c5                serious_door@wisc.edu   \n",
+       "15960bb8-bdc7-4c5e-83dc-99bb95c96f94                  young_time@wisc.edu   \n",
+       "5c82bf29-303e-4d29-b17b-4709933dbd4b                   calm_star@wisc.edu   \n",
+       "...                                            ...                    ...   \n",
+       "74cbaf6e-34e7-4dd0-b577-8164f1d525d7   young music   young_music@wisc.edu   \n",
+       "50c9efda-f01d-43ca-b79e-0dfd03199020   young ocean   young_ocean@wisc.edu   \n",
+       "ab58109e-5493-4893-a301-d85533255707   young river                          \n",
+       "8777e788-7e7e-4193-8f1a-deed767ecdca    young road    young_road@wisc.edu   \n",
+       "0e67e72c-55cd-4e66-8841-1daffb3f5204  young window  young_window@wisc.edu   \n",
+       "\n",
+       "                                         role  days_online  posts  answers  \\\n",
+       "student_id                                                                   \n",
+       "7c1bed42-3d12-4027-bdce-d3df0b9443b4  student           86      2        0   \n",
+       "9434914d-88d0-4e64-b3b7-4e864635cfdb  student           19      0        0   \n",
+       "6ad21c80-1853-4918-a6dc-a5814199b1c5  student            4      0        0   \n",
+       "15960bb8-bdc7-4c5e-83dc-99bb95c96f94  student          198      8        0   \n",
+       "5c82bf29-303e-4d29-b17b-4709933dbd4b  student           54      1        0   \n",
+       "...                                       ...          ...    ...      ...   \n",
+       "74cbaf6e-34e7-4dd0-b577-8164f1d525d7  student           25      1        0   \n",
+       "50c9efda-f01d-43ca-b79e-0dfd03199020  student          298      2        2   \n",
+       "ab58109e-5493-4893-a301-d85533255707       ta          143      0        0   \n",
+       "8777e788-7e7e-4193-8f1a-deed767ecdca  student           18      3        0   \n",
+       "0e67e72c-55cd-4e66-8841-1daffb3f5204  student           45      1        1   \n",
+       "\n",
+       "                                      edits  followups  replies_to_followups  \n",
+       "student_id                                                                    \n",
+       "7c1bed42-3d12-4027-bdce-d3df0b9443b4      0          0                     0  \n",
+       "9434914d-88d0-4e64-b3b7-4e864635cfdb      0          0                     0  \n",
+       "6ad21c80-1853-4918-a6dc-a5814199b1c5      0          0                     0  \n",
+       "15960bb8-bdc7-4c5e-83dc-99bb95c96f94      0          1                     0  \n",
+       "5c82bf29-303e-4d29-b17b-4709933dbd4b      0          0                     0  \n",
+       "...                                     ...        ...                   ...  \n",
+       "74cbaf6e-34e7-4dd0-b577-8164f1d525d7      0          0                     0  \n",
+       "50c9efda-f01d-43ca-b79e-0dfd03199020      2          0                     0  \n",
+       "ab58109e-5493-4893-a301-d85533255707      0          0                     0  \n",
+       "8777e788-7e7e-4193-8f1a-deed767ecdca      0          0                     0  \n",
+       "0e67e72c-55cd-4e66-8841-1daffb3f5204      0          0                     0  \n",
+       "\n",
+       "[800 rows x 9 columns]"
+      ]
+     },
+     "execution_count": 22,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Sort by name... What do we notice?\n",
+    "piazza_df.sort_values(\"name\") # Some names are missing!"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Not a Number\n",
+    "\n",
+    "- `np.NaN` is the floating point representation of Not a Number\n",
+    "- You do not need to know / learn the details about the `numpy` package \n",
+    "\n",
+    "### Replacing / modifying values within the `DataFrame`\n",
+    "\n",
+    "Syntax: `df.replace(<TARGET>, <REPLACE>)`\n",
+    "\n",
+    "Let's now replace the missing values (empty strings) with `np.NaN`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
+   "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>name</th>\n",
+       "      <th>email</th>\n",
+       "      <th>role</th>\n",
+       "      <th>days_online</th>\n",
+       "      <th>posts</th>\n",
+       "      <th>answers</th>\n",
+       "      <th>edits</th>\n",
+       "      <th>followups</th>\n",
+       "      <th>replies_to_followups</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student_id</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>bffd301b-3ab9-42d7-bfb1-e5d56117543a</th>\n",
+       "      <td>timid city</td>\n",
+       "      <td>timid_city@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>0fda0d07-ff49-4f6b-86de-c0e24ee211f1</th>\n",
+       "      <td>hard coffee</td>\n",
+       "      <td>hard_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4af54672-102f-4788-bbf0-e48a7e6b1e59</th>\n",
+       "      <td>hot love</td>\n",
+       "      <td>hot_love@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>295ee845-0eb7-44aa-acd6-8809dc6700fa</th>\n",
+       "      <td>funny house</td>\n",
+       "      <td>funny_house@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4f800f63-e006-436b-8aed-9ce43b48bf76</th>\n",
+       "      <td>calm student</td>\n",
+       "      <td>calm_student@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>f8b5c7f3-72a8-4831-ad08-1b21e277c5c6</th>\n",
+       "      <td>clean coffee</td>\n",
+       "      <td>clean_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>9</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>50a18796-c7ff-4a20-9f8f-30d9db075db5</th>\n",
+       "      <td>stale music</td>\n",
+       "      <td>stale_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>94</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>877efa7c-a88d-45f9-85b0-73b2378f493c</th>\n",
+       "      <td>wide music</td>\n",
+       "      <td>wide_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>47</td>\n",
+       "      <td>2</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3fd9b2c0-7974-4f14-896e-9b59dfda2bca</th>\n",
+       "      <td>thick country</td>\n",
+       "      <td>thick_country@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>85</td>\n",
+       "      <td>8</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>36e2dbd3-95c9-4ee7-8e02-db96656906df</th>\n",
+       "      <td>fast friend</td>\n",
+       "      <td>fast_friend@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>39</td>\n",
+       "      <td>3</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>800 rows × 9 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                               name                   email  \\\n",
+       "student_id                                                                    \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a     timid city     timid_city@wisc.edu   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1    hard coffee    hard_coffee@wisc.edu   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59       hot love       hot_love@wisc.edu   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa    funny house    funny_house@wisc.edu   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76   calm student   calm_student@wisc.edu   \n",
+       "...                                             ...                     ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6   clean coffee   clean_coffee@wisc.edu   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5    stale music    stale_music@wisc.edu   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c     wide music     wide_music@wisc.edu   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  thick country  thick_country@wisc.edu   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df    fast friend    fast_friend@wisc.edu   \n",
+       "\n",
+       "                                         role  days_online  posts  answers  \\\n",
+       "student_id                                                                   \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a  student            0      0        0   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1  student            0      0        0   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59  student            0      0        0   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa  student            0      0        0   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76  student            0      0        0   \n",
+       "...                                       ...          ...    ...      ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6  student            9      0        0   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5  student           94      1        0   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c  student           47      2        1   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  student           85      8        0   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df  student           39      3        0   \n",
+       "\n",
+       "                                      edits  followups  replies_to_followups  \n",
+       "student_id                                                                    \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a      0          0                     0  \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1      0          0                     0  \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59      0          0                     0  \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa      0          0                     0  \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76      0          0                     0  \n",
+       "...                                     ...        ...                   ...  \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6      0          0                     0  \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5      0          0                     0  \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c      0          1                     2  \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca      0          0                     0  \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df      0          0                     0  \n",
+       "\n",
+       "[800 rows x 9 columns]"
+      ]
+     },
+     "execution_count": 23,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Let's replace these empty strings with a special value.\n",
+    "piazza_df = piazza_df.replace(\"\", np.NaN)\n",
+    "piazza_df"
+   ]
+  },
+  {
+   "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>name</th>\n",
+       "      <th>email</th>\n",
+       "      <th>role</th>\n",
+       "      <th>days_online</th>\n",
+       "      <th>posts</th>\n",
+       "      <th>answers</th>\n",
+       "      <th>edits</th>\n",
+       "      <th>followups</th>\n",
+       "      <th>replies_to_followups</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student_id</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>d19df22f-6fe2-4bbb-8f6d-3fcbb3a31b8e</th>\n",
+       "      <td>ancient art</td>\n",
+       "      <td>ancient_art@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>97</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>808afa38-ed47-4760-aa74-5239aa741356</th>\n",
+       "      <td>ancient bridge</td>\n",
+       "      <td>ancient_bridge@wisc.edu</td>\n",
+       "      <td>instructor</td>\n",
+       "      <td>122</td>\n",
+       "      <td>1</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>d399cbd5-9a08-4c87-bb2b-007c25297790</th>\n",
+       "      <td>ancient bus</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>student</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>fc46cec5-3b41-4bf6-b720-ada21a1c800e</th>\n",
+       "      <td>ancient cat</td>\n",
+       "      <td>ancient_cat@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>96</td>\n",
+       "      <td>9</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>2</td>\n",
+       "      <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>021a54be-5de0-4cea-a003-ca4782bbb9cb</th>\n",
+       "      <td>ancient chair</td>\n",
+       "      <td>ancient_chair@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>19</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>9212f49b-40da-4bf9-87b0-a171ad32669d</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>ancient_river@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>198</td>\n",
+       "      <td>2</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>b5963cff-ffe0-460d-b356-d3ef5aa72a5b</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>instructor</td>\n",
+       "      <td>58</td>\n",
+       "      <td>0</td>\n",
+       "      <td>70</td>\n",
+       "      <td>7</td>\n",
+       "      <td>0</td>\n",
+       "      <td>4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>6c42a9e8-0b53-431d-9c49-1069c1b0e841</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>short_house@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>233</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>cf055ef8-4baa-4a43-851c-060e2e4f310d</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>noisy_bird@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>38</td>\n",
+       "      <td>9</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>d82d6135-8953-4521-ac93-cef0d01bf2b5</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>serious_sun@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>60</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>800 rows × 9 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                                name                    email  \\\n",
+       "student_id                                                                      \n",
+       "d19df22f-6fe2-4bbb-8f6d-3fcbb3a31b8e     ancient art     ancient_art@wisc.edu   \n",
+       "808afa38-ed47-4760-aa74-5239aa741356  ancient bridge  ancient_bridge@wisc.edu   \n",
+       "d399cbd5-9a08-4c87-bb2b-007c25297790     ancient bus                      NaN   \n",
+       "fc46cec5-3b41-4bf6-b720-ada21a1c800e     ancient cat     ancient_cat@wisc.edu   \n",
+       "021a54be-5de0-4cea-a003-ca4782bbb9cb   ancient chair   ancient_chair@wisc.edu   \n",
+       "...                                              ...                      ...   \n",
+       "9212f49b-40da-4bf9-87b0-a171ad32669d             NaN   ancient_river@wisc.edu   \n",
+       "b5963cff-ffe0-460d-b356-d3ef5aa72a5b             NaN                      NaN   \n",
+       "6c42a9e8-0b53-431d-9c49-1069c1b0e841             NaN     short_house@wisc.edu   \n",
+       "cf055ef8-4baa-4a43-851c-060e2e4f310d             NaN      noisy_bird@wisc.edu   \n",
+       "d82d6135-8953-4521-ac93-cef0d01bf2b5             NaN     serious_sun@wisc.edu   \n",
+       "\n",
+       "                                            role  days_online  posts  answers  \\\n",
+       "student_id                                                                      \n",
+       "d19df22f-6fe2-4bbb-8f6d-3fcbb3a31b8e     student           97      0        0   \n",
+       "808afa38-ed47-4760-aa74-5239aa741356  instructor          122      1        1   \n",
+       "d399cbd5-9a08-4c87-bb2b-007c25297790     student            1      0        0   \n",
+       "fc46cec5-3b41-4bf6-b720-ada21a1c800e     student           96      9        0   \n",
+       "021a54be-5de0-4cea-a003-ca4782bbb9cb     student           19      0        1   \n",
+       "...                                          ...          ...    ...      ...   \n",
+       "9212f49b-40da-4bf9-87b0-a171ad32669d     student          198      2        0   \n",
+       "b5963cff-ffe0-460d-b356-d3ef5aa72a5b  instructor           58      0       70   \n",
+       "6c42a9e8-0b53-431d-9c49-1069c1b0e841     student          233      0        1   \n",
+       "cf055ef8-4baa-4a43-851c-060e2e4f310d     student           38      9        0   \n",
+       "d82d6135-8953-4521-ac93-cef0d01bf2b5     student           60      1        0   \n",
+       "\n",
+       "                                      edits  followups  replies_to_followups  \n",
+       "student_id                                                                    \n",
+       "d19df22f-6fe2-4bbb-8f6d-3fcbb3a31b8e      0          0                     0  \n",
+       "808afa38-ed47-4760-aa74-5239aa741356      0          0                     0  \n",
+       "d399cbd5-9a08-4c87-bb2b-007c25297790      0          0                     0  \n",
+       "fc46cec5-3b41-4bf6-b720-ada21a1c800e      0          2                     1  \n",
+       "021a54be-5de0-4cea-a003-ca4782bbb9cb      0          0                     0  \n",
+       "...                                     ...        ...                   ...  \n",
+       "9212f49b-40da-4bf9-87b0-a171ad32669d      0          0                     0  \n",
+       "b5963cff-ffe0-460d-b356-d3ef5aa72a5b      7          0                     4  \n",
+       "6c42a9e8-0b53-431d-9c49-1069c1b0e841      0          0                     0  \n",
+       "cf055ef8-4baa-4a43-851c-060e2e4f310d      0          1                     1  \n",
+       "d82d6135-8953-4521-ac93-cef0d01bf2b5      0          0                     0  \n",
+       "\n",
+       "[800 rows x 9 columns]"
+      ]
+     },
+     "execution_count": 24,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Sort by name again... What do we notice?\n",
+    "piazza_df.sort_values(\"name\") # NaN's are at the end!"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Checking for missing values\n",
+    "\n",
+    "Syntax: `Series.isna()`\n",
+    "- Returns a boolean Series"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "student_id\n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a    False\n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1    False\n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59    False\n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa    False\n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76    False\n",
+       "                                        ...  \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6    False\n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5    False\n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c    False\n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca    False\n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df    False\n",
+       "Name: name, Length: 800, dtype: bool"
+      ]
+     },
+     "execution_count": 25,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Run isna() on the name column\n",
+    "piazza_df[\"name\"].isna()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "name\n",
+       "False    742\n",
+       "True      58\n",
+       "Name: count, dtype: int64"
+      ]
+     },
+     "execution_count": 26,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# How many people are missing a name?\n",
+    "piazza_df[\"name\"].isna().value_counts()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 27,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "email\n",
+       "False    741\n",
+       "True      59\n",
+       "Name: count, dtype: int64"
+      ]
+     },
+     "execution_count": 27,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# How many people are missing an email?\n",
+    "piazza_df[\"email\"].isna().value_counts()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 29,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "False    788\n",
+       "True      12\n",
+       "Name: count, dtype: int64"
+      ]
+     },
+     "execution_count": 29,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# How many people are missing both a name and email?\n",
+    "((piazza_df[\"name\"].isna()) & (piazza_df[\"email\"].isna())).value_counts()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 30,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "False    695\n",
+       "True     105\n",
+       "Name: count, dtype: int64"
+      ]
+     },
+     "execution_count": 30,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# How many people are missing either a name or email?\n",
+    "((piazza_df[\"name\"].isna()) | (piazza_df[\"email\"].isna())).value_counts()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 31,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# So... What do we do?\n",
+    "#  1. Drop those rows\n",
+    "#  2. Interpolate / Best Guess"
+   ]
+  },
+  {
+   "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>name</th>\n",
+       "      <th>email</th>\n",
+       "      <th>role</th>\n",
+       "      <th>days_online</th>\n",
+       "      <th>posts</th>\n",
+       "      <th>answers</th>\n",
+       "      <th>edits</th>\n",
+       "      <th>followups</th>\n",
+       "      <th>replies_to_followups</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student_id</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>bffd301b-3ab9-42d7-bfb1-e5d56117543a</th>\n",
+       "      <td>timid city</td>\n",
+       "      <td>timid_city@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>0fda0d07-ff49-4f6b-86de-c0e24ee211f1</th>\n",
+       "      <td>hard coffee</td>\n",
+       "      <td>hard_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4af54672-102f-4788-bbf0-e48a7e6b1e59</th>\n",
+       "      <td>hot love</td>\n",
+       "      <td>hot_love@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>295ee845-0eb7-44aa-acd6-8809dc6700fa</th>\n",
+       "      <td>funny house</td>\n",
+       "      <td>funny_house@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4f800f63-e006-436b-8aed-9ce43b48bf76</th>\n",
+       "      <td>calm student</td>\n",
+       "      <td>calm_student@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>f8b5c7f3-72a8-4831-ad08-1b21e277c5c6</th>\n",
+       "      <td>clean coffee</td>\n",
+       "      <td>clean_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>9</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>50a18796-c7ff-4a20-9f8f-30d9db075db5</th>\n",
+       "      <td>stale music</td>\n",
+       "      <td>stale_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>94</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>877efa7c-a88d-45f9-85b0-73b2378f493c</th>\n",
+       "      <td>wide music</td>\n",
+       "      <td>wide_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>47</td>\n",
+       "      <td>2</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3fd9b2c0-7974-4f14-896e-9b59dfda2bca</th>\n",
+       "      <td>thick country</td>\n",
+       "      <td>thick_country@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>85</td>\n",
+       "      <td>8</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>36e2dbd3-95c9-4ee7-8e02-db96656906df</th>\n",
+       "      <td>fast friend</td>\n",
+       "      <td>fast_friend@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>39</td>\n",
+       "      <td>3</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>695 rows × 9 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                               name                   email  \\\n",
+       "student_id                                                                    \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a     timid city     timid_city@wisc.edu   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1    hard coffee    hard_coffee@wisc.edu   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59       hot love       hot_love@wisc.edu   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa    funny house    funny_house@wisc.edu   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76   calm student   calm_student@wisc.edu   \n",
+       "...                                             ...                     ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6   clean coffee   clean_coffee@wisc.edu   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5    stale music    stale_music@wisc.edu   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c     wide music     wide_music@wisc.edu   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  thick country  thick_country@wisc.edu   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df    fast friend    fast_friend@wisc.edu   \n",
+       "\n",
+       "                                         role  days_online  posts  answers  \\\n",
+       "student_id                                                                   \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a  student            0      0        0   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1  student            0      0        0   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59  student            0      0        0   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa  student            0      0        0   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76  student            0      0        0   \n",
+       "...                                       ...          ...    ...      ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6  student            9      0        0   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5  student           94      1        0   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c  student           47      2        1   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  student           85      8        0   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df  student           39      3        0   \n",
+       "\n",
+       "                                      edits  followups  replies_to_followups  \n",
+       "student_id                                                                    \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a      0          0                     0  \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1      0          0                     0  \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59      0          0                     0  \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa      0          0                     0  \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76      0          0                     0  \n",
+       "...                                     ...        ...                   ...  \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6      0          0                     0  \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5      0          0                     0  \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c      0          1                     2  \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca      0          0                     0  \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df      0          0                     0  \n",
+       "\n",
+       "[695 rows x 9 columns]"
+      ]
+     },
+     "execution_count": 32,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Option 1: Drop those rows.\n",
+    "pure_piazza_df = piazza_df.dropna()\n",
+    "pure_piazza_df"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 33,
+   "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>name</th>\n",
+       "      <th>email</th>\n",
+       "      <th>role</th>\n",
+       "      <th>days_online</th>\n",
+       "      <th>posts</th>\n",
+       "      <th>answers</th>\n",
+       "      <th>edits</th>\n",
+       "      <th>followups</th>\n",
+       "      <th>replies_to_followups</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student_id</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>bffd301b-3ab9-42d7-bfb1-e5d56117543a</th>\n",
+       "      <td>timid city</td>\n",
+       "      <td>timid_city@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>0fda0d07-ff49-4f6b-86de-c0e24ee211f1</th>\n",
+       "      <td>hard coffee</td>\n",
+       "      <td>hard_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4af54672-102f-4788-bbf0-e48a7e6b1e59</th>\n",
+       "      <td>hot love</td>\n",
+       "      <td>hot_love@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>295ee845-0eb7-44aa-acd6-8809dc6700fa</th>\n",
+       "      <td>funny house</td>\n",
+       "      <td>funny_house@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4f800f63-e006-436b-8aed-9ce43b48bf76</th>\n",
+       "      <td>calm student</td>\n",
+       "      <td>calm_student@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>f8b5c7f3-72a8-4831-ad08-1b21e277c5c6</th>\n",
+       "      <td>clean coffee</td>\n",
+       "      <td>clean_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>9</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>50a18796-c7ff-4a20-9f8f-30d9db075db5</th>\n",
+       "      <td>stale music</td>\n",
+       "      <td>stale_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>94</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>877efa7c-a88d-45f9-85b0-73b2378f493c</th>\n",
+       "      <td>wide music</td>\n",
+       "      <td>wide_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>47</td>\n",
+       "      <td>2</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3fd9b2c0-7974-4f14-896e-9b59dfda2bca</th>\n",
+       "      <td>thick country</td>\n",
+       "      <td>thick_country@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>85</td>\n",
+       "      <td>8</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>36e2dbd3-95c9-4ee7-8e02-db96656906df</th>\n",
+       "      <td>fast friend</td>\n",
+       "      <td>fast_friend@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>39</td>\n",
+       "      <td>3</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>800 rows × 9 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                               name                   email  \\\n",
+       "student_id                                                                    \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a     timid city     timid_city@wisc.edu   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1    hard coffee    hard_coffee@wisc.edu   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59       hot love       hot_love@wisc.edu   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa    funny house    funny_house@wisc.edu   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76   calm student   calm_student@wisc.edu   \n",
+       "...                                             ...                     ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6   clean coffee   clean_coffee@wisc.edu   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5    stale music    stale_music@wisc.edu   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c     wide music     wide_music@wisc.edu   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  thick country  thick_country@wisc.edu   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df    fast friend    fast_friend@wisc.edu   \n",
+       "\n",
+       "                                         role  days_online  posts  answers  \\\n",
+       "student_id                                                                   \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a  student            0      0        0   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1  student            0      0        0   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59  student            0      0        0   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa  student            0      0        0   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76  student            0      0        0   \n",
+       "...                                       ...          ...    ...      ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6  student            9      0        0   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5  student           94      1        0   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c  student           47      2        1   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  student           85      8        0   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df  student           39      3        0   \n",
+       "\n",
+       "                                      edits  followups  replies_to_followups  \n",
+       "student_id                                                                    \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a      0          0                     0  \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1      0          0                     0  \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59      0          0                     0  \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa      0          0                     0  \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76      0          0                     0  \n",
+       "...                                     ...        ...                   ...  \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6      0          0                     0  \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5      0          0                     0  \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c      0          1                     2  \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca      0          0                     0  \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df      0          0                     0  \n",
+       "\n",
+       "[800 rows x 9 columns]"
+      ]
+     },
+     "execution_count": 33,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Option 2a: Interpolate / Best Guess\n",
+    "anon_piazza_df = piazza_df.fillna(\"Anonymous\")\n",
+    "anon_piazza_df"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 34,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'calm star'"
+      ]
+     },
+     "execution_count": 34,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Create a function to take an email (e.g. \"calm_star@wisc.edu\")\n",
+    "# and return the name (e.g. \"calm star\")\n",
+    "def parse_name_from_email(email):\n",
+    "    if pd.isna(email):\n",
+    "        return np.nan\n",
+    "    else:\n",
+    "        return email.split(\"@\")[0].replace(\"_\", \" \")\n",
+    "\n",
+    "# Test your function!\n",
+    "parse_name_from_email(\"calm_star@wisc.edu\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Review: `Pandas.Series.apply(...)`\n",
+    "Syntax: `Series.apply(<FUNCTION OBJECT REFERENCE>)`\n",
+    "- applies input function to every element of the Series.\n",
+    "- Returns a new `Series`"
+   ]
+  },
+  {
+   "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>name</th>\n",
+       "      <th>email</th>\n",
+       "      <th>role</th>\n",
+       "      <th>days_online</th>\n",
+       "      <th>posts</th>\n",
+       "      <th>answers</th>\n",
+       "      <th>edits</th>\n",
+       "      <th>followups</th>\n",
+       "      <th>replies_to_followups</th>\n",
+       "      <th>guessed_name</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student_id</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>bffd301b-3ab9-42d7-bfb1-e5d56117543a</th>\n",
+       "      <td>timid city</td>\n",
+       "      <td>timid_city@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>timid city</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>0fda0d07-ff49-4f6b-86de-c0e24ee211f1</th>\n",
+       "      <td>hard coffee</td>\n",
+       "      <td>hard_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>hard coffee</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4af54672-102f-4788-bbf0-e48a7e6b1e59</th>\n",
+       "      <td>hot love</td>\n",
+       "      <td>hot_love@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>hot love</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>295ee845-0eb7-44aa-acd6-8809dc6700fa</th>\n",
+       "      <td>funny house</td>\n",
+       "      <td>funny_house@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>funny house</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4f800f63-e006-436b-8aed-9ce43b48bf76</th>\n",
+       "      <td>calm student</td>\n",
+       "      <td>calm_student@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>calm student</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>f8b5c7f3-72a8-4831-ad08-1b21e277c5c6</th>\n",
+       "      <td>clean coffee</td>\n",
+       "      <td>clean_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>9</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>clean coffee</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>50a18796-c7ff-4a20-9f8f-30d9db075db5</th>\n",
+       "      <td>stale music</td>\n",
+       "      <td>stale_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>94</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>stale music</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>877efa7c-a88d-45f9-85b0-73b2378f493c</th>\n",
+       "      <td>wide music</td>\n",
+       "      <td>wide_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>47</td>\n",
+       "      <td>2</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>2</td>\n",
+       "      <td>wide music</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3fd9b2c0-7974-4f14-896e-9b59dfda2bca</th>\n",
+       "      <td>thick country</td>\n",
+       "      <td>thick_country@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>85</td>\n",
+       "      <td>8</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>thick country</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>36e2dbd3-95c9-4ee7-8e02-db96656906df</th>\n",
+       "      <td>fast friend</td>\n",
+       "      <td>fast_friend@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>39</td>\n",
+       "      <td>3</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>fast friend</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>800 rows × 10 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                               name                   email  \\\n",
+       "student_id                                                                    \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a     timid city     timid_city@wisc.edu   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1    hard coffee    hard_coffee@wisc.edu   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59       hot love       hot_love@wisc.edu   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa    funny house    funny_house@wisc.edu   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76   calm student   calm_student@wisc.edu   \n",
+       "...                                             ...                     ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6   clean coffee   clean_coffee@wisc.edu   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5    stale music    stale_music@wisc.edu   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c     wide music     wide_music@wisc.edu   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  thick country  thick_country@wisc.edu   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df    fast friend    fast_friend@wisc.edu   \n",
+       "\n",
+       "                                         role  days_online  posts  answers  \\\n",
+       "student_id                                                                   \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a  student            0      0        0   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1  student            0      0        0   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59  student            0      0        0   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa  student            0      0        0   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76  student            0      0        0   \n",
+       "...                                       ...          ...    ...      ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6  student            9      0        0   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5  student           94      1        0   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c  student           47      2        1   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  student           85      8        0   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df  student           39      3        0   \n",
+       "\n",
+       "                                      edits  followups  replies_to_followups  \\\n",
+       "student_id                                                                     \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a      0          0                     0   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1      0          0                     0   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59      0          0                     0   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa      0          0                     0   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76      0          0                     0   \n",
+       "...                                     ...        ...                   ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6      0          0                     0   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5      0          0                     0   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c      0          1                     2   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca      0          0                     0   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df      0          0                     0   \n",
+       "\n",
+       "                                       guessed_name  \n",
+       "student_id                                           \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a     timid city  \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1    hard coffee  \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59       hot love  \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa    funny house  \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76   calm student  \n",
+       "...                                             ...  \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6   clean coffee  \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5    stale music  \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c     wide music  \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  thick country  \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df    fast friend  \n",
+       "\n",
+       "[800 rows x 10 columns]"
+      ]
+     },
+     "execution_count": 35,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Now, apply that function to each value in email!\n",
+    "piazza_df[\"guessed_name\"] = piazza_df[\"email\"].apply(parse_name_from_email)\n",
+    "piazza_df"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 36,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'calm_star@wisc.edu'"
+      ]
+     },
+     "execution_count": 36,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Create a function to take a name (e.g. \"calm star\")\n",
+    "# and return the email (e.g. \"calm_star@wisc.edu\")\n",
+    "def parse_email_from_name(name):\n",
+    "    if pd.isna(name):\n",
+    "        return np.nan\n",
+    "    else:\n",
+    "        return name.replace(\" \", \"_\") + \"@wisc.edu\"\n",
+    "\n",
+    "# Test your function!\n",
+    "parse_email_from_name(\"calm star\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 37,
+   "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>name</th>\n",
+       "      <th>email</th>\n",
+       "      <th>role</th>\n",
+       "      <th>days_online</th>\n",
+       "      <th>posts</th>\n",
+       "      <th>answers</th>\n",
+       "      <th>edits</th>\n",
+       "      <th>followups</th>\n",
+       "      <th>replies_to_followups</th>\n",
+       "      <th>guessed_name</th>\n",
+       "      <th>guessed_email</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student_id</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>bffd301b-3ab9-42d7-bfb1-e5d56117543a</th>\n",
+       "      <td>timid city</td>\n",
+       "      <td>timid_city@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>timid city</td>\n",
+       "      <td>timid_city@wisc.edu</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>0fda0d07-ff49-4f6b-86de-c0e24ee211f1</th>\n",
+       "      <td>hard coffee</td>\n",
+       "      <td>hard_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>hard coffee</td>\n",
+       "      <td>hard_coffee@wisc.edu</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4af54672-102f-4788-bbf0-e48a7e6b1e59</th>\n",
+       "      <td>hot love</td>\n",
+       "      <td>hot_love@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>hot love</td>\n",
+       "      <td>hot_love@wisc.edu</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>295ee845-0eb7-44aa-acd6-8809dc6700fa</th>\n",
+       "      <td>funny house</td>\n",
+       "      <td>funny_house@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>funny house</td>\n",
+       "      <td>funny_house@wisc.edu</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4f800f63-e006-436b-8aed-9ce43b48bf76</th>\n",
+       "      <td>calm student</td>\n",
+       "      <td>calm_student@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>calm student</td>\n",
+       "      <td>calm_student@wisc.edu</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>f8b5c7f3-72a8-4831-ad08-1b21e277c5c6</th>\n",
+       "      <td>clean coffee</td>\n",
+       "      <td>clean_coffee@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>9</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>clean coffee</td>\n",
+       "      <td>clean_coffee@wisc.edu</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>50a18796-c7ff-4a20-9f8f-30d9db075db5</th>\n",
+       "      <td>stale music</td>\n",
+       "      <td>stale_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>94</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>stale music</td>\n",
+       "      <td>stale_music@wisc.edu</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>877efa7c-a88d-45f9-85b0-73b2378f493c</th>\n",
+       "      <td>wide music</td>\n",
+       "      <td>wide_music@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>47</td>\n",
+       "      <td>2</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>2</td>\n",
+       "      <td>wide music</td>\n",
+       "      <td>wide_music@wisc.edu</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3fd9b2c0-7974-4f14-896e-9b59dfda2bca</th>\n",
+       "      <td>thick country</td>\n",
+       "      <td>thick_country@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>85</td>\n",
+       "      <td>8</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>thick country</td>\n",
+       "      <td>thick_country@wisc.edu</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>36e2dbd3-95c9-4ee7-8e02-db96656906df</th>\n",
+       "      <td>fast friend</td>\n",
+       "      <td>fast_friend@wisc.edu</td>\n",
+       "      <td>student</td>\n",
+       "      <td>39</td>\n",
+       "      <td>3</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>fast friend</td>\n",
+       "      <td>fast_friend@wisc.edu</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>800 rows × 11 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                               name                   email  \\\n",
+       "student_id                                                                    \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a     timid city     timid_city@wisc.edu   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1    hard coffee    hard_coffee@wisc.edu   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59       hot love       hot_love@wisc.edu   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa    funny house    funny_house@wisc.edu   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76   calm student   calm_student@wisc.edu   \n",
+       "...                                             ...                     ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6   clean coffee   clean_coffee@wisc.edu   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5    stale music    stale_music@wisc.edu   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c     wide music     wide_music@wisc.edu   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  thick country  thick_country@wisc.edu   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df    fast friend    fast_friend@wisc.edu   \n",
+       "\n",
+       "                                         role  days_online  posts  answers  \\\n",
+       "student_id                                                                   \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a  student            0      0        0   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1  student            0      0        0   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59  student            0      0        0   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa  student            0      0        0   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76  student            0      0        0   \n",
+       "...                                       ...          ...    ...      ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6  student            9      0        0   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5  student           94      1        0   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c  student           47      2        1   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  student           85      8        0   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df  student           39      3        0   \n",
+       "\n",
+       "                                      edits  followups  replies_to_followups  \\\n",
+       "student_id                                                                     \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a      0          0                     0   \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1      0          0                     0   \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59      0          0                     0   \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa      0          0                     0   \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76      0          0                     0   \n",
+       "...                                     ...        ...                   ...   \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6      0          0                     0   \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5      0          0                     0   \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c      0          1                     2   \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca      0          0                     0   \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df      0          0                     0   \n",
+       "\n",
+       "                                       guessed_name           guessed_email  \n",
+       "student_id                                                                   \n",
+       "bffd301b-3ab9-42d7-bfb1-e5d56117543a     timid city     timid_city@wisc.edu  \n",
+       "0fda0d07-ff49-4f6b-86de-c0e24ee211f1    hard coffee    hard_coffee@wisc.edu  \n",
+       "4af54672-102f-4788-bbf0-e48a7e6b1e59       hot love       hot_love@wisc.edu  \n",
+       "295ee845-0eb7-44aa-acd6-8809dc6700fa    funny house    funny_house@wisc.edu  \n",
+       "4f800f63-e006-436b-8aed-9ce43b48bf76   calm student   calm_student@wisc.edu  \n",
+       "...                                             ...                     ...  \n",
+       "f8b5c7f3-72a8-4831-ad08-1b21e277c5c6   clean coffee   clean_coffee@wisc.edu  \n",
+       "50a18796-c7ff-4a20-9f8f-30d9db075db5    stale music    stale_music@wisc.edu  \n",
+       "877efa7c-a88d-45f9-85b0-73b2378f493c     wide music     wide_music@wisc.edu  \n",
+       "3fd9b2c0-7974-4f14-896e-9b59dfda2bca  thick country  thick_country@wisc.edu  \n",
+       "36e2dbd3-95c9-4ee7-8e02-db96656906df    fast friend    fast_friend@wisc.edu  \n",
+       "\n",
+       "[800 rows x 11 columns]"
+      ]
+     },
+     "execution_count": 37,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Now, apply that function to each value in name!\n",
+    "piazza_df[\"guessed_email\"] = piazza_df[\"name\"].apply(parse_email_from_name)\n",
+    "piazza_df"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### `Pandas.DataFrame.apply(...)`\n",
+    "Syntax: `DataFrame.apply(<FUNCTION OBJECT REFERENCE>, axis=1)`\n",
+    "- `axis=1` means apply to each row.\n",
+    "- returns a new `Series`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# If the name has a value, use it, otherwise use our best guess!\n",
+    "piazza_df[\"name\"] = piazza_df.apply(lambda r : r[\"guessed_name\"] if pd.isna(r[\"name\"]) else r[\"name\"], axis=1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Same thing for email!\n",
+    "piazza_df[\"email\"] = piazza_df.apply(lambda r : r[\"guessed_email\"] if pd.isna(r[\"email\"]) else r[\"email\"], axis=1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Drop the guessing columns\n",
+    "piazza_df = piazza_df.drop(\"guessed_name\", axis=1)\n",
+    "piazza_df = piazza_df.drop(\"guessed_email\", axis=1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# How many rows are missing data now?\n",
+    "len(piazza_df.dropna()) # only 12!"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Give a name of \"anonymous\" and email of \"anonymous@wisc.edu\"\n",
+    "# to anyone with left with missing data.\n",
+    "piazza_df[\"name\"] = piazza_df[\"name\"].fillna(\"anonymous\")\n",
+    "piazza_df[\"email\"] = piazza_df[\"email\"].fillna(\"anonymous@wisc.edu\")\n",
+    "len(piazza_df)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### `Pandas.DataFrame.groupby(...)`\n",
+    "\n",
+    "Syntax: `DataFrame.groupby(<COLUMN>)`\n",
+    "- Returns a `groupby` object\n",
+    "- Need to apply aggregation functions to use the return value of `groupby`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "<pandas.core.groupby.generic.DataFrameGroupBy object at 0x748f28ccfd50>"
+      ]
+     },
+     "execution_count": 39,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# What does this return?\n",
+    "piazza_df.groupby(\"role\") # a groupby object!"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 42,
+   "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>days_online</th>\n",
+       "      <th>posts</th>\n",
+       "      <th>answers</th>\n",
+       "      <th>edits</th>\n",
+       "      <th>followups</th>\n",
+       "      <th>replies_to_followups</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>role</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>instructor</th>\n",
+       "      <td>181.333333</td>\n",
+       "      <td>5.000000</td>\n",
+       "      <td>63.916667</td>\n",
+       "      <td>18.750000</td>\n",
+       "      <td>10.916667</td>\n",
+       "      <td>16.083333</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student</th>\n",
+       "      <td>80.493386</td>\n",
+       "      <td>2.124339</td>\n",
+       "      <td>0.457672</td>\n",
+       "      <td>0.125661</td>\n",
+       "      <td>0.488095</td>\n",
+       "      <td>0.412698</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ta</th>\n",
+       "      <td>146.062500</td>\n",
+       "      <td>1.343750</td>\n",
+       "      <td>21.500000</td>\n",
+       "      <td>6.500000</td>\n",
+       "      <td>4.375000</td>\n",
+       "      <td>6.500000</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "            days_online     posts    answers      edits  followups  \\\n",
+       "role                                                                 \n",
+       "instructor   181.333333  5.000000  63.916667  18.750000  10.916667   \n",
+       "student       80.493386  2.124339   0.457672   0.125661   0.488095   \n",
+       "ta           146.062500  1.343750  21.500000   6.500000   4.375000   \n",
+       "\n",
+       "            replies_to_followups  \n",
+       "role                              \n",
+       "instructor             16.083333  \n",
+       "student                 0.412698  \n",
+       "ta                      6.500000  "
+      ]
+     },
+     "execution_count": 42,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Try getting the \"mean\" of this groupby object.\n",
+    "piazza_df.groupby(\"role\").mean(numeric_only=True)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 43,
+   "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>answers</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>role</th>\n",
+       "      <th></th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>instructor</th>\n",
+       "      <td>63.916667</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student</th>\n",
+       "      <td>0.457672</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ta</th>\n",
+       "      <td>21.500000</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "              answers\n",
+       "role                 \n",
+       "instructor  63.916667\n",
+       "student      0.457672\n",
+       "ta          21.500000"
+      ]
+     },
+     "execution_count": 43,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# How many answers does the average instructor, student, and TA give?\n",
+    "piazza_df[[\"role\", \"answers\"]].groupby(\"role\").mean()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 45,
+   "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>role</th>\n",
+       "      <th>AVG(answers)</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>instructor</td>\n",
+       "      <td>63.916667</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>student</td>\n",
+       "      <td>0.457672</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>ta</td>\n",
+       "      <td>21.500000</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "         role  AVG(answers)\n",
+       "0  instructor     63.916667\n",
+       "1     student      0.457672\n",
+       "2          ta     21.500000"
+      ]
+     },
+     "execution_count": 45,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# How would we write this in SQL?\n",
+    "qry(\"\"\"\n",
+    "SELECT role, AVG(answers)\n",
+    "FROM piazza\n",
+    "GROUP BY role\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 46,
+   "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>days_online</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>role</th>\n",
+       "      <th></th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>instructor</th>\n",
+       "      <td>2176</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ta</th>\n",
+       "      <td>4674</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>student</th>\n",
+       "      <td>60853</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "            days_online\n",
+       "role                   \n",
+       "instructor         2176\n",
+       "ta                 4674\n",
+       "student           60853"
+      ]
+     },
+     "execution_count": 46,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# What is the total number of days spent online for instructors, students, and TAs?\n",
+    "# Order your answer from lowest to highest\n",
+    "piazza_df[[\"role\", \"days_online\"]].groupby(\"role\").sum().sort_values(\"days_online\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 47,
+   "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>role</th>\n",
+       "      <th>AvgDaysOnline</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>instructor</td>\n",
+       "      <td>2176</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>ta</td>\n",
+       "      <td>4674</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>student</td>\n",
+       "      <td>60853</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "         role  AvgDaysOnline\n",
+       "0  instructor           2176\n",
+       "1          ta           4674\n",
+       "2     student          60853"
+      ]
+     },
+     "execution_count": 47,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# How would we write this in SQL?\n",
+    "qry(\"\"\"\n",
+    "SELECT role, SUM(days_online) as AvgDaysOnline\n",
+    "FROM piazza\n",
+    "GROUP BY role\n",
+    "ORDER BY AvgDaysOnline\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 48,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "3.2086614173228347 1.6373626373626373\n",
+      "\n",
+      "               posts\n",
+      "role                \n",
+      "instructor  7.375000\n",
+      "student     3.200893\n",
+      "ta          1.772727\n",
+      "               posts\n",
+      "role                \n",
+      "instructor  0.250000\n",
+      "student     1.671053\n",
+      "ta          0.400000\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Of those individuals who spend less than 100 days online,\n",
+    "# how does their average number of posts compare to those that\n",
+    "# spend 100 days or more online? Do your analysis by role as well.\n",
+    "\n",
+    "less_than_100 = piazza_df[piazza_df[\"days_online\"] < 100]\n",
+    "more_than_100 = piazza_df[piazza_df[\"days_online\"] >= 100]\n",
+    "\n",
+    "# In general, they post less...\n",
+    "print(more_than_100[\"posts\"].mean(), less_than_100[\"posts\"].mean())\n",
+    "print()\n",
+    "\n",
+    "# ... and this is also generally true.\n",
+    "print(more_than_100[[\"role\", \"posts\"]].groupby(\"role\").mean())\n",
+    "print(less_than_100[[\"role\", \"posts\"]].groupby(\"role\").mean())"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 49,
+   "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>role</th>\n",
+       "      <th>AvgPosts</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>instructor</td>\n",
+       "      <td>0.250000</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>student</td>\n",
+       "      <td>1.671053</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>ta</td>\n",
+       "      <td>0.400000</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "         role  AvgPosts\n",
+       "0  instructor  0.250000\n",
+       "1     student  1.671053\n",
+       "2          ta  0.400000"
+      ]
+     },
+     "execution_count": 49,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# How would we write this in SQL?\n",
+    "qry(\"\"\"\n",
+    "SELECT role, AVG(posts) as AvgPosts\n",
+    "FROM piazza\n",
+    "WHERE days_online < 100\n",
+    "GROUP BY role\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 50,
+   "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>role</th>\n",
+       "      <th>AvgPosts</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>instructor</td>\n",
+       "      <td>7.375000</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>student</td>\n",
+       "      <td>3.200893</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>ta</td>\n",
+       "      <td>1.772727</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "         role  AvgPosts\n",
+       "0  instructor  7.375000\n",
+       "1     student  3.200893\n",
+       "2          ta  1.772727"
+      ]
+     },
+     "execution_count": 50,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "qry(\"\"\"\n",
+    "SELECT role, AVG(posts) as AvgPosts\n",
+    "FROM piazza\n",
+    "WHERE days_online >= 100\n",
+    "GROUP BY role\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 51,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "role\n",
+       "student       53.968254\n",
+       "ta            62.500000\n",
+       "instructor    41.666667\n",
+       "Name: count, dtype: float64"
+      ]
+     },
+     "execution_count": 51,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# What percentage of instructors, students, and TAs did not write a single answer,\n",
+    "# followup, or reply to a followup?\n",
+    "no_answers = piazza_df[(piazza_df[\"answers\"] == 0) & (piazza_df[\"followups\"] == 0) & (piazza_df[\"replies_to_followups\"] == 0)]\n",
+    "no_answers[\"role\"].value_counts() / piazza_df[\"role\"].value_counts() * 100"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# How would we write this in SQL?\n",
+    "# The best we can write (without knowing subqueries) is how many!\n",
+    "qry(\"\"\"\n",
+    "SELECT role, COUNT(*)\n",
+    "FROM piazza\n",
+    "WHERE answers = 0 AND followups = 0 AND replies_to_followups = 0\n",
+    "GROUP BY role\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# ... and then compare this with the total #!\n",
+    "qry(\"\"\"\n",
+    "SELECT role, COUNT(*)\n",
+    "FROM piazza\n",
+    "GROUP BY role\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "conn.close()"
+   ]
+  }
+ ],
+ "metadata": {
+  "colab": {
+   "provenance": []
+  },
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.11.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/s24/Louis_Lecture_Notes/37_AdvPandas/Lec37_AdvPandas_Template_Oliphant.ipynb b/s24/Louis_Lecture_Notes/37_AdvPandas/Lec37_AdvPandas_Template_Oliphant.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..53bb671819afae723e8e992c2e66f224fc4ee398
--- /dev/null
+++ b/s24/Louis_Lecture_Notes/37_AdvPandas/Lec37_AdvPandas_Template_Oliphant.ipynb
@@ -0,0 +1,590 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Advanced Pandas"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "CeWtFirwteFY"
+   },
+   "outputs": [],
+   "source": [
+    "# known import statements\n",
+    "import pandas as pd\n",
+    "import sqlite3\n",
+    "import os\n",
+    "\n",
+    "# new import statement\n",
+    "import numpy as np"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Get the Piazza data from 'piazza.db'\n",
+    "\n",
+    "db_name = \"piazza.db\"\n",
+    "assert os.path.exists(db_name)\n",
+    "conn = sqlite3.connect(db_name)\n",
+    "\n",
+    "def qry(sql):\n",
+    "    return pd.read_sql(sql, conn)\n",
+    "\n",
+    "df = qry(\"\"\"\n",
+    "    SELECT *\n",
+    "    FROM sqlite_master\n",
+    "    WHERE type='table'\n",
+    "\"\"\")\n",
+    "print(df.iloc[0]['sql'])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "piazza_df = pd.read_sql(\"\"\"\n",
+    "    SELECT *\n",
+    "    FROM piazza\n",
+    "\"\"\", conn)\n",
+    "piazza_df.head(5)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 1: Set the student id column as the index\n",
+    "piazza_df = piazza_df.set_index(\"student_id\")\n",
+    "piazza_df"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 2a: Which 10 students post the most?\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 2b: Can you plot their number of posts as a bar graph? Be sure to label your axes!\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 2c: How about with their name rather than their student id?\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 3a: Which people had more than 10 answers? Include all roles.  Store the results in a dataframe named top_answers\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 3b: Plot this as a bar graph.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 3c: Plot the contributions of the various roles as a bar graph.\n",
+    "top_answers[\"role\"].value_counts().plot.bar()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 3d: Can you get this same data using SQL?\n",
+    "qry(\"\"\"\n",
+    "\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 3e: What about their average # of days online as well?\n",
+    "qry(\"\"\"\n",
+    "\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 3f: Can we do that in Pandas as well?\n",
+    "# TODAY'S TOPIC"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "yoLGptrqhbBo"
+   },
+   "source": [
+    "# Today's Learning Objectives: \n",
+    "\n",
+    "* Setting column as index for pandas `DataFrame`\n",
+    "* Identify, drop, or fill missing values (`np.NaN`) using Pandas `isna`, `dropna`, and `fillna`\n",
+    "* Applying transformations to `DataFrame`:\n",
+    "  * Use `apply` on pandas `Series` to apply a transformation function\n",
+    "  * Use `replace` to replace all target values in Pandas `Series` and `DataFrame` rows / columns\n",
+    "* Filter, aggregate, group, and summarize information in a `DataFrame` with `groupby`\n",
+    "* Convert .groupby examples to SQL\n",
+    "* Solving the same question using SQL and pandas `DataFrame` manipulations:\n",
+    "  * filtering, grouping, and aggregation / summarization"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Sort by name... What do we notice?\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Not a Number\n",
+    "\n",
+    "- `np.NaN` is the floating point representation of Not a Number\n",
+    "- You do not need to know / learn the details about the `numpy` package \n",
+    "\n",
+    "### Replacing / modifying values within the `DataFrame`\n",
+    "\n",
+    "Syntax: `df.replace(<TARGET>, <REPLACE>)`\n",
+    "\n",
+    "Let's now replace the missing values (empty strings) with `np.NaN`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Let's replace these empty strings with a special value.\n",
+    "piazza_df = ???\n",
+    "piazza_df"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Sort by name again... What do we notice?\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Checking for missing values\n",
+    "\n",
+    "Syntax: `Series.isna()`\n",
+    "- Returns a boolean Series"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Run isna() on the name column\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# How many people are missing a name?\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# How many people are missing an email?\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# How many people are missing both a name and email?\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# How many people are missing either a name or email?\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# So... What do we do?\n",
+    "#  1. Drop those rows\n",
+    "#  2. Interpolate / Best Guess"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Option 1: Drop those rows.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Option 2a: Interpolate / Best Guess\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Create a function to take an email (e.g. \"calm_star@wisc.edu\")\n",
+    "# and return the name (e.g. \"calm star\")\n",
+    "def parse_name_from_email(email):\n",
+    "    if pd.isna(email):\n",
+    "        return np.nan\n",
+    "    else:\n",
+    "        pass # TODO Parse out the name!\n",
+    "\n",
+    "# Test your function!\n",
+    "parse_name_from_email(\"calm_star@wisc.edu\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Review: `Pandas.Series.apply(...)`\n",
+    "Syntax: `Series.apply(<FUNCTION OBJECT REFERENCE>)`\n",
+    "- applies input function to every element of the Series.\n",
+    "- Returns a new `Series`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Now, apply that function to each value in email!\n",
+    "piazza_df[\"guessed_name\"] = ???\n",
+    "piazza_df"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Create a function to take a name (e.g. \"calm star\")\n",
+    "# and return the email (e.g. \"calm_star@wisc.edu\")\n",
+    "def parse_email_from_name(name):\n",
+    "    pass\n",
+    "\n",
+    "# Test your function!\n",
+    "parse_email_from_name(\"calm star\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Now, apply that function to each value in name!\n",
+    "piazza_df[\"guessed_email\"] = ???\n",
+    "piazza_df"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### `Pandas.DataFrame.apply(...)`\n",
+    "Syntax: `DataFrame.apply(<FUNCTION OBJECT REFERENCE>, axis=1)`\n",
+    "- `axis=1` means apply to each row.\n",
+    "- returns a new `Series`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# If the name has a value, use it, otherwise use our best guess!\n",
+    "piazza_df[\"name\"] = piazza_df.apply(lambda r : r[\"guessed_name\"] if pd.isna(r[\"name\"]) else r[\"name\"], axis=1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Same thing for email!\n",
+    "piazza_df[\"email\"] = piazza_df.apply(lambda r : r[\"guessed_email\"] if pd.isna(r[\"email\"]) else r[\"email\"], axis=1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Drop the guessing columns\n",
+    "piazza_df = piazza_df.drop(\"guessed_name\", axis=1)\n",
+    "piazza_df = piazza_df.drop(\"guessed_email\", axis=1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# How many rows are missing data now?\n",
+    "len(piazza_df.dropna())"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Give a name of \"anonymous\" and email of \"anonymous@wisc.edu\"\n",
+    "# to anyone with left with missing data.\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### `Pandas.DataFrame.groupby(...)`\n",
+    "\n",
+    "Syntax: `DataFrame.groupby(<COLUMN>)`\n",
+    "- Returns a `groupby` object\n",
+    "- Need to apply aggregation functions to use the return value of `groupby`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# What does this return?\n",
+    "piazza_df.groupby(\"role\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Try getting the \"mean\" of this groupby object.\n",
+    "piazza_df.groupby(\"role\").mean(numeric_only=True)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# How many answers does the average instructor, student, and TA give?\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# How would we write this in SQL?\n",
+    "qry(\"\"\"\n",
+    "\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# What is the total number of days spent online for instructors, students, and TAs?\n",
+    "# Order your answer from lowest to highest\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# How would we write this in SQL?\n",
+    "qry(\"\"\"\n",
+    "\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Of those individuals who spend less than 100 days online,\n",
+    "# how does their average number of posts compare to those that\n",
+    "# spend 100 days or more online? Do your analysis by role as well.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# How would we write this in SQL?\n",
+    "qry(\"\"\"\n",
+    "\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# What percentage of instructors, students, and TAs did not write a single answer,\n",
+    "# followup, or reply to a followup?\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# How would we write this in SQL?\n",
+    "qry(\"\"\"\n",
+    "\n",
+    "\"\"\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "conn.close()"
+   ]
+  }
+ ],
+ "metadata": {
+  "colab": {
+   "provenance": []
+  },
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.11.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/s24/Louis_Lecture_Notes/37_AdvPandas/piazza.db b/s24/Louis_Lecture_Notes/37_AdvPandas/piazza.db
new file mode 100644
index 0000000000000000000000000000000000000000..fd42fc45f64189a8a8f6b8013651198c97100fff
Binary files /dev/null and b/s24/Louis_Lecture_Notes/37_AdvPandas/piazza.db differ