{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import seaborn as sns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Wide data\n",
"\n",
"Wide data is a dataframe where your columns **measure the same things across different categories**. In the example below, we have the number of accidents (our measurement) across different months (our categories)."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# I can only plot one month at a time!\n",
"sns.catplot(data=wide_df, y='JAN', x='category')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Wide data is great for stacked bar graphs, but for everything else it can be a real pain (especially with seaborn). Most of the software you'll use to graph loves **long data** instead.\n",
"\n",
"# Long data\n",
"\n",
"Long data is similar to the idea of [tidy data](https://en.wikipedia.org/wiki/Tidy_data) which is very very popular in current-day R programming. Basically speaking, each row is a measurement.\n",
"\n",
"To convert from wide data to long data, you use `.melt`. I think you can figure out what the columns mean based on what's down below!"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
category
\n",
"
month
\n",
"
accidents
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
car
\n",
"
JAN
\n",
"
1
\n",
"
\n",
"
\n",
"
1
\n",
"
bus
\n",
"
JAN
\n",
"
4
\n",
"
\n",
"
\n",
"
2
\n",
"
plane
\n",
"
JAN
\n",
"
3
\n",
"
\n",
"
\n",
"
3
\n",
"
horse
\n",
"
JAN
\n",
"
2
\n",
"
\n",
"
\n",
"
4
\n",
"
submarine
\n",
"
JAN
\n",
"
6
\n",
"
\n",
"
\n",
"
5
\n",
"
train
\n",
"
JAN
\n",
"
2
\n",
"
\n",
"
\n",
"
6
\n",
"
subway
\n",
"
JAN
\n",
"
4
\n",
"
\n",
"
\n",
"
7
\n",
"
spaceship
\n",
"
JAN
\n",
"
5
\n",
"
\n",
"
\n",
"
8
\n",
"
car
\n",
"
FEB
\n",
"
3
\n",
"
\n",
"
\n",
"
9
\n",
"
bus
\n",
"
FEB
\n",
"
5
\n",
"
\n",
"
\n",
"
10
\n",
"
plane
\n",
"
FEB
\n",
"
2
\n",
"
\n",
"
\n",
"
11
\n",
"
horse
\n",
"
FEB
\n",
"
2
\n",
"
\n",
"
\n",
"
12
\n",
"
submarine
\n",
"
FEB
\n",
"
6
\n",
"
\n",
"
\n",
"
13
\n",
"
train
\n",
"
FEB
\n",
"
3
\n",
"
\n",
"
\n",
"
14
\n",
"
subway
\n",
"
FEB
\n",
"
2
\n",
"
\n",
"
\n",
"
15
\n",
"
spaceship
\n",
"
FEB
\n",
"
4
\n",
"
\n",
"
\n",
"
16
\n",
"
car
\n",
"
MAR
\n",
"
5
\n",
"
\n",
"
\n",
"
17
\n",
"
bus
\n",
"
MAR
\n",
"
3
\n",
"
\n",
"
\n",
"
18
\n",
"
plane
\n",
"
MAR
\n",
"
3
\n",
"
\n",
"
\n",
"
19
\n",
"
horse
\n",
"
MAR
\n",
"
5
\n",
"
\n",
"
\n",
"
20
\n",
"
submarine
\n",
"
MAR
\n",
"
2
\n",
"
\n",
"
\n",
"
21
\n",
"
train
\n",
"
MAR
\n",
"
5
\n",
"
\n",
"
\n",
"
22
\n",
"
subway
\n",
"
MAR
\n",
"
6
\n",
"
\n",
"
\n",
"
23
\n",
"
spaceship
\n",
"
MAR
\n",
"
4
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" category month accidents\n",
"0 car JAN 1\n",
"1 bus JAN 4\n",
"2 plane JAN 3\n",
"3 horse JAN 2\n",
"4 submarine JAN 6\n",
"5 train JAN 2\n",
"6 subway JAN 4\n",
"7 spaceship JAN 5\n",
"8 car FEB 3\n",
"9 bus FEB 5\n",
"10 plane FEB 2\n",
"11 horse FEB 2\n",
"12 submarine FEB 6\n",
"13 train FEB 3\n",
"14 subway FEB 2\n",
"15 spaceship FEB 4\n",
"16 car MAR 5\n",
"17 bus MAR 3\n",
"18 plane MAR 3\n",
"19 horse MAR 5\n",
"20 submarine MAR 2\n",
"21 train MAR 5\n",
"22 subway MAR 6\n",
"23 spaceship MAR 4"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"long_df = wide_df.melt(id_vars=['category'],\n",
" value_vars=['JAN', 'FEB', 'MAR'],\n",
" var_name='month',\n",
" value_name='accidents')\n",
"long_df"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAbIAAAFgCAYAAADehfw4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3deZyVdd3/8dd72GGQRRBxQcQNEERlcElFMy1LLc0lbdFW78o07bblzkq6tUf2y8y7bDPNtHIpNTU13HBFWZVNcEtQwQ0QEJB9Pr8/rmvgMMzAzJw555pr5v18POYx53yv65zrc3gob77Xua7vRxGBmZlZXlVkXYCZmVkxHGRmZpZrDjIzM8s1B5mZmeWag8zMzHKtfdYFNKfjjjsuxo4dm3UZZtb2KOsC2rJWNSNbtGhR1iWYmVmZtaogMzOztsdBZmZmueYgMzOzXHOQmZlZrjnIzMws1xxkZmaWaw4yMzPLNQeZmZnlmoPMzMxyzUFmZma55iAzM7Ncc5CZmVmuOcjMzCzXHGRmZpZrDjIzM8s1B5mZmeWag8zMzHLNQWZmZrnmIDMzs1xzkJmZWa45yMzMLNccZGZmlmsOMjMzyzUHmZmZ5ZqDzMzMcs1BZmZmueYgMzOzXHOQmZlZrjnIzMws1xxkZmaWaw4yMzPLNQeZmZnlmoPMzMxyzUFmZma55iAzM7Ncc5CZmVmuOcjMzCzXHGRmZpZrDjIzM8u19lkXYM1jw3vvsXzcONpVVlJ55JGoQ4esSzIzKwsHWSuw7s03mXv66WxYuAiALiNHstuNN6B27TKuzMys9NrsqcUN1cGjL7zD2FlvsnrdhqzLKcqSW27dGGIAq6ZOZeVTT2dYkZlZ+bTJGdn6DdV8+o8TmTTvXQAG9O7KneceRu9uHTOurGli9aotxqrrGDMza43a5IzskRcWbgwxgNfefZ+bJ72WYUXF6XHKKahz543POwwYQOXo0RlWZGZWPm1yRrZ89botxlasWZ9BJc2j8957s/sdt7PszruoqKyk52mnUtGpU9ZlWYENK9ex7o0VdNy5koquvhDHrDm1ySA7Zmg/dujeiXeWrwGgc4cKTjlw54yrKk6nQYPY4VsXZl2G1eH9mYt499bnYX2gDhX0/uwQuuzTO+uyzFqNsp9alLSi4PEFklZL6lEwdpSkkHRiwdg9ko5qrhq269yBO889jHM/uAdfOGwgd557GHvu0L253t5sM8vueQXWBwCxrppl987NuCKrbeFry3nrlWVERNalWBNkPSM7E5gMfBK4vmB8PnAx8K9SHXinnl349kcGl+rtzQCI6mDDirWbjW14b01G1Vht1dXBv38/k3kzkqt+d9itO5+48AA6ds76r0ZrjMwu9pC0B1AJ/IAk0ApNB5ZJOrbsheVURPDWyy/y7hvzsy7FCqhCdB3Rd7OxrgfskFE1Vttrzy3eGGIA77y6nDlPvZlhRdYUWf6z4wzgFuAJYB9J/SLi7YLtPwEuBR7Morg8Wb1yBbdd9gPefuVlAPY98kMc93V/X9ZS9Dp5L9r36cLa15fTaWAPKg/fKeuSLPX+srV1jHnGnDdZXn5/JnBLRFQDtwOnFW6MiMcBJB2+tTeRdI6kKZKmLFy4sGTFtmTTH7hvY4gBPPfYwyx4fnaGFVkhdahgu6MH0Ofsfel+5C6oXb7veqmuruaFF15gwoQJLFmyJOtyijJwvz507LxpBZyKCrFnVb8MK7KmyGRGJmk4sBfwoCSAjsBc4Opau/6E5NRjvdfGR8Q1wDUAVVVVbfKb2uWLF9Ux1jZDvUV6/1148EewYCoMOBSOGQOdt8u6qia74447mDVrFgAPPfQQZ511FgMGDMi4qqbpul1HPvntkUx/+HXWr6tm2Oid6burL/zKm6xOLZ4JjImIn9YMSJorabfCnSLiAUmXAv3LXWCeDP7AaKY/9G9Ir7jqXNmdgfuPzLiqplu9fjVXTLmCca+NY2CPgXx31HfZp/c+WZfVdHd+DV4cmzx+ZzasXganXpdtTU20ePHijSEGsH79ep566qncBhnA9jtXcvRZQ7Iuw4pQ1iCT1B5YQ/L92Mdqbf5nOj6x1vhPgLtKX11+7TJ0GJ/87iXMeHgsnbp2o+rET9K5W2XWZTXZb6f/lltfuBWAhasWcv6487nvk/fRriKHiyBXV8OL928+VhNqOVRdXb3F2IYN+V6r1PKv3DOyfYH/RMRBtTdExLcKnj5aMH43oNKXlm+7H1DF7gdUZV1Gs5jwxoTNnr+x8g1eXf4qg3oMyqiiIlRUwPZ7wuKXNo312Su7eorUt29f9txzT15+OflOVhIHH3xwxlVZW1e2IJP0VeB84IJyHdPyacj2Q5jz7pyNz3t06sFO3XJ8pd/HfwX/+DyseBu22wWO/0XWFRXljDPOYMaMGSxdupQhQ4bQv7/P/Fu21JruZK+qqoopU6ZkXYYVafGqxXzn8e8w6a1J7NB1By459BJG75LzRZA3rINlr0PP3SCPp0htW3zWKEMOMmuxVqxdQdcOXalQvi9XtzbBQZYhr8NiLVZlx/xesGJm5eN/6pqZWa45yMzMLNccZGZmlmsOMjMzyzUHmZmZ5ZqDzMzMcs1BZmZmueYgMzOzXHOQmZlZrjnIzMws1xxkZmaWaw4yMzPLNQeZmZnlmoPMzMxyzUFmZma55iAzM7Ncc5CZmVmuOcjMzCzXHGRmZpZrDjIzM8s1B5mZmeWag8zMzHLNQWZmZrnmIDMzs1xzkJmZWa45yMzMLNccZGZmlmsOMjMzyzUHmZmZ5ZqDzMzMcs1BZmZmueYgMzOzXHOQmZlZrjnIzMws1xxkZmaWaw4yMzPLNQeZmZnlmoPMzMxyzUFmZma55iAzM7Ncc5CZmVmuOcjMzCzXHGRmZpZrDjIzM8s1B5mZWSsj6ShJH8i6jnJxkJmZtT5HASUNMiVaRIa0iCLMzGzbJJ0laYak6ZL+IulESRMlPSvpIUn9JA0EvgpcKGmapCMk9ZV0u6TJ6c9h6fv1lfSgpOckXSvpVUl90m3fkjQr/bkgHRso6QVJNwKzgB9Kuqqgvq9I+mW5/1zal/uAZmbWeJL2BX4AfCAiFknqDQRwSESEpC8D34mI/5b0e2BFRFyRvvYm4JcR8aSkAcD9wBDgEmBcRPxU0nHAl9L9RwJfAA4GBEyU9BiwBNgLODsiJkiqBKZL+nZErEtf81/l+jOp4SAzM8uHo4F/RMQigIh4V9Jw4FZJ/YGOwNx6XnsMMFRSzfPt0hA6HDg5fb+xkpak2w8H/hkRKwEk3QEcAdwNvBoRE9LXrJA0DjhB0hygQ0TMbNZP3QAOMjOz/Po1cGVE3C3pKGBMPftVkMzcVhcOFgRbY6ys9fxa4PvA88D1TXnDYvk7MjOzfBgHnCZpe4D01GIPYEG6/eyCfZcD3QuePwCcV/NE0v7pw/HA6enYh4Fe6fgTwEmSukrqRjJre6KuoiJiIrAr8Gng5qZ+uGI4yMzMciAingN+AjwmaTpwJckM7B+SpgKLCnb/F3ByzcUewPlAVXqhyGySi0EAfgx8WNIs4DTgLWB5RDwD/BmYBEwEro2IZ7dS3t+B8RGxZCv7lIwiIovjlkRVVVVMmTIl6zLMrO1p0jm6rEnqBGyIiPWSDgV+FxH7b+t1dbzPPSQXkzzc7EU2gL8jMzNruwYAf0/vB1sLfKUxL5bUk2TWNj2rEAMHmZlZmxURLwEHFPH6pcDezVdR0/g7MjMzyzUHmZmZ5ZqDzMzMcs1BZmZmueYgMzOzXPNVi2ZmGRj4vXsrgDOBC0hWxngduAq4ed7lx1eXux5J7SNifbmP2xw8IzMzK7M0xG4H/gBUAf3S338Abku3N1lD2r2k+41Jt48H/lLcp8qOZ2RmZuV3JnAs0K3WeDfgw8AZwE1NeeOGtnsB/jt9yVDg8IhY1ZTjtQQOMjOz8ruALUOsRjfgQpoYZDS+3cvdeQ4x8KlFM7Ms7Frk9sb6NXB1RAwnaXzZuWBb7bYsueMgMzMrv9eL3L41jWn30io4yMzMyu8q6p8JrQR+2dQ3bmS7l1bB35GZmZXfzcCpbHnBx0qSJpi3FPPmEXEDcEOt4bvq2G9MMcdpKTwjMzMrs/Q+sVOAc4ApwNvp73OAU7O4jyzP3FjTzKx4uWys2Vp4RmZmZrnmIDMzs1xzkJmZWa45yMzMLNccZGZmrYikgZJmZV1HOfk+MjOzLIzpUW8bF8Ys8+X3jeAZmZlZuSUhVm8bl3R7MdpL+pukOZJuk9RV0jxJfQAkVUl6NH18pKRp6c+zkroXeeyyc5CZmZVfQ9q4FGMf4LcRMQR4D/j6Vva9CDg3IvYHjgBytxK+g8zMrPwa0salGK9HxPj08V+Bw7ey73jgSknnAz3z2CXaQWZmVn6lbuNSe8mmANaz6e/8jW1cIuJy4MtAF2C8pMFFHrvsGnyxh6QPAAMLXxMRN5agJmuC6jXrWf38u6hTezrv3QtVeMUcsxbsdZLvxba2vRgDJB0aEU8DnwaeBLoDI4F/k6zzCICkPSJiJjBT0ihgMPB8kccvqwYFmaS/AHsA04AN6XAADrIWYMOyNbzzm2lseG8tAJ0G9aDPl4c7zMxarqtILuyo6/RiUW1cUi8A50r6EzAb+B0wCbhO0qXAowX7XiDpg0A18BxJ0OVKQ2dkVcDQaE0rDLciKya8uTHEANa8sow1Ly+l8969MqzKzLaiZG1cImIeyayqtieAvevY/7ymHqulaOh3ZLOAHUtZiDVdrN2wxVj1mi3HzKyFSO4Tq7eNi+8ja5ytzsgk/YvkFGJ3YLakScCamu0R8fHSlmcN0XVkP1ZMfAvWJ//tt+vViS6DPRuzElowFZa+BoM+CF16Zl1NPiVhdVP6Y0XY1qnFK8pShRWl406V9PvG/qyc+jYVndrR7eD+qEO7rMuy1uq+b8Oka5LHnXvA5++FHYdnW5O1aVsNsoh4DEDSzyLiu4XbJP0MeKyEtVkjdNixGz2PH5R1GdbaLX0dJv1x0/PVy+CJK+G067Orydq8hn5HdmwdYx9tzkLMCq1dX83UV5ewcPmabe9s5bPmPba4RWn1skxKMauxre/IvkaytMkgSTMKNnUHniplYdZ2vfzOcj533STeXLaaDu3ED44fytkfGJh1WQbQb1/YZRTMn7xp7MCzsqvHjG1/R3YTyT0FPwW+VzC+PCLeLVlV1qb94oEXeW/xIoauep0lHXry03+Lkw/cme06d8i6NAP47O3J6cWlr8LQk2DPD2VdkTVAukjwRRExJetamtu2viNbBiwDzpTUjuRO9PZApaTKiHitoQeStAGYWTB0EslKIXcBcwvGL4qIhwr2F8lN2N+ICM8Ct+K9te/RoaIDXdp3ybqUoqx89QXOmn8r7SO5hWDayuG8u2J0roPs7bffZsGCBey666707ds363KK07kHjL4o6ypyb/gNw+tt4zLz7Jm+/L4RGrqyxzeAMST3OtT8AQewXyOOtSpdXbnwfQcCT0TECVvbX9JHSGaFRzbieG3Gug3ruHj8xYyfPZaKTp04u+q/+PLwL2ddVpONXPoM62PTfXAj3pvFDh3WZVhRcSZPnsy999678fnJJ5/MiBEjMqzIspaG2O1sfkN0P5LVPk4ZfsPwU5saZunfq2OBqcCBJKt1nFVrn98Bo0jWV7wtIi5Jx+cBNwAnAh2A0yLieUndgF8Dw9LxMRFxV1PqK4WGXuxxAbBPROwbEcPTn8aEWLG2A5aU8Xi5cvvsWxh85T1cc9U6rv7FCl7/9S954d0Xsi6ryfp12fw/SxGsX7e2nr1bvkceeWSrzy1b7y1axfjbX+bxW15k0fzl5Tps1m1cLo6IKpLJyJGSCv8+XxQRB5Isa1Uz9b4YGBcRBwEfBH6ehluL0NAge53kFGMxuhQ0b/tnwfgRBePTJO1Ra//ngWuBS+t6U0nnSJoiacrChQuLLDGfNtw5lkOfDyqAjuvhjMermTf10azLarL9P3L8Zs8HjTyI7frskFE1xYkI1q7dPIRrP7fsrF65jtt+NoVpD77GzEfnc/vPpvLumyvLceis27icLukZ4FlgX2BowbY70t9TSb7+gSRcvydpGsk6jZ2BAUXW2GwautbiK8Cjku5l85U9rmzEsbY4tZhqyKnFQ4EbJQ2rvd5jRFwDXANQVVXVJteC3HtJ5y3GhixtMf9YarTBhx1J1x69+M+UCfTaaReGHXVM1iU1mSRGjRrF008/vXFs1KhRGVZkheZOX8iq5ZtOW69fV82LE9/ikJP22MqrmkUWbVwAkLQ7yUxrVEQskfRnCtq6sOnv+A1syggBp0REizzV09Agey396Zj+lFVEPJ226O4LvFPu47d0gz92JvPv23QdTHRoT//RH86wouINGLYfA4aV8+x16Rx77LHsuOOOLFiwgAEDBjBs2LCsS7JUpy5bXkDUqVtZLirKoo3Liem27UgWJ14mqR/JPcGPbuP97gfOk3ReRISkAyLi2SJrbDYNCrKI+DGApMr0+YpSFlVb2uitHbC4nMfNi+7HHEO/H/6Apbf+nYrKSvp+41w69MvnqbjWqKKighEjRvgCjxZot/22Z6e9evLGS0sB6LVjV4Z8oH85Dp1FG5cTASJiuqRnSXqOvU7SIXpbLk1rniGpguRK87rOpGVCDenMImkY8Begdzq0CDgrIp5r8IGkFRFRWWvsKLa8/P6yiLit1uX6Ar4fEfeyFVVVVTFlSqu7RcLMSiiqg/kvLmHD2mp2Hdqbdu0beunAZhrV/K+eqxZhUxuXYq9avCci2szUv6GnFq8BvhURj8DGAPoj8IGGHqh2iKVjjwI96tnfq96aWcmpQuw6uPe2d2xGM8+eWT38huGnkFydeCGb7iP7JXCL7yNrnIbOyKZHxIhtjWXNMzIzy4jbsWeowVctSvohyelFgM+SXMloZmaWqYaeDP4iyRWDt6c/fYAvlKooMzOzhmpokO1Bcg63guTy+w8Bj5eqKDMzs4Zq6KnFv5HcQDeLTWstmpmZZa6hQbYwIv5V0krMzKxovvy+fpdIuhZ4mM2XqLqj/peYmVl95gweUm8blyHPz8nkzJek9hGxPotjF6OhQfYFYDDJ8v2FbVwcZGZmjZSGWL1tXOYMHnJqkWHWTlLNvb4LgE+QrIj/e6Ar8B/gi+lai48C00gWFr5Z0mvAJSRrLS6LiNFpP8rLgaOATsBvIuIPRdTXrBoaZKMiYp+SVmJm1nY0pI3LTUW8/17AmRHxFUl/B04BvgOcFxGPSfpfkrC6IN2/Y9rWBUkzgY9ExAJJPdPtXyIJtVGSOgHjJT0QEXNpARp61eJTkoZuezczM2uAUrdxmRsR09LHU0muPO8ZEY+lYzcAowv2v7Xg8Xjgz5K+QrLGLSThelbaxmUisD1JWLYIDZ2RHQJMkzSX5DsyAVHm5ppmZq1Fqdu4rCl4vAHoWd+OqY1N2CLiq5IOBo4HpkoaSfJ3/nkRcX+RdZVEQ4PsuJJWYWbWtpS6jUtty4Alko6IiCeAzwGP1bWjpD0iYiIwUdJHSUL1fuBrksZFxDpJewMLIqIsXUi3paFtXF4tdSFmZm1Iqdu41OVs4PeSupIsMVjf6kw/l7QXySzsYWA6MIOkW/QzkgQsBE4qQY1N0qBFg/PCiwabWUYatWhwPVctQkEbl6wuwc+jJjXeMTOzpktD6hTgHGAK8Hb6+xwcYo3W0O/IzMysGaVhdRPFXWZveEZmZmY55yAzM7Ncc5CZmVmuOcjMzCzXHGRmZm2UpDGSLirDcaok/apU7++rFs3MMvCbr46rt43Lub8/utVcfp+2hplCcntBSXhGZmZWZmmI3U6yukcVyXJVVenz29LtTSKpm6R7JU2XNEvSpyTNk9Qn3V6Vtm6pMULS05JeShcKRtJRkh6TdJekVyRdLukzkiZJmilpj3S/EyVNlPSspIck9UvHx0j6i6TxwF/S97unYNufJD2avvf5BbV/Nj3GNEl/SNvHbJODzMys/BrSxqWpjgPeiIgRaZfosdvYfz/gaOBQ4EeSdkrHRwBfBYaQrM24d0QcBFwLnJfu8yRwSEQcANxC0iqmxlDgmIg4s45jDgY+AhxE0ri5g6QhwKeAwyJif5LFjj/TkA/sU4tmZuXXkDYuTb1ReibwC0k/A+6JiCeS5RHrdVdErAJWSXqEJFyWApMj4k0ASf8hWTqr5v0/mD7eBbhVUn+gI1DYn+zu9H3rcm9ErAHWSHqHZEb6IWAkMDmttwvwTkM+sIPMzKz8StbGJSJelHQg8DHgMkkPA+vZdAauc+2X1PO8sBVMdcHzajZlx6+BKyPibklHAWMKXrO1lfFrt5lpT7Je5Q0R8T9beV2dfGrRzKz8ttWmpcltXNJTg+9HxF+BnwMHAvNIZjuQrPFY6BOSOkvaHjgKmNyIw/UAFqSPz25qzamHgVMl7QAgqbek3RryQgeZmVn5XUX9M5Zi27gMByal3ZwvAS4Dfgz8n6QpJDOgQjOAR4AJwKUR8UYjjjUG+IekqcCiImomImYDPwAekDQDeBDo35DXuo2LmVnxGtXGpeCqxXrbuLSmS/BLzTMyM7MyS0Oq3jYuDrHG8YzMzKx4jZqRWfPyjMzMzHLNQWZmZrnmIDMzs1xzkJmZWa45yMzMWglJPSV9vQmvu09Sz1LUVA5eosrMLAO/+NQJ9bZx+e9b72nq5fc9ga8Dvy0cTFuprK/vRRHxsSYer0XwjMzMrMzSEKu3jUu6vSkuB/ZI26BMlvSEpLuB2QCS7pQ0VdJzks6peVFNmxdJAyXNkfTHdJ8HJHUp5rOWg4PMzKz8StXG5XvAf9I2KN8mWWfxmxGxd7r9ixExkiQ0z0/XV6xtL+A3EbEvySr4tddmbHEcZGZm5deQNi7NYVJEFLZWOV/SdJJ1FXclCa3a5kbEtPTxVGBgM9VSMv6OzMys/ErWxqWWjQsTp21WjgEOjYj30y7RtVu6wJYtVnxq0czMtlCqNi7Lge71bOsBLElDbDBwSBOP0eI4yMzMyq8kbVwiYjEwXtIskl5khcYC7SXNIbkoZEJTjtES+dSimVn53QycSv1tXG5p6htHxKfrGV8DfLSebQPTh4uAYQXjVzS1jnLyjMzMrMzS+8TqbeNSxH1kbZLbuJiZFc9tXDLkGZmZmeWag8zMzHLNQWZmZrnmIDMzs1xzkJmZtVGSxki6KOs6iuX7yMzMMjD/e0/U28Zll8uP8OX3jeAZmZlZmaUhVm8bl3R7k0jqJuleSdMlzZL0qZo2Len2qnSdxRojJD0t6SVJX0n3+Y2kj6eP/ynpT+njL0r6Sfp4i5Yw6farCmr5iqQmrVLSGA4yM7PyK1UbF4DjgDciYkREDCNZmmpr9gOOBg4FfiRpJ+AJ4Ih0+87A0PTxEcDj6eO6WsL8HThRUod0ny8AfyriszSIg8zMrPxK2cZlJnCspJ9JOiIilm1j/7siYlVELAIeAQ4iDTJJQ0macr4tqT9J2D2Vvm6LljARsQIYB5yQLkzcISJmFvFZGsTfkZmZlV/J2rhExIuSDgQ+Blwm6WFgPZsmLrVbt9Re3ikiYoGkniSzu8eB3sDpwIqIWL6NljDXAt8Hngeub+rnaAzPyMzMyq9UbVxITw2+HxF/JVkB/0BgHjAy3aV2x+dPSOqcnho8Cpicjk8gmTk+TjJDuyj9DVtpCRMRE0mC+NMkiyOXnIPMzKz8StLGJTUcmCRpGnAJcBnwY+D/JE0haZZZaAbJKcUJwKUR8UY6/gTQPiJeBp4hmZXVBNm2WsL8HRgfEUuK+BwN5lOLZmblV8o2LvcD99exae869h2zlfe5DrgufbyusM6ttYRJHU5xYdwonpGZmZVZep9YvW1c8nofmaSekl4EVkXEw2U7rtu4mJkVzW1cMuQZmZmZ5ZqDzMzMcs1BZmZmueYgMzOzXHOQmZlZs5P0Z0mn1jG+k6TbmvNYvo/MzCwDY8aMqbeNy5gxY3J5+X1DpDdcbxFwxfCMzMyszNIQq7eNS7q9SbbSxuX/SZopaZKkPdN9T5Q0UdKzkh6S1C8dr5R0fbr/DEmnpOMfTlu+PCPpH5Iq0/HLJc1O972ioJzRkp6S9ErN7EzSQEmz0sefl3SXpEfTNjKXNOUzO8jMzMovizYuyyJiOHA1ycwP4EngkIg4gGQ1ke+k4z+s2T8i9gPGpf3MfgAcExEHktzA/a10jcaTgX3TfS8rqKU/ySofJ5AsZVWXg0huDt8POE1SVWM/sIPMzKz8smjjcnPB70PTx7sA90uaCXwb2DcdPwb4Tc0bpmsmHkLSl2x8uo7j2cBuwDJgNXCdpE8C7xfUcmdEVEfEbJJZZ10ejIjFEbEKuIMk+BrFQWZmVn4lbeNCsuL9TJI2Lj+q2VS4W/r718DV6Uztv9iyxUshkYTO/unP0Ij4UkSsJ5lV3UYy8yps5Lmm1uvrLHkbz7fJQWZmVn7lbuMC8KmC30+nj3sAC9LHZxe8zYPAuQXv2YtkhfvDCr5f6yZp7/R7sh4RcR/JTHJEI0s+VlJvSV2Ak4DxjXy9g8zMLAPlbuMC0EvSDOCbbDp1OQb4h6SpwKKC97gs3X9W2gX6gxGxEPg8cHP6Pk8Dg4HuwD3p2JPAtxpZ7ySSC19mALdHRKMXzPXl92Zm5VfWNi6SAH4eEd+tte9dwF11vMcKNp+h1YyPA0bVcdiD6tj387WeV6a/5wHDCjbNj4iT6vwwDeQZmZlZmaX3idXbxqU130dWCm7jYmZWPLdxyZBnZGZmlmsOMjMzyzUHmZmZ5ZqDzMzMcs1BZmZmueYgMzOzXHOQmZlZrjnIzMws1xxkZmaWaw4yMzPLNQeZmZnlmoPMzMxyzUFmZma55iAzs0ZZOXESr3z8E7wwsoo3Lr6Y6tWrsy7J2jg31jSzBqtetYr5559P9bJlACy7/Q7a9+3LDhdckHFl1pY5yKzFiQhufeFWxr02joE9BnLOfufQp0ufrMsyYM1LL20MsRqrpkzNqBqzhIPMWpwbZ9/IFVOuAODpN59m+sLp3HrCrRlXZQCd9tiDispKqles2DjWZf8RGVZkVsLvyCSFpL8WPG8vaaGke2rtd6ekCbXGxkhaIGmapNmSzixVndbyjJ07drb1uTQAAApqSURBVLPnsxfP5rX3XsuoGitU0a0bO1/5Czrsuiu0a8d2H/sofb72tazLsjaulDOylcAwSV0iYhVwLLCgcAdJPYGRwApJgyLilYLNv4yIKyTtBUyVdFtErCthvdZC9O+2I7MWz9r4vHO7TvTq3CvDiqxQ5ejRDLr/36xbs4ZOXbpmXY5Zya9avA84Pn18JnBzre2fBP4F3AKcUdcbRMRLwPuA/yZrI75BD3ZYvx6A9hFcsEp079g946qsxgsTnuTqc87i6s+fzs2X/pDVK1ds+0VmJVTqILsFOENSZ2A/YGKt7TXhdnP6eAuSDgReioh3SlmotRyDXnqUsa+/wV/eeIsHX1vAZxa8CIv/k3VZBqx5fyV3/+pK1i1PLvh4Y9az3H39n7Mtytq8kgZZRMwABpKE1H2F2yT1A/YCnoyIF4F1koYV7HKhpOdIwu8n9R1D0jmSpkiasnDhwub+CJaFnrvRAdh/zVr6VFdDh67QrW/WVRnw/PP/oWLD2s3GXpw9J6NqzBLluCH6buAKtjyteDrJ6cK5kuaxKfBq/DIi9gVOAa5LZ3VbiIhrIqIqIqr69vVfdq3C0T+EHgOSx+06wYcvg87bZVtTkd5++22eeeYZFi1alHUpRem4w868X7H5/4rv9do9o2rMEuW4/P5PwNKImCnpqILxM4HjIuJpAEm7Aw8BFxe+OCLulvQl4GzgD2Wo17LWZ084/1l4e2YSaN22z7qiokyePJl777134/OTTz6ZESPyecn6kF22Z+4BZ9Br1li2W7+cl7sN4nNn5P+i4rVvroT11XTYpRJJWZdjjVTyIIuI+cCvCsckDQR2AyYU7DdX0jJJB9fxNv8L3CTpjxFRXcJyraVo1x52OiDrKprFI488ssXzvAYZwNUXnMQtk0Yyf8kqvjl8R6oG9s66pCaL6mDx3+aw+rnFAHQc0J0+XxpORad2GVdmjVGyIIuIyjrGHgUeTZ/uXMf2A9OHE2uNTwX2ad4KzUovIli7dvPvlGo/z5uuHdvzxcNbx+nE1S8u2RhiAGtfW877U96i8rAt/nqyFsyLBpuVkCRGjRq12Vjt55adDe+tqWMs3//QaIu8RFUrMXXsPJ57/A06dmnHQScOYtD+vvClpTj22GPZcccdmT9/PrvtthvDhg3b9ousLLoM2Z5lneYSazYkAxWiy37+fydvFBFZ19BsqqqqYsqUKVmXUXYvTXmbB659buPzigrx2csOpXvvOi/0NLMCa99cyYon5hPrq6k8pD+dBvVsytv4CpEMeUbWCsx/fslmz6urgzdeWso+B++YUUVm+dGxfzd6n+6v4PPM35G1An0HbLl8U99dvaSTmbUNDrJWYOhh/RlyWH8qKkTHLu05/LS96L1Tt6zLMjMrC39H1oqsX7uBinaiop3/fWJWZv6OLEP+jqwVad/RN3GaWdvjf7qbmVmuOcjMzCzXHGRmZpZrDjIzM8s1B5mZmeWag8zMzHLNQWZmZrnmIDMzs1xzkJmZWa45yMzMLNccZGZmlmsOMjMzyzUHmZmZ5ZqDzMzMcs1BZmZmueYgMzOzXHOQmZlZrjnIzMws1xxkZmaWaw4yMzPLNQeZmZnlmoPMzMxyzUFmZma55iAzM7Ncc5CZmVmuOcjMzCzXHGRmZpZrDjIzM8s1B5mZmeWag8zMzHLNQWZmZrnmIDMzs1xzkJmZWa45yMzMLNccZGZmlmsOMjMzyzUHmZmZ5ZqDzMzMck0RkXUNzUbSQuDVRr6sD7CoBOVkxZ+n5WpNnwX8eQotiojjmrMYa7hWFWRNIWlKRFRlXUdz8edpuVrTZwF/Hms5fGrRzMxyzUFmZma55iCDa7IuoJn587RcremzgD+PtRBt/jsyMzPLN8/IzMws1xxkZmaWa202yCT9SdI7kmZlXUuxJO0q6RFJsyU9J+mbWddUDEmdJU2SND39PD/OuqbmIKmdpGcl3ZN1LcWSNE/STEnTJE3Jup5iSeop6TZJz0uaI+nQrGuyhmuz35FJGg2sAG6MiGFZ11MMSf2B/hHxjKTuwFTgpIiYnXFpTSJJQLeIWCGpA/Ak8M2ImJBxaUWR9C2gCtguIk7Iup5iSJoHVEVEq7ghWtINwBMRca2kjkDXiFiadV3WMG12RhYRjwPvZl1Hc4iINyPimfTxcmAOsHO2VTVdJFakTzukP7n+F5ekXYDjgWuzrsU2J6kHMBq4DiAi1jrE8qXNBllrJWkgcAAwMdtKipOehpsGvAM8GBG5/jzAVcB3gOqsC2kmATwgaaqkc7Iupki7AwuB69NTv9dK6pZ1UdZwDrJWRFIlcDtwQUS8l3U9xYiIDRGxP7ALcJCk3J7+lXQC8E5ETM26lmZ0eEQcCHwUODc9VZ9X7YEDgd9FxAHASuB72ZZkjeEgayXS75JuB/4WEXdkXU9zSU/xPALkeUHWw4CPp98r3QIcLemv2ZZUnIhYkP5+B/gncFC2FRVlPjC/YNZ/G0mwWU44yFqB9OKI64A5EXFl1vUUS1JfST3Tx12AY4Hns62q6SLifyJil4gYCJwBjIuIz2ZcVpNJ6pZeVER6Cu7DQG6v/o2It4DXJe2TDn0IyOWFUm1V+6wLyIqkm4GjgD6S5gOXRMR12VbVZIcBnwNmpt8rAXw/Iu7LsKZi9AdukNSO5B9bf4+I3F+y3or0A/6Z/PuJ9sBNETE225KKdh7wt/SKxVeAL2RcjzVCm7383szMWgefWjQzs1xzkJmZWa45yMzMLNccZGZmlmsOMjMzyzUHmbUpku6ruUet1vgYSRc18T0HSvp08dWZWVM4yKxNiYiPlWBB2IGAg8wsIw4yyxVJd6YL1T5Xs1itpOMkPZP2L3s4HauUdH3aM2uGpFPS8XmS+qSPL5b0oqQngX0KjrGHpLHpcZ6QNDgd/7OkX0l6StIrkk5NX3I5cETam+tCSfum/dSmpcfeq4x/RGZtTptd2cNy64sR8W66dNVkSXcBfwRGR8RcSb3T/X4ILIuI4QCSehW+iaSRJMtF7U/y/8EzJH3cAK4BvhoRL0k6GPgtcHS6rT9wODAYuJtkXb7vARfV9BiT9Gvg/yKiZqWIds3+p2BmGznILG/Ol3Ry+nhX4Bzg8YiYCxARNT3mjiEJKtLxJbXe5wjgnxHxPoCku9PflcAHgH+kSzABdCp43Z0RUQ3MltSvnhqfBi5Oe5DdEREvNf5jmllD+dSi5Yako0gC6tCIGAE8C0zb6osarwJYGhH7F/wMKdi+prCkut4gIm4CPg6sAu6TdHRd+5lZ83CQWZ70AJZExPvp91aHAJ2B0ZJ2Byg4tfggcG7NC2ufWgQeB06S1CVdyf1EgLSP21xJp6Wvk6QR26hrOdC94FiDgFci4lfAXcB+Tfq0ZtYgDjLLk7FAe0lzSC6wmEDS2fcc4A5J04Fb030vA3pJmpWOf7DwjSLimXTf6cC/gckFmz8DfCl93XPAJ7ZR1wxgQ3qxyYXA6cCstBPBMODGpn5gM9s2r35vZma55hmZmZnlmoPMzMxyzUFmZma55iAzM7Ncc5CZmVmuOcjMzCzXHGRmZpZr/x8wvfkNgED0fQAAAABJRU5ErkJggg==\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Now I can plot whatever I want!\n",
"sns.catplot(data=long_df, y='month', x='accidents', hue='category')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Transposing my data\n",
"\n",
"What if I wanted every one of my `categories` to be a column?"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
category
\n",
"
JAN
\n",
"
FEB
\n",
"
MAR
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
car
\n",
"
1
\n",
"
3
\n",
"
5
\n",
"
\n",
"
\n",
"
1
\n",
"
bus
\n",
"
4
\n",
"
5
\n",
"
3
\n",
"
\n",
"
\n",
"
2
\n",
"
plane
\n",
"
3
\n",
"
2
\n",
"
3
\n",
"
\n",
"
\n",
"
3
\n",
"
horse
\n",
"
2
\n",
"
2
\n",
"
5
\n",
"
\n",
"
\n",
"
4
\n",
"
submarine
\n",
"
6
\n",
"
6
\n",
"
2
\n",
"
\n",
"
\n",
"
5
\n",
"
train
\n",
"
2
\n",
"
3
\n",
"
5
\n",
"
\n",
"
\n",
"
6
\n",
"
subway
\n",
"
4
\n",
"
2
\n",
"
6
\n",
"
\n",
"
\n",
"
7
\n",
"
spaceship
\n",
"
5
\n",
"
4
\n",
"
4
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" category JAN FEB MAR\n",
"0 car 1 3 5\n",
"1 bus 4 5 3\n",
"2 plane 3 2 3\n",
"3 horse 2 2 5\n",
"4 submarine 6 6 2\n",
"5 train 2 3 5\n",
"6 subway 4 2 6\n",
"7 spaceship 5 4 4"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wide_df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can transpose with `.T` and it's close, but you don't end up with any column names."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
0
\n",
"
1
\n",
"
2
\n",
"
3
\n",
"
4
\n",
"
5
\n",
"
6
\n",
"
7
\n",
"
\n",
" \n",
" \n",
"
\n",
"
category
\n",
"
car
\n",
"
bus
\n",
"
plane
\n",
"
horse
\n",
"
submarine
\n",
"
train
\n",
"
subway
\n",
"
spaceship
\n",
"
\n",
"
\n",
"
JAN
\n",
"
1
\n",
"
4
\n",
"
3
\n",
"
2
\n",
"
6
\n",
"
2
\n",
"
4
\n",
"
5
\n",
"
\n",
"
\n",
"
FEB
\n",
"
3
\n",
"
5
\n",
"
2
\n",
"
2
\n",
"
6
\n",
"
3
\n",
"
2
\n",
"
4
\n",
"
\n",
"
\n",
"
MAR
\n",
"
5
\n",
"
3
\n",
"
3
\n",
"
5
\n",
"
2
\n",
"
5
\n",
"
6
\n",
"
4
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0 1 2 3 4 5 6 7\n",
"category car bus plane horse submarine train subway spaceship\n",
"JAN 1 4 3 2 6 2 4 5\n",
"FEB 3 5 2 2 6 3 2 4\n",
"MAR 5 3 3 5 2 5 6 4"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wide_df.T"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"But notice how the column names are the **index** from the original dataframe? Turns out you just need to tell it what the index should be, then transpose."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"