{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 10 -- Groupby" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Topics Covered:\n", "\n", "Setting Display Options\n", "\n", "Read 'pickled' DataFrame\n", "\n", "Create GroupBy Object\n", "\n", "GroupBy with Aggregations\n", "\n", "Understanding Binning\n", "\n", "Defining Functions\n", "\n", "Applying Functions to Groups\n", "\n", "Applying Transformations to Groups\n", "\n", "Top/Bottom N processing\n", "\n", "Resources" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "from pandas import Series, DataFrame, Index\n", "from IPython.display import Image" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setting Display Options" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For this notebook, display floats with a field width of 20 and two places left of the decimal." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "pd.options.display.float_format = '{:20,.2f}'.format" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read 'pickled' DataFrame" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The pd.read_pickle() function loads the Lending Club Data Frame created in Chapter 12, Additional Data Handling. The pd.read_pickle() method is documented here. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(42595, 24)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loans = pd.read_pickle('lending_club.pkl')\n", "loans.shape" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "loans.set_index('id', inplace=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display attribute information for the 'loans' DataFrame." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 42595 entries, 872482 to 1064908\n", "Data columns (total 23 columns):\n", "mem_id 42595 non-null int64\n", "ln_amt 42595 non-null int64\n", "term 42595 non-null object\n", "rate 42595 non-null float64\n", "m_pay 42595 non-null float64\n", "grade 42595 non-null object\n", "sub_grd 42595 non-null object\n", "emp_len 42595 non-null object\n", "own_rnt 42595 non-null object\n", "income 42595 non-null float64\n", "ln_stat 42595 non-null object\n", "purpose 42595 non-null object\n", "state 42595 non-null object\n", "dti 42595 non-null float64\n", "delinq_2yrs 42566 non-null float64\n", "ln_fst 42566 non-null object\n", "inq_6mnth 42566 non-null float64\n", "open_acc 42566 non-null float64\n", "revol_bal 42595 non-null int64\n", "revol_util 42595 non-null float64\n", "ln_plcy 42595 non-null bool\n", "dti_cat 42595 non-null category\n", "inc_cat 42595 non-null int8\n", "dtypes: bool(1), category(1), float64(8), int64(3), int8(1), object(9)\n", "memory usage: 6.9+ MB\n" ] } ], "source": [ "loans.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create GroupBy Object" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create the GroupBy object 'grp_grd' using the key column 'grade'. It does not compute anything until an operation is applied to the resulting groups. One of the simplest aggregation method applied is the len() function used to return the number of groups. The GroupBy: split-apply-combine doc for panda is located here." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "7\n" ] } ], "source": [ "grp_grd = loans.groupby('grade')\n", "print(type(grp_grd))\n", "print(len(grp_grd))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The GroupBy object has a number of aggregation methods which can be applied to individual group levels, for example .mean()." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "grade\n", "A 66,711.88\n", "B 67,918.69\n", "C 68,199.96\n", "D 68,277.02\n", "E 75,889.16\n", "F 83,095.53\n", "G 93,055.82\n", "Name: income, dtype: float64" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grp_grd['income'].mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Even if we do not use the GroupBy object created above, we can still render the average income for each level of the column 'grade' by passing the DataFrame column name. In this case, 'income' grouped by grade to calculate the group mean." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "grade\n", "A 66,711.88\n", "B 67,918.69\n", "C 68,199.96\n", "D 68,277.02\n", "E 75,889.16\n", "F 83,095.53\n", "G 93,055.82\n", "Name: income, dtype: float64" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loans.groupby('grade')['income'].mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Not surprisingly, the pandas GroupBy logic is analogous to SQL's group by syntax. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " /******************************************************/\n", " /* c10_groupby_grade.sas */\n", " /******************************************************/\n", " 6 proc sql;\n", " 7 select grade label = 'Grade',\n", " 8 mean(income) label = 'Mean Income'\n", " 9 \n", " 10 from df\n", " 11 group by grade\n", " 12 order by mean;\n", "````" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4RDcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAGAAAISodpAAQA\nAAABAAAIUJydAAEAAAAMAAAQyOocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhbmR5AAAFkAMAAgAA\nABQAABCekAQAAgAAABQAABCykpEAAgAAAAM4NgAAkpIAAgAAAAM4NgAA6hwABwAACAwAAAiSAAAA\nABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAMjAxNjoxMTozMCAxNzoxMjo1NgAyMDE2OjExOjMwIDE3OjEyOjU2AAAAcgBhAG4A\nZAB5AAAA/+ELGGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfv\nu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0i\nYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5\nOS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6\nZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1\ncmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVp\nZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDov\nL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTYtMTEtMzBUMTc6MTI6\nNTYuODYzPC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9u\nIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht\nbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJk\nZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt\nbnMjIj48cmRmOmxpPnJhbmR5PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwv\ncmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/b\nAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsa\nIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioq\nKioqKioqKioqKioqKioqKioqKioqKv/AABEIAL0AngMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA\nAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU\nMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl\nZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK\n0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG\nBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS\n8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4\neXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri\n4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APe9b1O50+S3W2EX7wOWMik9NvTBHrWZ/wAJ\nFqPpa/8Afpv/AIqp/FH/AB8WX+5J/NK8i1TVfEWu6/rUOkeI7TwzpWhFYprmW2jmaaQoGJbeQEQA\n4B+vXtvBR5dUYylLmsmerf8ACRaj6Wv/AH6b/wCKo/4SLUfS1/79N/8AFV5LB8QdWsPDuiLJZ2Hi\nPVr+4ltM6XfoI3dASp3YKgkYJGRjOf8AZqzrPxF1Lw9q+n22s+GVtra8aKMz/wBqws4ZsBtkQ+Zw\npbGePXitOSne3nbr6mfPO1z1H/hItR9LX/v03/xVH/CRaj6Wv/fpv/iq8c8T/EjVza6kfD2kTxWN\nnepZ/wBs+ZGy+aJEV18phnbgkbhnnHTtbvvi5Z2Xi2TSzYxtY292LOe8N/EsqSEgErbn52UEgFh/\ntelJRpu1uv8AwP8AMblUV/I9WPiTURIFxa8gnPlN2x/te9O/4SLUfS1/79N/8VWQf+PhP9xv5ivM\nz431fT/jFqFhqV4v/CPRkQKhRF8mQweaDuxuOdjjr3ocaaeoKU2rpnsf/CRaj6Wv/fpv/iqP+Ei1\n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\n", "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ " Image(filename='Anaconda3\\\\output\\\\income_groupby_grade.JPG') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## GroupBy with Aggregations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use the .aggregate() attribute to apply multiple methods to the group levels." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
meanstdcount
grade
A66,711.8854,049.4810202
B67,918.6960,705.9412408
C68,199.9686,568.698747
D68,277.0249,031.336025
E75,889.1655,312.083401
F83,095.5363,771.871300
G93,055.8273,522.11512
\n", "
" ], "text/plain": [ " mean std count\n", "grade \n", "A 66,711.88 54,049.48 10202\n", "B 67,918.69 60,705.94 12408\n", "C 68,199.96 86,568.69 8747\n", "D 68,277.02 49,031.33 6025\n", "E 75,889.16 55,312.08 3401\n", "F 83,095.53 63,771.87 1300\n", "G 93,055.82 73,522.11 512" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grp_grd['income'].aggregate(['mean', 'std', 'count'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The analog SAS program using the MEAN, STD, and COUNT function to produce the same results." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " /******************************************************/\n", " /* c10_groupby_grade_stats.sas */\n", " /******************************************************/\n", " 3 proc sql;\n", " 4 select grade label = 'Grade'\n", " 5 , mean(income) label = 'Mean Income' as mean\n", " 6 , std(income) label = 'Standard Deviation'\n", " 7 , count(income) label = 'Count'\n", " 8 \n", " 9 from df\n", " 10 group by grade\n", " 11 order by mean;\n", "````" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4RDcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAGAAAISodpAAQA\nAAABAAAIUJydAAEAAAAMAAAQyOocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhbmR5AAAFkAMAAgAA\nABQAABCekAQAAgAAABQAABCykpEAAgAAAAMyOAAAkpIAAgAAAAMyOAAA6hwABwAACAwAAAiSAAAA\nABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAMjAxNjoxMTozMCAxOToyMTo0NwAyMDE2OjExOjMwIDE5OjIxOjQ3AAAAcgBhAG4A\nZAB5AAAA/+ELGGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfv\nu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0i\nYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5\nOS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6\nZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1\ncmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVp\nZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDov\nL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTYtMTEtMzBUMTk6MjE6\nNDcuMjg0PC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9u\nIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht\nbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJk\nZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt\nbnMjIj48cmRmOmxpPnJhbmR5PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwv\ncmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/b\nAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsa\nIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioq\nKioqKioqKioqKioqKioqKioqKioqKv/AABEIAL0BWQMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA\nAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU\nMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl\nZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK\n0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG\nBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS\n8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4\neXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri\n4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APoq9vEsLN7iVWZVIBCAZOSB3+tZn/CUW3/P\nrdfkn/xVT+If+QHN/vx/+jFrzbxV4pHh1LOC1sJtT1PUJDFZ2MLBTIQMsSx4VQOp5xn641hGLV2Z\nzk07I9C/4Si2/wCfW6/JP/iqP+Eotv8An1uvyT/4qvLdH8c3EsmqQ+KtBufD8+m24upSZPtMRhIP\nzCRBgn5W+UA9DjOCAknxY8Ex2IvH1xPIMvkhhbync20MQAFycAjJHAyAeTWns4dzP2k+x6n/AMJR\nbf8APrdfkn/xVH/CUW3/AD63X5J/8VXnV/4/8L6ZpVhqV9rEMVpqPNrJtZvMHrgAkAdyQMHg4NZ1\nr8UfD6eGLbWtcuotNiup5YYUDNOZNjldw2Lkg4BzjAyBmh04J2bD2k2rpHqreKbVRk2t11A6J/8A\nFUv/AAlFt/z63X5J/wDFVyUN5b6hp8F3ZTJPbz7HjkQ5DKSMEVzXxA8ef8ILbWEx0xr9buVkYLNs\nMaqNxb7pzgZPbpRKlCO7BVJS2PUv+Eotv+fW6/JP/iqP+Eotv+fW6/JP/iq8pv8A4iw2vxC03wzb\n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\n", "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ " Image(filename='Anaconda3\\\\output\\\\groupby_income_stats.JPG') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can requests multiple columns as part of the GroupBy operation. In this case, loans['income'] and loans['dti'] (debt-to-income ratio). The .describe() attribute is applied to each of the group levels. The .stack() .and unstack() attributes are discussed here ." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
incomedti
countmeanstdmin25%50%75%maxcountmeanstdmin25%50%75%max
grade
A10,202.0066,711.8854,049.483,300.0040,000.0057,632.0080,000.001,900,000.0010,202.0012.047.010.006.4611.5017.1029.99
B12,408.0067,918.6960,705.942,000.0040,000.0057,996.0080,497.003,900,000.0012,408.0013.396.660.008.3113.5118.6229.95
C8,747.0068,199.9686,568.694,000.0040,000.0056,000.0080,000.006,000,000.008,747.0013.856.500.008.9714.0518.9929.78
D6,025.0068,277.0249,031.334,000.0040,000.0058,000.0082,000.001,200,000.006,025.0013.986.430.009.1614.3119.2529.63
E3,401.0075,889.1655,312.084,200.0045,000.0062,000.0090,000.00750,000.003,401.0014.186.530.009.3614.6219.6029.70
F1,300.0083,095.5363,771.877,280.0050,000.0070,679.00100,000.001,440,000.001,300.0014.656.550.009.8115.1619.7629.95
G512.0093,055.8273,522.111,896.0052,000.0075,000.00110,000.00725,000.00512.0015.697.290.009.8915.9621.3329.96
\n", "
" ], "text/plain": [ " income \\\n", " count mean std \n", "grade \n", "A 10,202.00 66,711.88 54,049.48 \n", "B 12,408.00 67,918.69 60,705.94 \n", "C 8,747.00 68,199.96 86,568.69 \n", "D 6,025.00 68,277.02 49,031.33 \n", "E 3,401.00 75,889.16 55,312.08 \n", "F 1,300.00 83,095.53 63,771.87 \n", "G 512.00 93,055.82 73,522.11 \n", "\n", " \\\n", " min 25% 50% \n", "grade \n", "A 3,300.00 40,000.00 57,632.00 \n", "B 2,000.00 40,000.00 57,996.00 \n", "C 4,000.00 40,000.00 56,000.00 \n", "D 4,000.00 40,000.00 58,000.00 \n", "E 4,200.00 45,000.00 62,000.00 \n", "F 7,280.00 50,000.00 70,679.00 \n", "G 1,896.00 52,000.00 75,000.00 \n", "\n", " dti \\\n", " 75% max count \n", "grade \n", "A 80,000.00 1,900,000.00 10,202.00 \n", "B 80,497.00 3,900,000.00 12,408.00 \n", "C 80,000.00 6,000,000.00 8,747.00 \n", "D 82,000.00 1,200,000.00 6,025.00 \n", "E 90,000.00 750,000.00 3,401.00 \n", "F 100,000.00 1,440,000.00 1,300.00 \n", "G 110,000.00 725,000.00 512.00 \n", "\n", " \\\n", " mean std min \n", "grade \n", "A 12.04 7.01 0.00 \n", "B 13.39 6.66 0.00 \n", "C 13.85 6.50 0.00 \n", "D 13.98 6.43 0.00 \n", "E 14.18 6.53 0.00 \n", "F 14.65 6.55 0.00 \n", "G 15.69 7.29 0.00 \n", "\n", " \\\n", " 25% 50% 75% \n", "grade \n", "A 6.46 11.50 17.10 \n", "B 8.31 13.51 18.62 \n", "C 8.97 14.05 18.99 \n", "D 9.16 14.31 19.25 \n", "E 9.36 14.62 19.60 \n", "F 9.81 15.16 19.76 \n", "G 9.89 15.96 21.33 \n", "\n", " \n", " max \n", "grade \n", "A 29.99 \n", "B 29.95 \n", "C 29.78 \n", "D 29.63 \n", "E 29.70 \n", "F 29.95 \n", "G 29.96 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grp_grd['income', 'dti'].describe().unstack()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The GroupBy .size() attribute returns a count of the number of values for each level. Of course, this same information is available as the loans['count'] column from the operation executed in the cell above." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "grade\n", "A 10202\n", "B 12408\n", "C 8747\n", "D 6025\n", "E 3401\n", "F 1300\n", "G 512\n", "dtype: int64" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grp_grd.size()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The analog SAS program." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " /******************************************************/\n", " /* c10_groupby_grade_count.sas */\n", " /******************************************************/\n", " 21 proc sql;\n", " 22 select grade\n", " 23 ,count(grade) label='N'\n", " 24 from df\n", " 25 group by grade;\n", " 26 quit;\n", "````" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4RDcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAGAAAISodpAAQA\nAAABAAAIUJydAAEAAAAMAAAQyOocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhbmR5AAAFkAMAAgAA\nABQAABCekAQAAgAAABQAABCykpEAAgAAAAM1NgAAkpIAAgAAAAM1NgAA6hwABwAACAwAAAiSAAAA\nABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAMjAxNjoxMTozMCAyMDozMjowMwAyMDE2OjExOjMwIDIwOjMyOjAzAAAAcgBhAG4A\nZAB5AAAA/+ELGGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfv\nu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0i\nYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5\nOS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6\nZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1\ncmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVp\nZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDov\nL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTYtMTEtMzBUMjA6MzI6\nMDMuNTU4PC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9u\nIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht\nbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJk\nZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt\nbnMjIj48cmRmOmxpPnJhbmR5PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwv\ncmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/b\nAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsa\nIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioq\nKioqKioqKioqKioqKioqKioqKioqKv/AABEIANEAgQMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA\nAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU\nMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl\nZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK\n0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG\nBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS\n8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4\neXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri\n4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APpGiiigAoormfEE86asEjuJo18hTtjlZRnc\n3PB9hVRi5OyFJ8qudNRXDfabn/n8uv8AwIf/ABo+03P/AD+XX/gQ/wDjWnsZGXtonc0Vw32m5/5/\nLr/wIf8Axo+03P8Az+XX/gQ/+NHsZB7aJ3NFcN9puf8An8uv/Ah/8abFdXTISby6+8w/4+H9T70e\nxkP2sTu6K4b7Tc/8/l1/4EP/AI0fabn/AJ/Lr/wIf/Gj2Mhe2idzRXDfabn/AJ/Lr/wIf/Gj7Tc/\n8/l1/wCBD/40exkHtonc0Vw32m5/5/Lr/wACH/xrr9MdpNJs3kYszQIWZjkk7RzUSg4blxmpbFqi\niioLCiiigArlvEX/ACGh/wBe6f8AoT11Nct4i/5DQ/690/8AQnrSl8aM6nws8Nu/F3iua0v9ettc\ntbayXWl0yPTPsyM8aiVVLbzzvIySpB4JII4rTi1zXpNX8VX974pi0zRtFuZIEjfT1mxlBtJIwxCk\nggDkngnHFUb34Vaxe+Nr3UJZdFayvL5Ll7sxOt2kasriNVAEY5UAt948knnFehP4V0WW11S2lsVe\n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\n", "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ " Image(filename='Anaconda3\\\\output\\\\groupby_grade_count.JPG') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The .get_group attribute returns information about a particular group level. " ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "512" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grp_grd.get_group('G').mem_id.count()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " /******************************************************/\n", " /* c10_groupby_grade_where.sas */\n", " /******************************************************/\n", " 32 proc sql;\n", " 33 select count(grade) label='N'\n", " 34 from df\n", " 35 where grade = 'G'\n", " 36 group by grade;\n", " 37 \n", " 38 quit;\n", "````" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4RDcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAGAAAISodpAAQA\nAAABAAAIUJydAAEAAAAMAAAQyOocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhbmR5AAAFkAMAAgAA\nABQAABCekAQAAgAAABQAABCykpEAAgAAAAMxMwAAkpIAAgAAAAMxMwAA6hwABwAACAwAAAiSAAAA\nABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAMjAxNjoxMTozMCAyMDozNDoyNwAyMDE2OjExOjMwIDIwOjM0OjI3AAAAcgBhAG4A\nZAB5AAAA/+ELGGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfv\nu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0i\nYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5\nOS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6\nZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1\ncmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVp\nZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDov\nL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTYtMTEtMzBUMjA6MzQ6\nMjcuMTI2PC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9u\nIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht\nbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJk\nZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt\nbnMjIj48cmRmOmxpPnJhbmR5PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwv\ncmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/b\nAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsa\nIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioq\nKioqKioqKioqKioqKioqKioqKioqKv/AABEIAEEAQAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA\nAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU\nMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl\nZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK\n0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG\nBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS\n8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4\neXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri\n4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APpGoJ760tnCXN1DCxGQskgUkevNT1y3iL/k\nND/r3T/0J6qMeZ2JlLlVze/tbTv+f+1/7/L/AI0f2tp3/P8A2v8A3+X/ABriLq5isrOa6uX2QwI0\nkjYJ2qBknA56VlJ4w0KTQrTWY9QV9PvJVhgmWNzudm2hcYyDnjkDHetvYruZe1fY9M/tbTv+f+1/\n7/L/AI1PBcQ3KF7aaOZQcFo2DAH04rh66Lwv/wAeNz/18H/0BKidPkV7lQqczsbVFFFZGoVy3iL/\nAJDQ/wCvdP8A0J66muW8Rf8AIaH/AF7p/wChPWlL40Z1PhZy/ij/AJFHWP8Arxm/9ANeGHT73w34\nb8LxW6mXRddubC65OTbXQK7xz2cc/UHp3+iKK6nC8ub0/B3/AK9Dn5vd5fX8QrovC/8Ax43P/Xwf\n/QErna6Lwv8A8eNz/wBfB/8AQEqK3wl0fiNqiiiuQ6QrLntbe51qb7TBHLtt4tvmIGx80nrWpVA/\n8hq4/wCveL/0KSmtxPYw4dW8OXOsNptvYTSzLK0LSJo8xgDr1BnEfl8Ywfm68datrN4efWptIRLJ\nr+CEXEsAiUmOMnALcYGfQ81w2n3Gl22tWsXhjV9TGuy6vIb3Sb28Z2SJpWaYvbBtkaAHcsgUE/J8\nzbzu2LTTdK0b4n6gtvaW1payaJ59ztjCq5M7l3f1J7k076L5/hG/3f15ie7t5fi7feamla34V1q+\nFpp0cTyOjSRM9g8cdwikBmid0CyqMjlCw5B6EVu6VFHC99HCixoLgYVBgD92nauB8K+JNB8X+JrG\n7sNW0mC0sIpI9I0iC6j+0OCu1pXjU5QBAQseMhSS2D8q+g6f/wAfF/8A9fA/9FJTlsgW5doooqCg\nrNnl+z6tK7xzFXgjCtHC7jIZ8j5QfUfnWlRQBnfb4v8Anldf+Akv/wATR9vi/wCeV1/4CS//ABNa\nNFVzMVjO+3xf88rr/wABJf8A4mn6YS7XkmyRFecFfMQoSPLQZwQD1Bq9RSbuFgooopDCiiigAooo\noAKKKKACiiigD//Z\n", "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ " Image(filename='Anaconda3\\\\output\\\\groupby_grade_G.JPG') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can chain attributes together to produce the desired results. Details for sorting values in DataFrames are discussed in Sort and Sort Sequences in Chapter 12--Additional Data Handling." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "grade\n", "G 93,055.82\n", "F 83,095.53\n", "E 75,889.16\n", "D 68,277.02\n", "C 68,199.96\n", "B 67,918.69\n", "A 66,711.88\n", "Name: income, dtype: float64" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grp_grd.income.mean().sort_values(ascending=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The analog SAS PROC SQL example." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " /******************************************************/\n", " /* c10_groupby_grade_orderby.sas */\n", " /******************************************************/\n", " 44 proc sql;\n", " 45 select grade\n", " 46 ,mean(income) label='Mean Income'\n", " 47 from df\n", " 48 group by grade\n", " 49 order by 2 descending;\n", " 50 \n", " 51 quit;\n", "````" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4RDcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAGAAAISodpAAQA\nAAABAAAIUJydAAEAAAAMAAAQyOocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhbmR5AAAFkAMAAgAA\nABQAABCekAQAAgAAABQAABCykpEAAgAAAAM1MwAAkpIAAgAAAAM1MwAA6hwABwAACAwAAAiSAAAA\nABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAMjAxNjoxMTozMCAyMDozOTowOAAyMDE2OjExOjMwIDIwOjM5OjA4AAAAcgBhAG4A\nZAB5AAAA/+ELGGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfv\nu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0i\nYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5\nOS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6\nZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1\ncmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVp\nZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDov\nL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTYtMTEtMzBUMjA6Mzk6\nMDguNTMwPC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9u\nIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht\nbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJk\nZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt\nbnMjIj48cmRmOmxpPnJhbmR5PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwv\ncmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/b\nAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsa\nIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioq\nKioqKioqKioqKioqKioqKioqKioqKv/AABEIAMcAsQMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA\nAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU\nMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl\nZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK\n0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG\nBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS\n8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4\neXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri\n4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APpGiiuU8SRo+tDeqti3TGRn+J6qMeZ2Jk+V\nXOrorz/yIf8Ankn/AHyKPIh/55J/3yK29i+5n7Zdj0CivP8AyIf+eSf98ioVlsGvXs1e2N0iCRoA\nV3qpOAxXqASDz7UvYvuHtl2PRqK8/wDIh/55J/3yKgY2ltaS3F2YYYYt7PLLhVRQTySeAAKPYvuH\ntV2PR6K8v/tjQf7J/tT+0dO/s/OPtfnx+VnOMb8468detXYRa3EKTQCGWKRQyOmCrA8ggjqKPYvu\nHtl2PQ6K8/8AIh/55J/3yKPIh/55J/3yKfsX3D2y7HoFFec3UthZRLJePb26M6oGlKoCzHAXJ7k8\nAVN5EP8AzyT/AL5FL2L7h7Zdj0CivP8AyIf+eSf98ijyIf8Ankn/AHyKfsX3D2y7HoFFef8AkQ/8\n8k/75FHkQ/8APJP++RR7F9w9sux6BRXn/kQ/88k/75FdrpP/ACBbL/r3j/8AQRWc4OBcJ8xbooor\nMsKKKKACuW8Rf8hof9e6f+hPXU1y3iL/AJDQ/wCvdP8A0J60pfGjOp8LPneXX7yZ5dQm8X30OsS+\n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\noooAKKKKACiiigAooooAKKKKAP/Z\n", "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ " Image(filename='Anaconda3\\\\output\\\\groupby_grade_income_descend.JPG')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Understanding Binning" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this section, we want to create output displaying the statistics, N, mean, and standard deviation for income by binning the values for loan to debt ratio (loans['dti']) into the categories, 'low', 'medium', 'high'. \n", "\n", "Start by displaying the min and max values for the loans['dti'] column to determine 'bucket' sizes." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.0\n", "29.99\n" ] } ], "source": [ "print(loans.dti.min())\n", "print(loans.dti.max())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Return the count of continous values in the column loans['dti']." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "42595" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loans.dti.count()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the pd.cut() method to bin continuous vales into discreet values, or categories. Additional examples for pd.cut() are found in the section \"Binning Continuous Values\" in Chapter 12, located here. pd.cut is analogous to user defined SAS formats. " ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [], "source": [ "bins = [0.0, 10.0, 20.0, 30.0]\n", "names=['Low', 'Medium', 'High']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create the new column loans['dti_cat'] in the loans DataFrame." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "loans['dti_cat'] = pd.cut(loans['dti'], bins, labels=names)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We expect the number of values for both the value count for loans['dti'] and categorical values in the loans['dti_cat'] column to be the same. " ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loans.dti.count() == loans.dti_cat.count()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By default, the pd.cut() method sets the right= argument to True. From the doc, \"Indicates whether the bins include the rightmost edge or not. If right == True (the default), then the bins [1,2,3,4] indicate (1,2], (2,3], (3,4]\"." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": true }, "outputs": [], "source": [ "loans['dti_cat'] = pd.cut(loans['dti'], bins, right=False, labels=names)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loans.dti.count() == loans.dti_cat.count()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining Functions " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define the function 'stats' which returns the desired statistics, mean, std (standard deviation), and count (N). The type() method returns the object's type." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "function" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def stats(grp):\n", " return {'mean': grp.mean(), 'std': grp.std(), 'count':grp.count()}\n", "type(stats)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Applying Functions to Groups" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Putting these together, the 'income' column is grouped-by the loans['dti_cat'] column displaying the rows labeled, 'Low', 'Medium', and 'High'. The .apply() attribute applies the 'stats' function to create the columns, 'count', 'mean', 'std'. The .unstack() attribute places the output in a 'tall and skinny' format." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countmeanstd
dti_cat
Low14,067.0077,863.7397,182.50
Medium20,295.0067,121.0038,976.54
High8,233.0059,210.7133,334.58
\n", "
" ], "text/plain": [ " count mean std\n", "dti_cat \n", "Low 14,067.00 77,863.73 97,182.50\n", "Medium 20,295.00 67,121.00 38,976.54\n", "High 8,233.00 59,210.71 33,334.58" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loans['income'].groupby(loans['dti_cat']).apply(stats).unstack()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The analog SAS program uses PROC SQL to find min and man for the 'dti' column, performs the aggregation funtions, and uses the CASE statement to define 'bins' for the new column 'dti_cat'." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " /******************************************************/\n", " /* c10_groupby_dti_cat.sas */\n", " /******************************************************/\n", " 29 proc sql;\n", " 30 select min(dti) as dit_min\n", " 31 ,max(dti) as dti_max\n", " 32 from df;\n", " 33 \n", " 34 select count(income) as count\n", " 35 ,mean(income) as mean\n", " 36 ,std(income) as std\n", " 37 ,\n", " 38 case\n", " 39 when dti < 10 then 'Low'\n", " 40 when 10 <= dti < 20 then 'Medium'\n", " 41 else 'High'\n", " 42 end as dti_cat\n", " 43 from df\n", " 44 group by calculated dti_cat;\n", " 45 quit;\n", "````" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4RDcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAGAAAISodpAAQA\nAAABAAAIUJydAAEAAAAMAAAQyOocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhbmR5AAAFkAMAAgAA\nABQAABCekAQAAgAAABQAABCykpEAAgAAAAM3NQAAkpIAAgAAAAM3NQAA6hwABwAACAwAAAiSAAAA\nABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAMjAxNjoxMjowMSAxMTo1MTozMAAyMDE2OjEyOjAxIDExOjUxOjMwAAAAcgBhAG4A\nZAB5AAAA/+ELGGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfv\nu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0i\nYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5\nOS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6\nZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1\ncmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVp\nZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDov\nL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTYtMTItMDFUMTE6NTE6\nMzAuNzQ2PC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9u\nIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht\nbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJk\nZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt\nbnMjIj48cmRmOmxpPnJhbmR5PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwv\ncmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/b\nAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsa\nIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioq\nKioqKioqKioqKioqKioqKioqKioqKv/AABEIAKkBGwMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA\nAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU\nMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl\nZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK\n0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG\nBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS\n8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4\neXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri\n4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APpGiiigAooooAKKKKACiiigAooooAKgvL23\nsIlkunKKzbQQpbJwT0A9jU9Yvij/AI8bb/r4H/oD04q7sJuyuT/8JDpn/Pd/+/En/wATR/wkOmf8\n93/78Sf/ABNcLqmu6Zoyj+0b2CGV0Z4oHlVZJtoyQikjcfp61kr4+0VdPivrqQ2lrLpy6j5k8sQZ\nYyQADGHLlskDhSpPGc8Vv7KPf+v6Rj7ST6HqH/CQ6Z/z3f8A78Sf/E0f8JDpn/Pd/wDvxJ/8TXEa\nPq9nr2j22pabKstvcIHUhgceqnBIyDwR2Ipl94g0bTJmi1LVrGzkVQzJcXKRkAnAOCehIP5VToJO\nzYvbN9Duv+Eh0z/nu/8A34k/+Jo/4SHTP+e7/wDfiT/4muEuNf0yBb4Je2089hEZbi3juIxJGMZ+\nbcwC5HdiB71E/inQ4LeKW+1axsjJCk2y4u4lKq/3SSGIIPPIJBxwTS9jHuHtX2PQD4i0wdZ3H/bB\n/wD4mj/hIdM/57v/AN+JP/ia5GRleFWQhlZlIIOQRkVDqGqafpNus+q31tZQswQSXMyxqWPbLEDP\n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\n", "text/plain": [ "" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(filename='Anaconda3\\\\output\\\\groupby_dti_cat_income.JPG') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For another example define the 'max_min' function for calculating a range and apply it income values grouped by loans['dti_cat'] levels nested inside loans['grade'] levels." ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
dti_catLowMediumHigh
grade
A1,896,700.00377,000.00234,000.00
B3,898,000.00483,400.00241,912.00
C5,996,000.00335,200.001,245,200.00
D1,195,200.00524,000.00519,200.00
E745,800.00351,600.00308,600.00
F1,425,600.00342,720.00218,724.00
G715,400.00598,104.00235,800.00
\n", "
" ], "text/plain": [ "dti_cat Low Medium High\n", "grade \n", "A 1,896,700.00 377,000.00 234,000.00\n", "B 3,898,000.00 483,400.00 241,912.00\n", "C 5,996,000.00 335,200.00 1,245,200.00\n", "D 1,195,200.00 524,000.00 519,200.00\n", "E 745,800.00 351,600.00 308,600.00\n", "F 1,425,600.00 342,720.00 218,724.00\n", "G 715,400.00 598,104.00 235,800.00" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ " def max_min(x):\n", " return x.max() - x.min()\n", "dti_grd_grp = loans.groupby(['grade', 'dti_cat'])\n", "dti_grd_grp.income.agg(max_min).unstack()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The range for the income values is large with extremes in both directions. Rather than 'bucketing' these values into arbitrary sizes, another approach is to place values into deciles. " ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1896.0\n", "6000000.0\n" ] } ], "source": [ "print(loans.income.min())\n", "print(loans.income.max())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similar to the pd.cut() method is the pd.qcut() method for creating deciles which is documented here. The operation below creates the new column loans['inc_cat_dec'] for the 'loans' DataFrame." ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [], "source": [ "loans['inc_cat_dec'] = pd.qcut(loans['income'], q=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the income deciles, return a count for each level in descending sorted order." ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1896, 30000] 5088\n", "(75600, 90000] 4436\n", "(50004, 59000] 4309\n", "(44500, 50004] 4306\n", "(37000, 44500] 4265\n", "(116690.4, 6000000] 4260\n", "(65600, 75600] 4253\n", "(59000, 65600] 4163\n", "(90000, 116690.4] 4082\n", "(30000, 37000] 3433\n", "Name: inc_cat_dec, dtype: int64" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.value_counts(loans['inc_cat_dec'].sort_values())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The bin value ranges are a bit unwieldy. An alternative is to map the bin value ranges into category codes." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0 5088\n", "7 4436\n", "4 4309\n", "3 4306\n", "2 4265\n", "9 4260\n", "6 4253\n", "5 4163\n", "8 4082\n", "1 3433\n", "Name: inc_cat_dec, dtype: int64" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loans['inc_cat_dec'] = pd.qcut(loans['income'].values, 10).codes\n", "pd.value_counts(loans['inc_cat_dec'].sort_values())" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loans.income.count() == loans.inc_cat_dec.count()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With SAS, the traditional method for creating deciles is through PROC RANK as illustrated below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " /******************************************************/\n", " /* c10_default_deciles.sas */\n", " /******************************************************/\n", " 98 proc rank data=df groups=10 out=r_df;\n", " 99 var income;\n", " 100 ranks r_income;\n", " NOTE: Data set \"WORK.r_df\" has 42595 observation(s) and 23 variable(s)\n", " 101 \n", " 102 proc sql;\n", " 103 select count(r_income) label='Income Deciles' as count\n", " 104 from r_df\n", " 105 group by r_income\n", " 106 order by count descending;\n", " 107 quit;\n", "````" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "However, the **default** results between pd.qcut() method and PROC RANK are different." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4RDcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAGAAAISodpAAQA\nAAABAAAIUJydAAEAAAAMAAAQyOocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhbmR5AAAFkAMAAgAA\nABQAABCekAQAAgAAABQAABCykpEAAgAAAAMyMAAAkpIAAgAAAAMyMAAA6hwABwAACAwAAAiSAAAA\nABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAMjAxNjoxMjowMSAxMzo0NDozOAAyMDE2OjEyOjAxIDEzOjQ0OjM4AAAAcgBhAG4A\nZAB5AAAA/+ELGGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfv\nu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0i\nYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5\nOS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6\nZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1\ncmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVp\nZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDov\nL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTYtMTItMDFUMTM6NDQ6\nMzguMjAxPC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9u\nIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht\nbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJk\nZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt\nbnMjIj48cmRmOmxpPnJhbmR5PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwv\ncmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/b\nAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsa\nIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioq\nKioqKioqKioqKioqKioqKioqKioqKv/AABEIAQcAgAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA\nAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU\nMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl\nZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK\n0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG\nBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS\n8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4\neXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri\n4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APpGis7XpHi0WZonaNtyAMjFSMuoPIrl/tNz\n/wA/l1/4EP8A41pGm5bESmo7nc0Vw32m5/5/Lr/wIf8Axo+03P8Az+XX/gQ/+NV7GRHtonc0Vw32\nm5/5/Lr/AMCH/wAaPtNz/wA/l1/4EP8A40exkHtonc0Vw32m5/5/Lr/wIf8Axo+03P8Az+XX/gQ/\n+NHsZB7aJ3NFcN9puf8An8uv/Ah/8aPtNz/z+XX/AIEP/jR7GQe2idzRXDfabn/n8uv/AAIf/Gj7\nTc/8/l1/4EP/AI0exkHtonc0Vw32m5/5/Lr/AMCH/wAaPtNz/wA/l1/4EP8A40exkHtonc0VgeGp\nppJrtZZpZQqxkeZIWxktnGT7Ct+smrOxqndXMzxD/wAgOb/fj/8ARi15L4y/5GzwZ/2E3/8ARD16\n14h/5Ac3+/H/AOjFrib3SbLULuyubyHzJrGUzW7b2GxypUnAODwT1zW9JXXzT+53Mav6M8t0jxP4\nxLaNrN5rkNxp95rb6Y9h9jRSU3OA5kAzkbegx0Gc81peGPEPibVms/Elzr+mx6Xe3klv/Ys8SxtG\n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\n", "text/plain": [ "" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ " Image(filename='Anaconda3\\\\output\\\\default_income_deciles.JPG') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The difference are attributable to the method by which PROC RANK handles 'tied' values. PROC RANK provides the TIES= option and when set to LOW, the results are the same as the pd.qcut() method. You can read more about how PROC RANK treats tied values here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " /******************************************************/\n", " /* c10_deciles_ties_low.sas */\n", " /******************************************************/\n", "57 proc rank data=df groups=10 ties=low out=r_df;\n", "58 var income;\n", "59 ranks r_income;\n", "NOTE: Data set \"WORK.r_df\" has 42595 observation(s) and 23 variable(s)\n", "60 \n", "61 proc sql;\n", "62 select count(r_income) label='Income Deciles' as count\n", "63 from r_df\n", "64 group by r_income\n", "65 order by count descending;\n", "66 quit;\n", "````" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4RDcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAGAAAISodpAAQA\nAAABAAAIUJydAAEAAAAMAAAQyOocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhbmR5AAAFkAMAAgAA\nABQAABCekAQAAgAAABQAABCykpEAAgAAAAMwMQAAkpIAAgAAAAMwMQAA6hwABwAACAwAAAiSAAAA\nABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAMjAxNjoxMjowMSAxMzo1Njo1OAAyMDE2OjEyOjAxIDEzOjU2OjU4AAAAcgBhAG4A\nZAB5AAAA/+ELGGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfv\nu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0i\nYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5\nOS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6\nZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1\ncmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVp\nZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDov\nL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTYtMTItMDFUMTM6NTY6\nNTguMDExPC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9u\nIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht\nbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJk\nZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt\nbnMjIj48cmRmOmxpPnJhbmR5PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwv\ncmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/b\nAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsa\nIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioq\nKioqKioqKioqKioqKioqKioqKioqKv/AABEIAQkAhwMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA\nAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU\nMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl\nZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK\n0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG\nBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS\n8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4\neXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri\n4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APpGiiuLubm5+3XP+l3IAnkACzsAAGIAwDVR\ni5OyJlJRV2dpRXDfabn/AJ/Lr/wIf/Gj7Tc/8/l1/wCBD/41p7GRn7aJ3NFcN9puf+fy6/8AAh/8\naPtNz/z+XX/gQ/8AjR7GQe2idzRXDfabn/n8uv8AwIf/ABo+03P/AD+XX/gQ/wDjR7GQe2idzRXD\nfabn/n8uv/Ah/wDGj7Tc/wDP5df+BD/40exkHtonc0Vw32m5/wCfy6/8CH/xo+03P/P5df8AgQ/+\nNHsZB7aJ3NFcN9puf+fy6/8AAh/8aPtNz/z+XX/gQ/8AjR7GQe2idzRXF21zc/brb/S7kgzxghp2\nIILAEYJrtKzlFxdmaRkpK6CiiipKCvPNd/49NX/7eP5tXodcJfRJPcXsUo3JJNKrDOMguwNaQi5X\nS7GdR2s/M8c0S98S3Fj4R0Hw5rUelR3GgG4kke0SfDKQAQG79uuME8ZxU2leLfFXiyLQdKsdZt9G\nvZ9Mkvbm+Nokvnskpj2BG+UZxuOPwwOK9FsvC2jadcWU9nZ+XJYWps7ZvNc+XESCV5PPQcnJ96zr\n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\ngAooooAKKKKACiiigAooooAKKKKAP//Z\n", "text/plain": [ "" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ " Image(filename='Anaconda3\\\\output\\\\deciles_ties_low.JPG') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the created column loans['inc_cat_dec'] for income deciles to display statistics provided by the 'stats' function created above to return count, mean, and standard deviation. " ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countmeanstd
inc_cat_dec
05,088.0023,505.595,733.08
13,433.0034,240.731,863.40
24,265.0040,730.021,888.30
34,306.0047,674.111,948.03
44,309.0054,526.422,339.30
54,163.0062,090.002,108.14
64,253.0071,171.322,872.85
74,436.0083,137.044,291.91
84,082.00101,756.616,990.66
94,260.00175,721.94152,667.92
\n", "
" ], "text/plain": [ " count mean std\n", "inc_cat_dec \n", "0 5,088.00 23,505.59 5,733.08\n", "1 3,433.00 34,240.73 1,863.40\n", "2 4,265.00 40,730.02 1,888.30\n", "3 4,306.00 47,674.11 1,948.03\n", "4 4,309.00 54,526.42 2,339.30\n", "5 4,163.00 62,090.00 2,108.14\n", "6 4,253.00 71,171.32 2,872.85\n", "7 4,436.00 83,137.04 4,291.91\n", "8 4,082.00 101,756.61 6,990.66\n", "9 4,260.00 175,721.94 152,667.92" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ " loans['income'].groupby(loans['inc_cat_dec']).apply(stats).unstack()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "pandas crosstabs is another method for accessing GroupBy processing using two factors, or categorical columns. In the example below, the values= argument is monthly payments loans['income'] column using the aggregation function count. Additional crosstab examples are found in the crosstabs section of Chapter, 12--Additional Data Handling." ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Income Deciles0123456789All
Debt/Income Ratio
Low1,882.00963.001,210.001,281.001,181.001,266.001,313.001,476.001,493.002,002.0014,067.00
Medium2,179.001,602.002,034.002,058.002,165.002,074.002,129.002,217.001,988.001,849.0020,295.00
High1,027.00868.001,021.00967.00963.00823.00811.00743.00601.00409.008,233.00
All5,088.003,433.004,265.004,306.004,309.004,163.004,253.004,436.004,082.004,260.0042,595.00
\n", "
" ], "text/plain": [ "Income Deciles 0 1 \\\n", "Debt/Income Ratio \n", "Low 1,882.00 963.00 \n", "Medium 2,179.00 1,602.00 \n", "High 1,027.00 868.00 \n", "All 5,088.00 3,433.00 \n", "\n", "Income Deciles 2 3 \\\n", "Debt/Income Ratio \n", "Low 1,210.00 1,281.00 \n", "Medium 2,034.00 2,058.00 \n", "High 1,021.00 967.00 \n", "All 4,265.00 4,306.00 \n", "\n", "Income Deciles 4 5 \\\n", "Debt/Income Ratio \n", "Low 1,181.00 1,266.00 \n", "Medium 2,165.00 2,074.00 \n", "High 963.00 823.00 \n", "All 4,309.00 4,163.00 \n", "\n", "Income Deciles 6 7 \\\n", "Debt/Income Ratio \n", "Low 1,313.00 1,476.00 \n", "Medium 2,129.00 2,217.00 \n", "High 811.00 743.00 \n", "All 4,253.00 4,436.00 \n", "\n", "Income Deciles 8 9 \\\n", "Debt/Income Ratio \n", "Low 1,493.00 2,002.00 \n", "Medium 1,988.00 1,849.00 \n", "High 601.00 409.00 \n", "All 4,082.00 4,260.00 \n", "\n", "Income Deciles All \n", "Debt/Income Ratio \n", "Low 14,067.00 \n", "Medium 20,295.00 \n", "High 8,233.00 \n", "All 42,595.00 " ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ " pd.crosstab([loans.dti_cat], [loans.inc_cat_dec], \\\n", " values=loans.income, aggfunc='count', margins=True, colnames=['Income Deciles'], rownames=['Debt/Income Ratio'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The analog SAS program uses PROC FREQ." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```` \n", " /******************************************************/\n", " /* c10_pd.crosstabs.sas */\n", " /******************************************************/\n", " 5 proc rank data=df groups=10 ties=low out=r_df;\n", " 6 var income;\n", " 7 ranks r_income;\n", " 8\n", " 9 data tables;\n", " 10 set r_df (keep = r_income dti);\n", " 11 length dti_cat $ 6;\n", " 12 if dti < 10 then dti_cat = 'Low';\n", " 13 else if dti < 20 then dti_cat = 'Medium';\n", " 14 else dti_cat = 'High';\n", " 15 \n", " 16 proc freq data=tables order=formatted;\n", " 17 tables dti_cat * r_income /nocol nocum norow nopercent;\n", "````" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4RDcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAGAAAISodpAAQA\nAAABAAAIUJydAAEAAAAMAAAQyOocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhbmR5AAAFkAMAAgAA\nABQAABCekAQAAgAAABQAABCykpEAAgAAAAM2NwAAkpIAAgAAAAM2NwAA6hwABwAACAwAAAiSAAAA\nABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAMjAxNjoxMjowMSAxODoyMjo0NAAyMDE2OjEyOjAxIDE4OjIyOjQ0AAAAcgBhAG4A\nZAB5AAAA/+ELGGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfv\nu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0i\nYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5\nOS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6\nZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1\ncmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVp\nZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDov\nL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTYtMTItMDFUMTg6MjI6\nNDQuNjcyPC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9u\nIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht\nbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJk\nZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt\nbnMjIj48cmRmOmxpPnJhbmR5PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwv\ncmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/b\nAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsa\nIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioq\nKioqKioqKioqKioqKioqKioqKioqKv/AABEIAMcCGwMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA\nAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU\nMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl\nZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK\n0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG\nBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS\n8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4\neXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri\n4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APo2e4htkD3M0cKk4DSMFBPpzUH9rad/z/2v\n/f5f8aoeKP8Ajxtv+vgf+gPXO1rCnzq9zKdTldjsf7W07/n/ALX/AL/L/jR/a2nf8/8Aa/8Af5f8\na46itPYeZPtvI7H+1tO/5/7X/v8AL/jR/a2nf8/9r/3+X/GuOoo9h5h7byOx/tbTv+f+1/7/AC/4\n0f2tp3/P/a/9/l/xrjqKPYeYe28jsf7W07/n/tf+/wAv+NH9rad/z/2v/f5f8a46ij2HmHtvI7H+\n1tO/5/7X/v8AL/jR/a2nf8/9r/3+X/GuOoo9h5h7byOx/tbTv+f+1/7/AC/40f2tp3/P/a/9/l/x\nrjqKPYeYe28jsf7W07/n/tf+/wAv+NH9rad/z/2v/f5f8a46ij2HmHtvI7H+1tO/5/7X/v8AL/jR\n/a2nf8/9r/3+X/GuOoo9h5h7byOx/tbTv+f+1/7/AC/40f2tp3/P/a/9/l/xrjqKPYeYe28jsf7W\n07/n/tf+/wAv+NH9rad/z/2v/f5f8a46szXvEOl+GNLOo65dfZbUOEMnls/J6DCgmk6KSu2Cqt7I\n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\nI69Mdfpj07/hF5v+f9P/AAHP/wAVR/wi83/P+n/gOf8A4qh1Kbd3/X9XYKE0eba38NtG1zUPtMtz\nqNpHIkcd1aWdyYobxU+6JVA+bA44IOK6oosfkIgCqrYAHYbTW/8A8IvN/wA/6f8AgOf/AIqkbwrK\nxUm/T5Tkf6OfTH973o9pDoHs5HBeJPAXh7xTa3MeoadBHcXO3ffQwRi4G0jGJCpPQY+nFUtX+GOg\n6vfRz77yxi8uOKe0sZ/Kguo4z8iSIBggdOMcV6X/AMIvN/z/AKf+A5/+Ko/4Reb/AJ/0/wDAc/8A\nxVHtKY+SZ5lqfwv0PVdZmvprnUoYLmRJLrToLrZa3Lr0Lpjk8DoR0q3qfw68L6neWl0+kWlvLbXI\nuSbe2iXz25+WT5fmU5yR616F/wAIvN/z/p/4Dn/4qj/hF5v+f9P/AAHP/wAVQqlNbC9nMwT/AMfC\nf7jfzFc7rvw+8NeICHu9LtYpzcLcSXEFvGskpU52uxUkqe471358Kylw329MgEf8e574/wBr2pf+\nEXm/5/0/8Bz/APFUe0g9w9nNbHl8/wAMbKXxHcazb+INfsZ7hl3x2d4sUe1fupgJ90DgDNTL8NNF\nXxF/apuNQaIXRvV01rkm0Wc/8tRHj72cnrjn04r0r/hF5v8An/T/AMBz/wDFUf8ACLzf8/6f+A5/\n+KoVSmrWDkmzzOy+GOiWOvRajFc6k8MFw1zb6dJdFrWCU/xpHjg5JPXvXXD/AI+H/wBxf5mt7/hF\n5v8An/T/AMBz/wDFUg8Kyhy329MkAf8AHue2f9r3oVSCSSD2cm22efX/AMO/DF/qFlenSLS3ltLj\n7R/o9tEonbB4k+X5hk5+tUrD4aWuneIJdXtvEXiESz3X2qeD7aohmbOcOoQZHbHpxXp//CLzf8/6\nf+A5/wDiqP8AhF5v+f8AT/wHP/xVCnTTuv6/qwck3uea6Z8M9E0rW47+KfUJordne10+e5L2tqz/\nAHmjTHB5PUnr64wuh/DTQ9DupJUlvr1DFJBBb3tx5kVpG5+dIlwNoPQ9TgdeufSf+EXm/wCf9P8A\nwHP/AMVR/wAIvN/z/p/4Dn/4qjnprQbhUep514d+HmleG9UF/Bd6jeyRRGG1S+ufNSzjPVIhgbR0\nHOeB9c+m+F/+PG5/6+D/AOgJVf8A4Reb/n/T/wABz/8AFVqaVpx023kjaYSl5N+4JtxwBjGT6VFS\ncXGyKhCSldl6iiisDYKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig\nAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC\niiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/9k=\n", "text/plain": [ "" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ " Image(filename='Anaconda3\\\\output\\\\pd_crosstab.JPG') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Applying Transformations to Groups" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A fairly common pattern is standardization and transformation of values. In the cell below, the new column loans['iz_all'] is added to the 'loans' DataFrame. It computes a zscore by subtracting the mean value for income from income and dividing by the standard deviation. " ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [], "source": [ "loans['iz_all'] = (loans.income - loans.income.mean()) / loans.income.std() " ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loans['iz_all'].isnull().sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "However, we want to calculate zscores by deciles rather than the overall mean for income. Start by creating the grouper for the loans['inc_cat'] column which is the deciles created with the pd.qcut() method above." ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [], "source": [ "grp_inc_cat = loans.groupby('inc_cat')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create the zcore function using lambda as an anonymous function." ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "function" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "zscore = lambda x: (x - x.mean()) / x.std()\n", "type(zscore)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the 'grp_inc_cat' grouper created above, call the .transform() attribute to apply the zscore function and assign the results to a new DataFrame called 't_loans'." ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [], "source": [ "t_loans = grp_inc_cat.transform(zscore)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The zscore function is applied to all of the numeric columns in the 'loans' DataFrame, so extract the transformed t_loans['income'] column from the 't_loans' DataFrame and assign it as the column loans['iz_grp'] in the 'loans' DataFrame." ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": true }, "outputs": [], "source": [ "loans['iz_grp'] = t_loans['income']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display the transformed income values." ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "id\n", "513542 92.58\n", "519954 59.80\n", "269818 30.76\n", "611872 28.58\n", "884755 26.74\n", "502114 21.40\n", "458760 21.40\n", "453667 20.18\n", "830027 18.43\n", "603818 17.65\n", "Name: iz_all, dtype: float64 id\n", "513542 38.15\n", "519954 24.39\n", "269818 12.21\n", "611872 11.29\n", "884755 10.52\n", "502114 8.28\n", "458760 8.28\n", "453667 7.77\n", "830027 7.04\n", "468400 6.71\n", "Name: iz_grp, dtype: float64\n" ] } ], "source": [ "print(loans['iz_all'].sort_values(ascending=False).head(10), \n", " loans['iz_grp'].sort_values(ascending=False).head(10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "We would like to display the transformed income values side-by-side. Create the new DataFrame 'prt' by extracting the loans['iz_all'] column (income zscores computed with column mean) and the loans['iz_grp'] (income zscores computed with the group mean). " ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "pandas.core.frame.DataFrame" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prt = loans[['iz_all', 'iz_grp']]\n", "type(prt)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Provide descriptive column names." ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [], "source": [ "prt.columns = ['zscore w/ overall mean','zscore with group mean']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display the transformed income values." ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
zscore w/ overall meanzscore with group mean
id
51354292.5838.15
51995459.8024.39
26981830.7612.21
61187228.5811.29
88475526.7410.52
50211421.408.28
45876021.408.28
45366720.187.77
83002718.437.04
46840017.656.71
\n", "
" ], "text/plain": [ " zscore w/ overall mean zscore with group mean\n", "id \n", "513542 92.58 38.15\n", "519954 59.80 24.39\n", "269818 30.76 12.21\n", "611872 28.58 11.29\n", "884755 26.74 10.52\n", "502114 21.40 8.28\n", "458760 21.40 8.28\n", "453667 20.18 7.77\n", "830027 18.43 7.04\n", "468400 17.65 6.71" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prt.sort_values('zscore w/ overall mean', ascending=False).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The analog SAS program combines the creating of income deciles using PROC RANK and PROC SQL to calculate income zscores based on overall mean and income decile group mean." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " /******************************************************/\n", " /* c10_zscore_all_bygroup.sas */\n", " /******************************************************/\n", " 48 proc rank data=df groups=10 ties=low out=r_df;\n", " 49 var income;\n", " 50 ranks r_income;\n", " 51 \n", " 52 proc sql ;\n", " 53 create table all_mean as\n", " 54 select id\n", " 55 ,(income - mean) / std as iz_all format=6.2\n", " 56 from\n", " 57 (select id\n", " 58 ,income\n", " 59 ,mean(income) as mean\n", " 60 ,std(income) as std\n", " 61 from r_df)\n", " 62 order by iz_all desc;\n", " 63 \n", " 64 create table grp_mean as\n", " 65 select id\n", " 66 ,(income - mean) / std as iz_grp format=6.2\n", " 67 from\n", " 68 (select id\n", " 69 ,income\n", " 70 ,mean(income) as mean\n", " 71 ,std(income) as std\n", " 72 from r_df\n", " 73 group by r_income)\n", " 74 order by iz_grp descending;\n", " 75 \n", " 76 create table all(drop=old_id) as\n", " 77 select coalesce(all_mean.old_id, grp_mean.old_id) as id\n", " 78 ,*\n", " 79 from all_mean (rename=(id=old_id))\n", " 80 full join grp_mean (rename=(id=old_id))\n", " 81 on all_mean.old_id = grp_mean.old_id\n", " 82 order by iz_all desc;\n", " 83 \n", " 84 select *\n", " 85 from all(obs=10);\n", " 86 quit;\n", "````" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4RDcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAGAAAISodpAAQA\nAAABAAAIUJydAAEAAAAMAAAQyOocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhbmR5AAAFkAMAAgAA\nABQAABCekAQAAgAAABQAABCykpEAAgAAAAM1NgAAkpIAAgAAAAM1NgAA6hwABwAACAwAAAiSAAAA\nABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAMjAxNjoxMjowMSAyMzozNjo1NwAyMDE2OjEyOjAxIDIzOjM2OjU3AAAAcgBhAG4A\nZAB5AAAA/+ELGGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfv\nu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0i\nYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5\nOS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6\nZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1\ncmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVp\nZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDov\nL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTYtMTItMDFUMjM6MzY6\nNTcuNTY0PC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9u\nIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht\nbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJk\nZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt\nbnMjIj48cmRmOmxpPnJhbmR5PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwv\ncmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/b\nAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsa\nIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioq\nKioqKioqKioqKioqKioqKioqKioqKv/AABEIAREAtgMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA\nAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU\nMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl\nZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK\n0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG\nBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS\n8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4\neXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri\n4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APobUdRj02BJZkkcO+wCMDOcE9yPSqH/AAlF\nt/z63X5J/wDFUeKP+PG2/wCvgf8AoD1ztb06akrsxnNxdkdF/wAJRbf8+t1+Sf8AxVH/AAlFt/z6\n3X5J/wDFVztZV9rkVj4h03S5DCHv1lZd7uH+QAnaAhU9edzL7Zq/YxI9rI7f/hKLb/n1uvyT/wCK\no/4Si2/59br8k/8Aiq8qg+J+gal4k0/R9CuYtRkuriSCZkZk8nahbcAV+cHbjIOPeuzoVKDV0wdS\nSdmdF/wlFt/z63X5J/8AFUn/AAlNruC/ZbrJGRwn/wAV71z1Rn/j4T/cb+YodGIe1kdN/wAJRbf8\n+t1+Sf8AxVH/AAlFt/z63X5J/wDFV5vfeOtI0i91hNYuoba30swLJIglkcGUZXcojwPbaze+3pV7\nw54r0XxZZy3Xh+8+1wwyeW7eU6YbGcYYA9DQqUHsxupNbo7r/hKLb/n1uvyT/wCKo/4Si2/59br8\nk/8Aiq4PxH4u0PwlbwzeIdQSzSdisQKM7OQMnCqCcD1xjketZsvj2yfUtIh0uNb601SzuLuK6WQq\n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\n", "text/plain": [ "" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ " Image(filename='Anaconda3\\\\output\\\\income_zcore_table.JPG') " ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ " " ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ " ## Top/Bottom N processing" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Start by defining a function with 3 argument values. First one is positional (df) followed by two named arguments (n=, and sort_col=). The function returns a Series of n= values in descending sort order." ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def topn(df, n=3, sort_col='income'):\n", " return pd.Series(df[sort_col]).sort_values(ascending=False).head(n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Call the 'topn' function." ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "id\n", "793919 29.99\n", "234391 29.96\n", "289144 29.95\n", "754868 29.95\n", "831945 29.93\n", "Name: dti, dtype: float64" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "topn(loans, sort_col='dti', n=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function can be applied to levels of a GroupBy object using the .apply() attribute." ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "grade id \n", "A 611872 1,900,000.00\n", " 458760 1,440,000.00\n", " 453667 1,362,000.00\n", "B 519954 3,900,000.00\n", " 624215 984,000.00\n", " 643926 948,000.00\n", "C 513542 6,000,000.00\n", " 269818 2,039,784.00\n", " 884755 1,782,000.00\n", "D 603818 1,200,000.00\n", " 514680 840,000.00\n", " 752994 648,000.00\n", "E 792270 750,000.00\n", " 565565 700,053.85\n", " 508436 660,000.00\n", "F 502114 1,440,000.00\n", " 473872 600,000.00\n", " 843071 350,000.00\n", "G 989796 725,000.00\n", " 391263 600,000.00\n", " 115363 500,000.00\n", "Name: income, dtype: float64" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loans.groupby('grade').apply(topn)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Not surprisingly, we did not need to create this function since the .nlargest() and .nsmallest() attributes performs the same operation." ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "grade id \n", "A 611872 1,900,000.00\n", " 458760 1,440,000.00\n", " 453667 1,362,000.00\n", "B 519954 3,900,000.00\n", " 624215 984,000.00\n", " 643926 948,000.00\n", "C 513542 6,000,000.00\n", " 269818 2,039,784.00\n", " 884755 1,782,000.00\n", "D 603818 1,200,000.00\n", " 514680 840,000.00\n", " 752994 648,000.00\n", "E 792270 750,000.00\n", " 565565 700,053.85\n", " 508436 660,000.00\n", "F 502114 1,440,000.00\n", " 473872 600,000.00\n", " 843071 350,000.00\n", "G 989796 725,000.00\n", " 391263 600,000.00\n", " 115363 500,000.00\n", "Name: income, dtype: float64" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grp_grd['income'].nlargest(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Return the 3 smallest income values for each debt-to-income loans['dti_cat'] column levels." ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "grade id \n", "A 288342 3,300.00\n", " 228954 3,500.00\n", " 398765 5,500.00\n", "B 139940 2,000.00\n", " 267670 3,600.00\n", " 524201 4,080.00\n", "C 434740 4,000.00\n", " 99987 4,000.00\n", " 503299 4,200.00\n", "D 91126 4,000.00\n", " 565967 4,800.00\n", " 521396 6,000.00\n", "E 367694 4,200.00\n", " 403941 4,800.00\n", " 388623 5,843.00\n", "F 119948 7,280.00\n", " 1000862 9,960.00\n", " 708331 12,000.00\n", "G 123688 1,896.00\n", " 108473 9,600.00\n", " 387462 10,000.00\n", "Name: income, dtype: float64" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grp_grd['income'].nsmallest(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Resources\n", "\n", "The GroupBy: split-apply-combine for panda is located here.\n", "\n", "Apply Operations to Groups in Pandas, by Chris Albon, located here.\n", "\n", "GroupBy-fu: improvements in grouping and aggregating data in pandas, by Wes McKinney, located here.\n", "\n", "MERGING vs. JOINING: Comparing the DATA Step with SQL, by Malachy J. Foley, University of North Carolina at Chapel Hill, located here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Navigation\n", "\n", "Return to Chapter List" ] } ], "metadata": { "kernelspec": { "display_name": "Python [Root]", "language": "python", "name": "Python [Root]" }, "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.5.2" } }, "nbformat": 4, "nbformat_minor": 0 }