Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jsoma/4654e706a8af61d71b7055304824fa50 to your computer and use it in GitHub Desktop.
Save jsoma/4654e706a8af61d71b7055304824fa50 to your computer and use it in GitHub Desktop.
Using pandas to plot grouped bar charts, and reshaping data to make it work
{
"cells": [
{
"cell_type": "code",
"execution_count": 10,
"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>donations</th>\n",
" <th>expenses</th>\n",
" <th>month</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>25</td>\n",
" <td>30</td>\n",
" <td>April</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5</td>\n",
" <td>10</td>\n",
" <td>May</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>55</td>\n",
" <td>20</td>\n",
" <td>June</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" donations expenses month\n",
"0 25 30 April\n",
"1 5 10 May\n",
"2 55 20 June"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"\n",
"df = pd.DataFrame([\n",
" { 'donations': 25, 'expenses': 30, 'month': 'April' },\n",
" { 'donations': 5, 'expenses': 10, 'month': 'May' },\n",
" { 'donations': 55, 'expenses': 20, 'month': 'June' }\n",
"])\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1324ecee0>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df.plot(kind='bar')"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x131230520>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAETCAYAAAAveV3LAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAW/ElEQVR4nO3de7SVdb3v8fcXIlbeTcBhEWfJKSqVxaUFB0MMZWt28Hgrd3lJOjpCc3fap4tBbYdiWunOkZ46nc5x7Ey8pDQ8lmYehUgSdW8JVktUwEDFsTETxRuYqMD3/DEntMIFa7Fuc/1Y79cYjjmfZz7P/H3XnPJZv/V7nuf3RGYiSSpPv1oXIEnqGANckgplgEtSoQxwSSqUAS5JhXpHTzY2aNCgrK+v78kmJal4S5YseSEzB2+/vkcDvL6+nsWLF/dkk5JUvIh4urX1DqFIUqEMcEkqlAEuSYXq0THw1rz11lusWbOGjRs31rqU3UJdXR1Dhw5lwIABtS5FUjereYCvWbOGvffem/r6eiKi1uUULTNZt24da9as4eCDD651OZK6Wc2HUDZu3MgBBxxgeHeBiOCAAw7wrxmpj6h5gAOGdxfys5T6jl4R4JKkXVfzMfDt1c/8dZe+3+rLp+7S9rNmzWKvvfbia1/7Wte0v3o1Dz74IKeffjoAixcv5vrrr+cHP/hBl7y/pL6r1wX47mb16tX87Gc/2xbgjY2NNDY21rgqqXt1dUesLbvaUdtdOIQCfPvb32bEiBEcccQRPP744wA0NzczYcIEGhoaOPnkk3nppZcAmDx5MjNmzGD8+PGMGDGChQsXApWgnjRpEmPHjmXs2LE8+OCDAMycOZOFCxcyevRorrrqKhYsWMDxxx8PwIsvvshJJ51EQ0MDEyZMYOnSpUDlr4Czzz6byZMnM3z48G299ddee42pU6cyatQoDjvsMObMmdOjn5Ok3qXPB/iSJUu45ZZbaG5u5q677uL3v/89AGeddRZXXHEFS5cuZeTIkVxyySXb9tm0aROLFi3i6quv3rZ+yJAhzJs3j6amJubMmcOXvvQlAC6//HImTZpEc3MzX/7yl/+m7YsvvpgxY8awdOlSvvOd73DWWWdte23FihXcc889LFq0iEsuuYS33nqLu+++m/e85z08/PDDPProoxx33HHd/fFI6sX6fIAvXLiQk08+mT322IN99tmHE044gddee42XX36Zj33sYwBMmzaN++67b9s+p5xyCgAf+chHWL16NVC5IOnzn/88I0eO5NRTT2XZsmVttn3//ffz2c9+FoCjjz6adevW8eqrrwIwdepUBg4cyKBBgxgyZAjPPfccI0eOZN68ecyYMYOFCxey7777duVHIakwfT7AO2LgwIEA9O/fn02bNgFw1VVXceCBB/Lwww+zePFi3nzzzS5po2U7I0aMoKmpiZEjR3LhhRfyrW99q1NtSCpbnw/wI488kl/+8pe8/vrrrF+/nl/96lfsueee7L///tvGt2+44YZtvfEdeeWVVzjooIPo168fN9xwA5s3bwZg7733Zv369a3uM2nSJG666SYAFixYwKBBg9hnn3122Maf/vQn9thjD84880wuuOACmpqaOvIjS9pN9LqzUHr6aPLYsWP59Kc/zahRoxgyZAjjxo0DYPbs2Zx33nn85S9/Yfjw4fz0pz/d6fucf/75fPKTn+T666/nuOOOY8899wSgoaGB/v37M2rUKD73uc8xZsyYbftsPVjZ0NDAHnvswezZs3faxiOPPMIFF1xAv379GDBgAD/+8Y87+dNLKllkZo811tjYmNvf0GH58uV8+MMf7rEa+gI/U9WapxF2rYhYkplvO/+4zw+hSFKpDHBJKpQBLkmFMsAlqVAGuCQVygCXpEL1uvPAmdXFl4fPeqVr30+Seol2BXhErAbWA5uBTZnZGBHvBuYA9cBq4O8z86XuKVOStL1dGUI5KjNHtziZfCYwPzM/AMyvLhfpxhtvZPz48YwePZpzzz2Xhx56iIaGBjZu3Mhrr73GoYceyqOPPsqCBQs48sgjmTp1Kh/84Ac577zz2LJlCwBz587l8MMPZ+zYsZx66qls2LABgPr6ei6++GLGjh3LyJEjWbFiBQC/+93vGD16NKNHj2bMmDHbLrf/3ve+x7hx42hoaODiiy8GnEZWUus6MwZ+IrD12u/ZwEmdL6fnLV++nDlz5vDAAw/Q3NxM//79efzxxznhhBO48MIL+frXv86ZZ57JYYcdBsCiRYv44Q9/yLJly3jiiSe47bbbeOGFF7jsssv4zW9+Q1NTE42NjXz/+9/f1sagQYNoamriC1/4AldeeSUAV155JT/60Y9obm5m4cKFvOtd72Lu3LmsXLmSRYsW0dzczJIlS7jvvvucRlZSq9o7Bp7A3IhI4P9k5jXAgZn5bPX1PwMHdkeB3W3+/PksWbJk2xwor7/+OkOGDOGiiy5i3Lhx1NXV/c3tz8aPH8/w4cMBOO2007j//vupq6tj2bJlTJw4EYA333yTww8/fNs+Laefve222wCYOHEiX/nKVzjjjDM45ZRTGDp0KHPnzmXu3Lnb5kvZsGEDK1euZNKkSXz1q19lxowZHH/88UyaNKn7PxhJvV57A/yIzHwmIoYA8yJiRcsXMzOr4f42ETEdmA4wbNiwThXbHTKTadOm8d3vfvdv1j/77LNs2LCBt956i40bN26bnGr7u75HBJnJMcccw80339xqG61NPztz5kymTp3KXXfdxcSJE7nnnnvITL7xjW9w7rnnvu09mpqauOuuu7jwwguZMmUKF110Uad/dklla9cQSmY+U31cC/wCGA88FxEHAVQf1+5g32syszEzGwcPHtw1VXehKVOmcOutt7J2baX8F198kaeffppzzz2XSy+9lDPOOIMZM2Zs237RokU89dRTbNmyhTlz5nDEEUcwYcIEHnjgAVatWgVUxqz/+Mc/7rTdJ554gpEjRzJjxgzGjRvHihUr+PjHP8611167bfz8mWeeYe3atU4jK6lVbfbAI2JPoF9mrq8+Pxb4FnAHMA24vPp4e5dU1MOn/R1yyCFcdtllHHvssWzZsoUBAwZw4oknMmDAAE4//XQ2b97MRz/6UX7729/Sr18/xo0bxxe/+EVWrVrFUUcdxcknn0y/fv247rrrOO2003jjjTcAuOyyyxgxYsQO27366qu599576devH4ceeiif+MQnGDhwIMuXL982/LLXXntx4403smrVKqeRlfQ2bU4nGxHDqfS6oRL4P8vMb0fEAcDPgWHA01ROI3xxZ+9V+nSyCxYs4Morr+TOO++sdSk7VdJnqt2T08l2rR1NJ9tmDzwznwRGtbJ+HTCla8qTJO2q3nclZi82efJkJk+eXOsyJAnoJXOh9ORdgXZ3fpZS31HzAK+rq2PdunUGTxfITNatW0ddXV2tS5HUA2o+hDJ06FDWrFnD888/X+tSdgt1dXUMHTq01mVI6gE1D/ABAwZw8MEH17oMSSpOzYdQJEkdY4BLUqEMcEkqlAEuSYUywCWpUAa4JBXKAJekQhngklQoA1ySCmWAS1KhDHBJKpQBLkmFMsAlqVAGuCQVygCXpEIZ4JJUKANckgplgEtSoQxwSSqUAS5JhTLAJalQBrgkFcoAl6RCGeCSVKh2B3hE9I+IP0TEndXlgyPioYhYFRFzIuKd3VemJGl7u9ID/0dgeYvlK4CrMvP9wEvAOV1ZmCRp59oV4BExFJgK/Et1OYCjgVurm8wGTuqOAiVJrWtvD/xq4OvAluryAcDLmbmpurwGeG9rO0bE9IhYHBGLn3/++U4VK0n6qzYDPCKOB9Zm5pKONJCZ12RmY2Y2Dh48uCNvIUlqxTvasc1E4ISI+M9AHbAP8D+A/SLiHdVe+FDgme4rU5K0vTZ74Jn5jcwcmpn1wGeA32bmGcC9wKeqm00Dbu+2KiVJb9OZ88BnAF+JiFVUxsR/0jUlSZLaoz1DKNtk5gJgQfX5k8D4ri9JktQeXokpSYUywCWpUAa4JBXKAJekQhngklQoA1ySCmWAS1KhDHBJKpQBLkmFMsAlqVAGuCQVygCXpEIZ4JJUKANckgplgEtSoQxwSSqUAS5JhTLAJalQBrgkFcoAl6RCGeCSVCgDXJIKZYBLUqEMcEkqlAEuSYUywCWpUAa4JBXKAJekQhngklSoNgM8IuoiYlFEPBwRj0XEJdX1B0fEQxGxKiLmRMQ7u79cSdJW7emBvwEcnZmjgNHAcRExAbgCuCoz3w+8BJzTfWVKkrbXZoBnxYbq4oDqfwkcDdxaXT8bOKlbKpQkteod7dkoIvoDS4D3Az8CngBezsxN1U3WAO/dwb7TgekAw4YN62y9vdusfXu4vVd6tj1JvUq7DmJm5ubMHA0MBcYDH2pvA5l5TWY2Zmbj4MGDO1imJGl7u3QWSma+DNwLHA7sFxFbe/BDgWe6uDZJ0k605yyUwRGxX/X5u4BjgOVUgvxT1c2mAbd3V5GSpLdrzxj4QcDs6jh4P+DnmXlnRCwDbomIy4A/AD/pxjolSdtpM8AzcykwppX1T1IZD5ck1YBXYkpSoQxwSSqUAS5JhTLAJalQBrgkFcoAl6RCGeCSVCgDXJIKZYBLUqEMcEkqlAEuSYUywCWpUAa4JBWqXbdUK1X9zF/3aHur63q0OUl9nD1wSSqUAS5JhTLAJalQBrgkFcoAl6RCGeCSVCgDXJIKZYBLUqEMcEkqlAEuSYUywCWpUAa4JBXKAJekQhngklSoNgM8It4XEfdGxLKIeCwi/rG6/t0RMS8iVlYf9+/+ciVJW7WnB74J+GpmHgJMAP4hIg4BZgLzM/MDwPzqsiSph7QZ4Jn5bGY2VZ+vB5YD7wVOBGZXN5sNnNRdRUqS3m6X7sgTEfXAGOAh4MDMfLb60p+BA3ewz3RgOsCwYcM6Wqck7disfXu4vVd6tr0daPdBzIjYC/i/wH/PzFdbvpaZCWRr+2XmNZnZmJmNgwcP7lSxkqS/aleAR8QAKuF9U2beVl39XEQcVH39IGBt95QoSWpNe85CCeAnwPLM/H6Ll+4AplWfTwNu7/ryJEk70p4x8InAZ4FHIqK5uu6bwOXAzyPiHOBp4O+7p0RJUmvaDPDMvB+IHbw8pWvLkSS1l1diSlKhDHBJKpQBLkmFMsAlqVAGuCQVygCXpEIZ4JJUKANckgplgEtSoQxwSSqUAS5JhTLAJalQBrgkFcoAl6RCGeCSVCgDXJIKZYBLUqEMcEkqlAEuSYUywCWpUAa4JBXKAJekQhngklQoA1ySCmWAS1KhDHBJKpQBLkmFMsAlqVAGuCQVqs0Aj4hrI2JtRDzaYt27I2JeRKysPu7fvWVKkrbXnh74dcBx262bCczPzA8A86vLkqQe1GaAZ+Z9wIvbrT4RmF19Phs4qYvrkiS14R0d3O/AzHy2+vzPwIE72jAipgPTAYYNG9bB5qRuNmvfHm7vlZ5tT7ulTh/EzMwEcievX5OZjZnZOHjw4M42J0mq6miAPxcRBwFUH9d2XUmSpPboaIDfAUyrPp8G3N415UiS2qs9pxHeDPwr8MGIWBMR5wCXA8dExErg76rLkqQe1OZBzMw8bQcvTeniWiRJu8ArMSWpUAa4JBXKAJekQhngklQoA1ySCmWAS1KhDHBJKpQBLkmFMsAlqVAGuCQVygCXpEIZ4JJUKANckgrV0VuqSd2qfuave7S91XU92pzUJeyBS1KhDHBJKpQBLkmFMsAlqVAGuCQVygCXpEIZ4JJUKANckgplgEtSoQxwSSqUAS5JhTLAJalQBrgkFcoAl6RCGeCSVKhOBXhEHBcRj0fEqoiY2VVFSZLa1uEAj4j+wI+ATwCHAKdFxCFdVZgkaec60wMfD6zKzCcz803gFuDErilLktSWztxS7b3Av7dYXgP8p+03iojpwPTq4oaIeLwTbfZqAYOAF3qswUuix5ra3fndla0PfH//obWV3X5PzMy8Brimu9vpDSJicWY21roO7Tq/u7L11e+vM0MozwDva7E8tLpOktQDOhPgvwc+EBEHR8Q7gc8Ad3RNWZKktnR4CCUzN0XEF4F7gP7AtZn5WJdVVqY+MVS0m/K7K1uf/P4iM2tdgySpA7wSU5IKZYBLUqEMcEnFiYh3RcQHa11HrRng6rMiYmSta9Cui4j/AjQDd1eXR0dEnzwDzoOYHRAR797Z65n5Yk/Voo6LiIXAQOA64KbMfKW2Fak9ImIJcDSwIDPHVNc9kpl97hdyt1+JuZtaAiTQ2vW0CQzv2XLUEZk5KSI+AJwNLImIRcBPM3NejUvTzr2Vma9E/M0/vz7ZEzXAOyAzD651DeoambkyIi4EFgM/AMZEJRm+mZm31bY67cBjEXE60L/6C/hLwIM1rqkmHELpgIj4UGauiIixrb2emU09XZN2XUQ0AP8VmArMA36SmU0R8R7gXzOz1QmEVFsRsQfwT8CxVP4Kvge4NDM31rSwGjDAOyAirsnM6RFxbysvZ2Ye3eNFaZdFxO+AfwFuzczXt3vts5l5Q20qk9rHAO+giOgHHJ6ZD9S6FqkviYgRwNeAeloMA/fFjpMB3gkR8YetR8FVnur46Xep3FGqbuv6zPQgdC8WEQ8D/5vKyQSbt67PzCU1K6pGPIjZOfMj4pPAbelvwhL9FLgYuAo4isp4uNdG9H6bMvPHtS6iN7AH3gkRsR7Yk0ov4HUqB1QyM/epaWFql4hYkpkfaXkO8dZ1ta5NOxYRs4C1wC+AN7au74vXX9gD74TM3LvWNahT3qgey1hZnRr5GWCvGtektk2rPl7QYl2fvP7CHngnRcQpwBFU/gdamJm/rHFJaqeIGAcsB/YDLgX2Bf45M/+tpoVJ7WSAd0JE/C/g/cDN1VWfBp7IzH+oXVXS7i0izmptfWZe39O11JoB3gkRsQL48NYDmNU/xx/LzA/XtjLtTFsTH2XmCT1Vi3ZdRPywxWIdMAVoysxP1aikmnEMvHNWAcOAp6vL76uuU+92OPDvVP5yeojW57RRL5WZ/63lckTsB9xSo3Jqyh54J1Sv5BsHLKquGkflZs+vgj253ioi+gPHAKcBDcCvgZu9p2uZImIA8Ghm9rn5we2Bd85FLZ4HMAn4DJVzi9VLZeZmKnNJ3x0RA6kE+YKIuCQz/2dtq1NbIuJX/HX2wf5ULsT6ee0qqh174J0UEWOA04FTgaeoXNTzw53vpVqrBvdUKuFdD9wBXJuZz9SyLrUtIj7GXwN8E/B0X/3e7IF3QHUuhtOq/70AzKHyy/ComhamdomI64HDgLuASzLz0RqXpHaoXjjX2jz8GRFvAE8A/5SZ83u8uBqxB94BEbEFWAick5mrquuedA6NMlS/v9eqiy3/AXglbaGqxzUOo3JnpcNqXU9PsQfeMadQGeu+NyLupnIE3DMZCpGZzneym6ke13h4u1MMd3v2wDshIvYETqQylHI0cD3wi8ycW9PCJPUJBngXiYj9qRzI/HRmTql1PZJ2fwa4JBXKsUBJKpQBLkmFMsClnYiI/SLi/BbLkyPizlrWJG1lgEs7tx9wfptbSTVggGu3ERH1EbEiIq6LiD9GxE0R8XcR8UBErIyI8RHx7oj4ZUQsjYh/i4iG6r6zIuLaiFgQEU9GxJeqb3s58B8jojkivlddt1dE3Fpt66aI8BoA1YQX8mh3834qp3OeTWVmyNOp3DHpBOCbVKaR/UNmnhQRW8/dH13d90NUbm68N/B4RPwYmAkclpmjoTKEAowBDgX+BDwATATu74kfTmrJHrh2N09l5iOZuQV4DJhfveHGI1QmrToCuAEgM38LHBARWy+d/3VmvpGZL1C5ae6BO2hjUWauqbbRXH1fqccZ4NrdvNHi+ZYWy1to+y/Olvtu3sn27d1O6lYGuPqahcAZsG045IXMfHUn26+nMqQi9Tr2HNTXzAKujYilwF+AaTvbODPXVQ+CPgr8Pyp375F6BS+ll6RCOYQiSYUywCWpUAa4JBXKAJekQhngklQoA1ySCmWAS1Kh/j//tZH1nWhXgwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df.plot(kind='bar', x='month')"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x132632910>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAETCAYAAAAveV3LAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAW/ElEQVR4nO3de7SVdb3v8fcXIlbeTcBhEWfJKSqVxaUFB0MMZWt28Hgrd3lJOjpCc3fap4tBbYdiWunOkZ46nc5x7Ey8pDQ8lmYehUgSdW8JVktUwEDFsTETxRuYqMD3/DEntMIFa7Fuc/1Y79cYjjmfZz7P/H3XnPJZv/V7nuf3RGYiSSpPv1oXIEnqGANckgplgEtSoQxwSSqUAS5JhXpHTzY2aNCgrK+v78kmJal4S5YseSEzB2+/vkcDvL6+nsWLF/dkk5JUvIh4urX1DqFIUqEMcEkqlAEuSYXq0THw1rz11lusWbOGjRs31rqU3UJdXR1Dhw5lwIABtS5FUjereYCvWbOGvffem/r6eiKi1uUULTNZt24da9as4eCDD651OZK6Wc2HUDZu3MgBBxxgeHeBiOCAAw7wrxmpj6h5gAOGdxfys5T6jl4R4JKkXVfzMfDt1c/8dZe+3+rLp+7S9rNmzWKvvfbia1/7Wte0v3o1Dz74IKeffjoAixcv5vrrr+cHP/hBl7y/pL6r1wX47mb16tX87Gc/2xbgjY2NNDY21rgqqXt1dUesLbvaUdtdOIQCfPvb32bEiBEcccQRPP744wA0NzczYcIEGhoaOPnkk3nppZcAmDx5MjNmzGD8+PGMGDGChQsXApWgnjRpEmPHjmXs2LE8+OCDAMycOZOFCxcyevRorrrqKhYsWMDxxx8PwIsvvshJJ51EQ0MDEyZMYOnSpUDlr4Czzz6byZMnM3z48G299ddee42pU6cyatQoDjvsMObMmdOjn5Ok3qXPB/iSJUu45ZZbaG5u5q677uL3v/89AGeddRZXXHEFS5cuZeTIkVxyySXb9tm0aROLFi3i6quv3rZ+yJAhzJs3j6amJubMmcOXvvQlAC6//HImTZpEc3MzX/7yl/+m7YsvvpgxY8awdOlSvvOd73DWWWdte23FihXcc889LFq0iEsuuYS33nqLu+++m/e85z08/PDDPProoxx33HHd/fFI6sX6fIAvXLiQk08+mT322IN99tmHE044gddee42XX36Zj33sYwBMmzaN++67b9s+p5xyCgAf+chHWL16NVC5IOnzn/88I0eO5NRTT2XZsmVttn3//ffz2c9+FoCjjz6adevW8eqrrwIwdepUBg4cyKBBgxgyZAjPPfccI0eOZN68ecyYMYOFCxey7777duVHIakwfT7AO2LgwIEA9O/fn02bNgFw1VVXceCBB/Lwww+zePFi3nzzzS5po2U7I0aMoKmpiZEjR3LhhRfyrW99q1NtSCpbnw/wI488kl/+8pe8/vrrrF+/nl/96lfsueee7L///tvGt2+44YZtvfEdeeWVVzjooIPo168fN9xwA5s3bwZg7733Zv369a3uM2nSJG666SYAFixYwKBBg9hnn3122Maf/vQn9thjD84880wuuOACmpqaOvIjS9pN9LqzUHr6aPLYsWP59Kc/zahRoxgyZAjjxo0DYPbs2Zx33nn85S9/Yfjw4fz0pz/d6fucf/75fPKTn+T666/nuOOOY8899wSgoaGB/v37M2rUKD73uc8xZsyYbftsPVjZ0NDAHnvswezZs3faxiOPPMIFF1xAv379GDBgAD/+8Y87+dNLKllkZo811tjYmNvf0GH58uV8+MMf7rEa+gI/U9WapxF2rYhYkplvO/+4zw+hSFKpDHBJKpQBLkmFMsAlqVAGuCQVygCXpEL1uvPAmdXFl4fPeqVr30+Seol2BXhErAbWA5uBTZnZGBHvBuYA9cBq4O8z86XuKVOStL1dGUI5KjNHtziZfCYwPzM/AMyvLhfpxhtvZPz48YwePZpzzz2Xhx56iIaGBjZu3Mhrr73GoYceyqOPPsqCBQs48sgjmTp1Kh/84Ac577zz2LJlCwBz587l8MMPZ+zYsZx66qls2LABgPr6ei6++GLGjh3LyJEjWbFiBQC/+93vGD16NKNHj2bMmDHbLrf/3ve+x7hx42hoaODiiy8GnEZWUus6MwZ+IrD12u/ZwEmdL6fnLV++nDlz5vDAAw/Q3NxM//79efzxxznhhBO48MIL+frXv86ZZ57JYYcdBsCiRYv44Q9/yLJly3jiiSe47bbbeOGFF7jsssv4zW9+Q1NTE42NjXz/+9/f1sagQYNoamriC1/4AldeeSUAV155JT/60Y9obm5m4cKFvOtd72Lu3LmsXLmSRYsW0dzc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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df.plot(kind='bar', x='month', y=['donations', 'expenses'])"
]
},
{
"cell_type": "code",
"execution_count": 17,
"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>donations</th>\n",
" <th>expenses</th>\n",
" <th>month</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>25</td>\n",
" <td>30</td>\n",
" <td>April</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5</td>\n",
" <td>10</td>\n",
" <td>May</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>55</td>\n",
" <td>20</td>\n",
" <td>June</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" donations expenses month\n",
"0 25 30 April\n",
"1 5 10 May\n",
"2 55 20 June"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "code",
"execution_count": 18,
"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>donations</th>\n",
" <th>expenses</th>\n",
" </tr>\n",
" <tr>\n",
" <th>month</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>April</th>\n",
" <td>25</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>May</th>\n",
" <td>5</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>June</th>\n",
" <td>55</td>\n",
" <td>20</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" donations expenses\n",
"month \n",
"April 25 30\n",
"May 5 10\n",
"June 55 20"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.set_index('month')"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x132694100>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAETCAYAAAAveV3LAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAW/ElEQVR4nO3de7SVdb3v8fcXIlbeTcBhEWfJKSqVxaUFB0MMZWt28Hgrd3lJOjpCc3fap4tBbYdiWunOkZ46nc5x7Ey8pDQ8lmYehUgSdW8JVktUwEDFsTETxRuYqMD3/DEntMIFa7Fuc/1Y79cYjjmfZz7P/H3XnPJZv/V7nuf3RGYiSSpPv1oXIEnqGANckgplgEtSoQxwSSqUAS5JhXpHTzY2aNCgrK+v78kmJal4S5YseSEzB2+/vkcDvL6+nsWLF/dkk5JUvIh4urX1DqFIUqEMcEkqlAEuSYXq0THw1rz11lusWbOGjRs31rqU3UJdXR1Dhw5lwIABtS5FUjereYCvWbOGvffem/r6eiKi1uUULTNZt24da9as4eCDD651OZK6Wc2HUDZu3MgBBxxgeHeBiOCAAw7wrxmpj6h5gAOGdxfys5T6jl4R4JKkXVfzMfDt1c/8dZe+3+rLp+7S9rNmzWKvvfbia1/7Wte0v3o1Dz74IKeffjoAixcv5vrrr+cHP/hBl7y/pL6r1wX47mb16tX87Gc/2xbgjY2NNDY21rgqqXt1dUesLbvaUdtdOIQCfPvb32bEiBEcccQRPP744wA0NzczYcIEGhoaOPnkk3nppZcAmDx5MjNmzGD8+PGMGDGChQsXApWgnjRpEmPHjmXs2LE8+OCDAMycOZOFCxcyevRorrrqKhYsWMDxxx8PwIsvvshJJ51EQ0MDEyZMYOnSpUDlr4Czzz6byZMnM3z48G299ddee42pU6cyatQoDjvsMObMmdOjn5Ok3qXPB/iSJUu45ZZbaG5u5q677uL3v/89AGeddRZXXHEFS5cuZeTIkVxyySXb9tm0aROLFi3i6quv3rZ+yJAhzJs3j6amJubMmcOXvvQlAC6//HImTZpEc3MzX/7yl/+m7YsvvpgxY8awdOlSvvOd73DWWWdte23FihXcc889LFq0iEsuuYS33nqLu+++m/e85z08/PDDPProoxx33HHd/fFI6sX6fIAvXLiQk08+mT322IN99tmHE044gddee42XX36Zj33sYwBMmzaN++67b9s+p5xyCgAf+chHWL16NVC5IOnzn/88I0eO5NRTT2XZsmVttn3//ffz2c9+FoCjjz6adevW8eqrrwIwdepUBg4cyKBBgxgyZAjPPfccI0eOZN68ecyYMYOFCxey7777duVHIakwfT7AO2LgwIEA9O/fn02bNgFw1VVXceCBB/Lwww+zePFi3nzzzS5po2U7I0aMoKmpiZEjR3LhhRfyrW99q1NtSCpbnw/wI488kl/+8pe8/vrrrF+/nl/96lfsueee7L///tvGt2+44YZtvfEdeeWVVzjooIPo168fN9xwA5s3bwZg7733Zv369a3uM2nSJG666SYAFixYwKBBg9hnn3122Maf/vQn9thjD84880wuuOACmpqaOvIjS9pN9LqzUHr6aPLYsWP59Kc/zahRoxgyZAjjxo0DYPbs2Zx33nn85S9/Yfjw4fz0pz/d6fucf/75fPKTn+T666/nuOOOY8899wSgoaGB/v37M2rUKD73uc8xZsyYbftsPVjZ0NDAHnvswezZs3faxiOPPMIFF1xAv379GDBgAD/+8Y87+dNLKllkZo811tjYmNvf0GH58uV8+MMf7rEa+gI/U9WapxF2rYhYkplvO/+4zw+hSFKpDHBJKpQBLkmFMsAlqVAGuCQVygCXpEL1uvPAmdXFl4fPeqVr30+Seol2BXhErAbWA5uBTZnZGBHvBuYA9cBq4O8z86XuKVOStL1dGUI5KjNHtziZfCYwPzM/AMyvLhfpxhtvZPz48YwePZpzzz2Xhx56iIaGBjZu3Mhrr73GoYceyqOPPsqCBQs48sgjmTp1Kh/84Ac577zz2LJlCwBz587l8MMPZ+zYsZx66qls2LABgPr6ei6++GLGjh3LyJEjWbFiBQC/+93vGD16NKNHj2bMmDHbLrf/3ve+x7hx42hoaODiiy8GnEZWUus6MwZ+IrD12u/ZwEmdL6fnLV++nDlz5vDAAw/Q3NxM//79efzxxznhhBO48MIL+frXv86ZZ57JYYcdBsCiRYv44Q9/yLJly3jiiSe47bbbeOGFF7jsssv4zW9+Q1NTE42NjXz/+9/f1sagQYNoamriC1/4AldeeSUAV155JT/60Y9obm5m4cKFvOtd72Lu3LmsXLmSRYsW0dzc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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df.set_index('month').plot(kind='bar')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Summarizing and reshaping data\n",
"\n",
"## Each row is a summary line"
]
},
{
"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>borough</th>\n",
" <th>breed</th>\n",
" <th>count</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Brooklyn</td>\n",
" <td>medium</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Brooklyn</td>\n",
" <td>small</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Brooklyn</td>\n",
" <td>big</td>\n",
" <td>52</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Manhattan</td>\n",
" <td>medium</td>\n",
" <td>25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Manhattan</td>\n",
" <td>small</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Manhattan</td>\n",
" <td>big</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Queens</td>\n",
" <td>medium</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Queens</td>\n",
" <td>big</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Queens</td>\n",
" <td>small</td>\n",
" <td>35</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" borough breed count\n",
"0 Brooklyn medium 5\n",
"1 Brooklyn small 15\n",
"2 Brooklyn big 52\n",
"3 Manhattan medium 25\n",
"4 Manhattan small 9\n",
"5 Manhattan big 4\n",
"6 Queens medium 8\n",
"7 Queens big 15\n",
"8 Queens small 35"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.DataFrame([\n",
" { 'borough': 'Brooklyn', 'breed': 'medium', 'count': 5 },\n",
" { 'borough': 'Brooklyn', 'breed': 'small', 'count': 15 },\n",
" { 'borough': 'Brooklyn', 'breed': 'big', 'count': 52 },\n",
" { 'borough': 'Manhattan', 'breed': 'medium', 'count': 25 },\n",
" { 'borough': 'Manhattan', 'breed': 'small', 'count': 9 },\n",
" { 'borough': 'Manhattan', 'breed': 'big', 'count': 4 },\n",
" { 'borough': 'Queens', 'breed': 'medium', 'count': 8 },\n",
" { 'borough': 'Queens', 'breed': 'big', 'count': 15 },\n",
" { 'borough': 'Queens', 'breed': 'small', 'count': 35 },\n",
"])\n",
"# Each row is a SUMMARY!!!!!\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 26,
"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 tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"3\" halign=\"left\">count</th>\n",
" </tr>\n",
" <tr>\n",
" <th>breed</th>\n",
" <th>big</th>\n",
" <th>medium</th>\n",
" <th>small</th>\n",
" </tr>\n",
" <tr>\n",
" <th>borough</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Brooklyn</th>\n",
" <td>52</td>\n",
" <td>5</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Manhattan</th>\n",
" <td>4</td>\n",
" <td>25</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Queens</th>\n",
" <td>15</td>\n",
" <td>8</td>\n",
" <td>35</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count \n",
"breed big medium small\n",
"borough \n",
"Brooklyn 52 5 15\n",
"Manhattan 4 25 9\n",
"Queens 15 8 35"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.pivot_table(index='borough', columns='breed')"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1328a53d0>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAEyCAYAAADjiYtYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXxU9f3v8dcnEAjIJkKtP7EGKi5AQsDgFRFRUQlSFSnighLQW5S2Kq0bdHHpbS0oraW0v1oeBUR+qFilF+vSS91qXTHRgYiKuKBCKQKKQpH9c/+YM+MQlsxkJjk55P18PHhk5qyfZMzbk+8553PM3RERkejJC7sAERGpHQW4iEhEKcBFRCJKAS4iElEKcBGRiGpanzvr0KGDFxYW1ucuRUQir7Kycp27d6w+vV4DvLCwkIqKivrcpYhI5JnZh3ubriEUEZGIUoCLiESUAlxEJKLqdQxcRHJj+/btrFy5ki1btoRdiuRQQUEBnTp1Ij8/P63lFeAiEbRy5Upat25NYWEhZhZ2OZID7s769etZuXIlnTt3TmsdDaGIRNCWLVs45JBDFN4HEDPjkEMOyeivKgW4SEQpvA88mX6mCnARkYhSgItIRsyM6667Lvl+ypQp3HrrrXW6z1atWtXp9ut7P7lyQJ/ELJzwWE62s2LSkJxsR+RA0Lx5c+bPn8/EiRPp0KFD2OUk7dixg6ZND+hI24OOwEUkI02bNmXs2LHcdddde8xbsWIFp59+OsXFxQwcOJCPPvoIgNGjR3PNNddw0kkn0aVLFx566KHkOnfeeSd9+vShuLiYW265ZZ/7/cEPfkD37t0ZOHAga9euBeDUU09l/PjxlJaWMnXqVCorKxkwYADHH388gwYNYvXq1QC89957lJWVcfzxx9O/f3/efvttAD744AP69u1LUVERP/nJT3L2M6ovCnARydj3vvc95s6dy+eff77b9Kuvvpry8nKWLFnCyJEjueaaa5LzVq9ezfPPP8+jjz7KhAkTAFi4cCHLly9n0aJFxGIxKisree655/bY33/+8x9KS0tZunQpAwYM4LbbbkvO27ZtGxUVFVxzzTVcffXVPPTQQ1RWVnL55Zfz4x//GICxY8cybdo0KisrmTJlCt/97ncBuPbaaxk3bhxVVVUcdthhOf851bXG9feGiOREmzZtGDVqFL/97W9p0aJFcvpLL73E/PnzAbjsssu48cYbk/OGDh1KXl4e3bp1Y82aNUA8wBcuXEivXr0A2LRpE8uXL+eUU07ZbX95eXlceOGFAFx66aUMGzYsOS8xfdmyZbzxxhuceeaZAOzcuZPDDjuMTZs28eKLL3LBBRck19m6dSsAL7zwAg8//HCy3ptuuikHP536owAXkVoZP348vXv3ZsyYMWkt37x58+TrxMPU3Z2JEydy5ZVXZrTv1MvtDjrooOS2unfvzksvvbTbsl988QXt2rUjFovVuK2oSWsIxcxWmFmVmcXMrCKY1t7M/m5my4OvB9dtqSLSkLRv354RI0YwY8aM5LSTTjqJBx54AIC5c+fSv3///W5j0KBBzJw5k02bNgGwatUqPvnkEwAGDhzIqlWrANi1a1dy3Py+++7j5JNP3mNbxxxzDGvXrk0G+Pbt21m6dClt2rShc+fO/PnPfwbiQb948WIA+vXrt1u9UZPJGPhp7l7i7qXB+wnAU+7eFXgqeC8ijch1113HunXrku+nTZvGrFmzKC4uZs6cOUydOnW/65911llccsklyROJw4cPZ+PGjezatYt3332X9u3bA/Gj7EWLFtGjRw+efvppbr755j221axZMx566CFuuukmevbsSUlJCS+++CIQD+cZM2bQs2dPunfvzoIFCwCYOnUqv//97ykqKkr+zyJKLPGnzH4XMlsBlLr7upRpy4BT3X21mR0GPOvux+xvO6WlpV6fD3TQZYRyoHrrrbc47rjjwi6jzrzxxhvMnDmTX//612GXUu/29tmaWWXKwXNSukfgDiw0s0ozGxtMO9TdVwev/w0curcVzWysmVWYWUXi0h8Rkf3p0aNHowzvTKV7EvNkd19lZl8D/m5mb6fOdHc3s70eyrv7dGA6xI/As6pWRESS0joCd/dVwddPgL8AJwBrgqETgq+f1FWRIiKypxoD3MwOMrPWidfAWcAbwCNAebBYObCgrooUEZE9pTOEcijwl+BayabAfe7+NzN7FXjQzK4APgRG1F2ZIiJSXY0B7u7vAz33Mn09MLAuihIRkZrpTkyRA0CuLplNSOfS2S+//JKysjKefvppmjRpktP9783tt9/Oj370oxqXKywspKKiYo9OiXfffTctW7Zk1KhR+1y3qqqKX/3qV9xzzz3Zllsv1MxKRGpl5syZDBs2rF7C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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df.pivot_table(index='borough', columns='breed').plot(kind='bar')"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x132908eb0>"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df.pivot_table(index='borough', columns='breed').plot(kind='bar', y='count')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Each row is a single data point"
]
},
{
"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>breed</th>\n",
" <th>borough</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>big</td>\n",
" <td>Queens</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>big</td>\n",
" <td>Brooklyn</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>small</td>\n",
" <td>Brooklyn</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>big</td>\n",
" <td>Brooklyn</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>big</td>\n",
" <td>Brooklyn</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>small</td>\n",
" <td>Bronx</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>big</td>\n",
" <td>Bronx</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>medium</td>\n",
" <td>Bronx</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>medium</td>\n",
" <td>Brooklyn</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>big</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>small</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>small</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>small</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>small</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" breed borough\n",
"0 big Queens\n",
"1 big Brooklyn\n",
"2 small Brooklyn\n",
"3 big Brooklyn\n",
"4 big Brooklyn\n",
"5 small Bronx\n",
"6 big Bronx\n",
"7 medium Bronx\n",
"8 medium Brooklyn\n",
"9 big Manhattan\n",
"10 small Manhattan\n",
"11 small Manhattan\n",
"12 small Manhattan\n",
"13 small Manhattan"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.DataFrame([\n",
" { 'breed': 'big', 'borough': 'Queens' },\n",
" { 'breed': 'big', 'borough': 'Brooklyn' },\n",
" { 'breed': 'small', 'borough': 'Brooklyn' },\n",
" { 'breed': 'big', 'borough': 'Brooklyn' },\n",
" { 'breed': 'big', 'borough': 'Brooklyn' },\n",
" { 'breed': 'small', 'borough': 'Bronx' },\n",
" { 'breed': 'big', 'borough': 'Bronx' },\n",
" { 'breed': 'medium', 'borough': 'Bronx' },\n",
" { 'breed': 'medium', 'borough': 'Brooklyn' },\n",
" { 'breed': 'big', 'borough': 'Manhattan' },\n",
" { 'breed': 'small', 'borough': 'Manhattan' },\n",
" { 'breed': 'small', 'borough': 'Manhattan' },\n",
" { 'breed': 'small', 'borough': 'Manhattan' },\n",
" { 'breed': 'small', 'borough': 'Manhattan' },\n",
"])\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"borough breed \n",
"Bronx big 1\n",
" medium 1\n",
" small 1\n",
"Brooklyn big 3\n",
" medium 1\n",
" small 1\n",
"Manhattan small 4\n",
" big 1\n",
"Queens big 1\n",
"Name: breed, dtype: int64"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby('borough').breed.value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 39,
"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>borough</th>\n",
" <th>breed</th>\n",
" <th>counts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Bronx</td>\n",
" <td>big</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Bronx</td>\n",
" <td>medium</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Bronx</td>\n",
" <td>small</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Brooklyn</td>\n",
" <td>big</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Brooklyn</td>\n",
" <td>medium</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Brooklyn</td>\n",
" <td>small</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Manhattan</td>\n",
" <td>small</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Manhattan</td>\n",
" <td>big</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Queens</td>\n",
" <td>big</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" borough breed counts\n",
"0 Bronx big 1\n",
"1 Bronx medium 1\n",
"2 Bronx small 1\n",
"3 Brooklyn big 3\n",
"4 Brooklyn medium 1\n",
"5 Brooklyn small 1\n",
"6 Manhattan small 4\n",
"7 Manhattan big 1\n",
"8 Queens big 1"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# If you get here, use the summary version with pivot_table\n",
"df.groupby('borough').breed.value_counts().reset_index(name='counts')"
]
},
{
"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>breed</th>\n",
" <th>big</th>\n",
" <th>medium</th>\n",
" <th>small</th>\n",
" </tr>\n",
" <tr>\n",
" <th>borough</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Bronx</th>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Brooklyn</th>\n",
" <td>3.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Manhattan</th>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Queens</th>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"breed big medium small\n",
"borough \n",
"Bronx 1.0 1.0 1.0\n",
"Brooklyn 3.0 1.0 1.0\n",
"Manhattan 1.0 NaN 4.0\n",
"Queens 1.0 NaN NaN"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby('borough').breed.value_counts().unstack()"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x132559f10>"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df.groupby('borough').breed.value_counts().unstack().plot(kind='bar')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Here's an easier way"
]
},
{
"cell_type": "code",
"execution_count": 44,
"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>breed</th>\n",
" <th>borough</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>big</td>\n",
" <td>Queens</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>big</td>\n",
" <td>Brooklyn</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>small</td>\n",
" <td>Brooklyn</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>big</td>\n",
" <td>Brooklyn</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>big</td>\n",
" <td>Brooklyn</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>small</td>\n",
" <td>Bronx</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>big</td>\n",
" <td>Bronx</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>medium</td>\n",
" <td>Bronx</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>medium</td>\n",
" <td>Brooklyn</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>big</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>small</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>small</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>small</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>small</td>\n",
" <td>Manhattan</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" breed borough\n",
"0 big Queens\n",
"1 big Brooklyn\n",
"2 small Brooklyn\n",
"3 big Brooklyn\n",
"4 big Brooklyn\n",
"5 small Bronx\n",
"6 big Bronx\n",
"7 medium Bronx\n",
"8 medium Brooklyn\n",
"9 big Manhattan\n",
"10 small Manhattan\n",
"11 small Manhattan\n",
"12 small Manhattan\n",
"13 small Manhattan"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"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>breed</th>\n",
" <th>big</th>\n",
" <th>medium</th>\n",
" <th>small</th>\n",
" </tr>\n",
" <tr>\n",
" <th>borough</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Bronx</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Brooklyn</th>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Manhattan</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Queens</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"breed big medium small\n",
"borough \n",
"Bronx 1 1 1\n",
"Brooklyn 3 1 1\n",
"Manhattan 1 0 4\n",
"Queens 1 0 0"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(df.borough, df.breed)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x132ba2130>"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"pd.crosstab(df.borough, df.breed).plot(kind='bar')"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x132c3c220>"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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K9vbR48ezejRo7nmmmvS3L2dckCZmWXYihUr+OxnP8uyZcvYd999ufbaawHo06cPjY2NnHjiiXz729/moYceorGxkbq6Or7//e/z9ttv8/nPf5577rmHhoYGzj33XL72ta8BcM455zBnzhyefvrpNHdtl/w9KDOzDDvwwAM56qijADjrrLO46qqrADj99NMBePLJJ1m6dOn2ed566y2OOOIIVqxYweLFiznppJOA3KnAfv36sWbNGtasWcOxxx4LwNlnn80vf/nLcu9WURxQZmYZ1vL27G3je++9N5D7EuxJJ53EnXfe+a75mpqaGDFiBE888cS72tesWVPCatuXT/GZmWXYiy++uD1k5s6dy9FHH/2u6ePGjWPBggU8++yzAKxfv54///nPDB06lFWrVm1f9u2332bJkiX06tWLXr168dhjjwFwxx13lHFvWscBZWaWYUOHDuWaa66hurqa119/nZkzZ75ret++fbn11ls588wzGTVqFEcccQTLly9njz324J577mHWrFmMHj2a2tpaHn/8cQBuueUWPve5z1FbW0tEpLFbRVGWi+tI6urqor6+Pu0yzKxMli1bRnV1ddpldCiFjpmkhoioKzS/e1BmZpZJDigzM8skB5SZmWWSA8rMzDLJAWVmZpnkgDIzs0zykyTMzNpB1Vd+0a7ra75i4q7naW5m0qRJLF68+F3tn/70p7nooosYPnx4u9ZUbg4oM7P3mZtuuintEtqFT/GZmXVghV7HMX78eLY9OOCHP/whQ4YMYezYsXzmM5/hggsuSLni4jmgzMw6sB29jgPg5Zdf5lvf+hZPPvkkCxYsYPny5SlW2noOKDOzDqzl6zi2PQQWYOHChRx33HH07t2biooKTjvttLTK3C0OKDOzDmxHr+N4P3BAmZl1YDt7Hcfhhx/O73//e15//XU2b97Mvffem1aZu8V38bWTJauXUHNbTdpldFhN05vSLsGsTYq5LbwUtr2O49xzz2X48OHMnDmT+++/H4D+/ftzySWXMHbsWHr37s2wYcPo2bNnKnXuDgeUmVkHVVVVVfDGh0ceeWT78Cc+8QnOO+88Nm/ezJQpU/jIRz5Sxgrbxqf4zMzexy677DJqa2sZOXIkAwcO7FAB5R6Umdn72OzZs9MuYbe5B2VmZpnkgDIzs0xyQJmZWSY5oMzMLJN8k4SZWXu4rJ2/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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"pd.crosstab(df.borough, df.breed).plot(kind='barh')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment