{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Data Manipulation Part 2: Working with PUMS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Last time we explored groupby operations in Pandas using Census SF1 data. Today we continue with our Census data exploration, turning to the Public Use Microdata, or PUMS. These are much larger files and at the individual person and household level. They are widely used to do analysis of the demographic and social characteristics of the population, so provide a good opportunity to explore these data using the methods we have been learning: filtering, string manipulation, groupby operations and others." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import pandas as pd\n", "import pylab as P\n", "import numpy as np\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "import matplotlib.cm as cm, matplotlib.font_manager as fm\n", "sns.set(style=\"darkgrid\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Working with Census PUMS Microdata\n", "\n", "(with credits to Aksel Olsen, from whom a substantial amount of the material for today's session is adapted)\n", "\n", "Data source: Census ACS 1-year PUMS data, 2012 release\n", "\n", "The 2012 PUMS household and person tables for California were downloaded from:\n", "\n", "Persons: [census ftp](http://www2.census.gov/acs2012_1yr/pums/csv_pca.zip)\n", "\n", "Households: [census ftp](http://www2.census.gov/acs2012_1yr/pums/csv_hca.zip)\n", "\n", "Note - these are large files and take time to download and to load into memory. If you have any trouble downloading from the Census ftp site using the links above, these two files are also in our files directory on bCourses." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RTSERIALNODIVISIONPUMAREGIONSTADJHSGADJINCWGTPNP...wgtp71wgtp72wgtp73wgtp74wgtp75wgtp76wgtp77wgtp78wgtp79wgtp80
SERIALNO
11H119850846100000010102071102...17617812099173331293534130
19H199750246100000010102071800...30818428852185337288188190197
22H22981054610000001010207751...7812712511072207313583143
31H31913054610000001010207762...882475761311402029130141
40H40929014610000001010207122...1224202112101213123
\n", "

5 rows × 206 columns

\n", "
" ], "text/plain": [ " RT SERIALNO DIVISION PUMA REGION ST ADJHSG ADJINC WGTP NP \\\n", "SERIALNO \n", "11 H 11 9 8508 4 6 1000000 1010207 110 2 \n", "19 H 19 9 7502 4 6 1000000 1010207 180 0 \n", "22 H 22 9 8105 4 6 1000000 1010207 75 1 \n", "31 H 31 9 1305 4 6 1000000 1010207 76 2 \n", "40 H 40 9 2901 4 6 1000000 1010207 12 2 \n", "\n", " ... wgtp71 wgtp72 wgtp73 wgtp74 wgtp75 wgtp76 wgtp77 \\\n", "SERIALNO ... \n", "11 ... 176 178 120 99 173 33 129 \n", "19 ... 308 184 288 52 185 337 288 \n", "22 ... 78 127 125 110 72 20 73 \n", "31 ... 88 24 75 76 131 140 20 \n", "40 ... 12 24 20 21 12 10 12 \n", "\n", " wgtp78 wgtp79 wgtp80 \n", "SERIALNO \n", "11 35 34 130 \n", "19 188 190 197 \n", "22 135 83 143 \n", "31 29 130 141 \n", "40 13 12 3 \n", "\n", "[5 rows x 206 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pums_h = pd.read_csv('data/csv_hca/ss12hca.csv')\n", "#pums_h=pd.read_csv('data/pums_h_sf_2012.csv')\n", "pums_h.index=pums_h.SERIALNO\n", "pums_h.head()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['RT', 'SERIALNO', 'DIVISION', 'PUMA', 'REGION', 'ST', 'ADJHSG', 'ADJINC', 'WGTP', 'NP', 'TYPE', 'ACR', 'AGS', 'BATH', 'BDSP', 'BLD', 'BUS', 'CONP', 'ELEP', 'FS', 'FULP', 'GASP', 'HFL', 'INSP', 'MHP', 'MRGI', 'MRGP', 'MRGT', 'MRGX', 'REFR', 'RMSP', 'RNTM', 'RNTP', 'RWAT', 'SINK', 'SMP', 'STOV', 'TEL', 'TEN', 'TOIL', 'VACS', 'VALP', 'VEH', 'WATP', 'YBL', 'FES', 'FFINCP', 'FGRNTP', 'FHINCP', 'FINCP', 'FPARC', 'FSMOCP', 'GRNTP', 'GRPIP', 'HHL', 'HHT', 'HINCP', 'HUGCL', 'HUPAC', 'HUPAOC', 'HUPARC', 'KIT', 'LNGI', 'MULTG', 'MV', 'NOC', 'NPF', 'NPP', 'NR', 'NRC', 'OCPIP', 'PARTNER', 'PLM', 'PSF', 'R18', 'R60', 'R65', 'RESMODE', 'SMOCP', 'SMX', 'SRNT', 'SVAL', 'TAXP', 'WIF', 'WKEXREL', 'WORKSTAT', 'FACRP', 'FAGSP', 'FBATHP', 'FBDSP', 'FBLDP', 'FBUSP', 'FCONP', 'FELEP', 'FFSP', 'FFULP', 'FGASP', 'FHFLP', 'FINSP', 'FKITP', 'FMHP', 'FMRGIP', 'FMRGP', 'FMRGTP', 'FMRGXP', 'FMVP', 'FPLMP', 'FREFRP', 'FRMSP', 'FRNTMP', 'FRNTP', 'FRWATP', 'FSINKP', 'FSMP', 'FSMXHP', 'FSMXSP', 'FSTOVP', 'FTAXP', 'FTELP', 'FTENP', 'FTOILP', 'FVACSP', 'FVALP', 'FVEHP', 'FWATP', 'FYBLP', 'wgtp1', 'wgtp2', 'wgtp3', 'wgtp4', 'wgtp5', 'wgtp6', 'wgtp7', 'wgtp8', 'wgtp9', 'wgtp10', 'wgtp11', 'wgtp12', 'wgtp13', 'wgtp14', 'wgtp15', 'wgtp16', 'wgtp17', 'wgtp18', 'wgtp19', 'wgtp20', 'wgtp21', 'wgtp22', 'wgtp23', 'wgtp24', 'wgtp25', 'wgtp26', 'wgtp27', 'wgtp28', 'wgtp29', 'wgtp30', 'wgtp31', 'wgtp32', 'wgtp33', 'wgtp34', 'wgtp35', 'wgtp36', 'wgtp37', 'wgtp38', 'wgtp39', 'wgtp40', 'wgtp41', 'wgtp42', 'wgtp43', 'wgtp44', 'wgtp45', 'wgtp46', 'wgtp47', 'wgtp48', 'wgtp49', 'wgtp50', 'wgtp51', 'wgtp52', 'wgtp53', 'wgtp54', 'wgtp55', 'wgtp56', 'wgtp57', 'wgtp58', 'wgtp59', 'wgtp60', 'wgtp61', 'wgtp62', 'wgtp63', 'wgtp64', 'wgtp65', 'wgtp66', 'wgtp67', 'wgtp68', 'wgtp69', 'wgtp70', 'wgtp71', 'wgtp72', 'wgtp73', 'wgtp74', 'wgtp75', 'wgtp76', 'wgtp77', 'wgtp78', 'wgtp79', 'wgtp80']\n" ] } ], "source": [ "print(list(pums_h.columns))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RTSERIALNOSPORDERPUMASTADJINCPWGTPAGEPCITCITWP...pwgtp71pwgtp72pwgtp73pwgtp74pwgtp75pwgtp76pwgtp77pwgtp78pwgtp79pwgtp80
0P111850861010207109631NaN...176178120100173321293534129
1P112850861010207117601NaN...224192124106161361323035137
2P22181056101020775791NaN...7912712511072207213483143
3P31113056101020776491NaN...882475751311391928131141
4P31213056101020798481NaN...1292681931791732541164198
\n", "

5 rows × 286 columns

\n", "
" ], "text/plain": [ " RT SERIALNO SPORDER PUMA ST ADJINC PWGTP AGEP CIT CITWP ... \\\n", "0 P 11 1 8508 6 1010207 109 63 1 NaN ... \n", "1 P 11 2 8508 6 1010207 117 60 1 NaN ... \n", "2 P 22 1 8105 6 1010207 75 79 1 NaN ... \n", "3 P 31 1 1305 6 1010207 76 49 1 NaN ... \n", "4 P 31 2 1305 6 1010207 98 48 1 NaN ... \n", "\n", " pwgtp71 pwgtp72 pwgtp73 pwgtp74 pwgtp75 pwgtp76 pwgtp77 pwgtp78 \\\n", "0 176 178 120 100 173 32 129 35 \n", "1 224 192 124 106 161 36 132 30 \n", "2 79 127 125 110 72 20 72 134 \n", "3 88 24 75 75 131 139 19 28 \n", "4 129 26 81 93 179 173 25 41 \n", "\n", " pwgtp79 pwgtp80 \n", "0 34 129 \n", "1 35 137 \n", "2 83 143 \n", "3 131 141 \n", "4 164 198 \n", "\n", "[5 rows x 286 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#pums_p=pd.read_csv('data/pums_p_sf_2012.csv')\n", "pums_p = pd.read_csv('data/csv_pca/ss12pca.csv')\n", "pums_p.head()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['RT', 'SERIALNO', 'SPORDER', 'PUMA', 'ST', 'ADJINC', 'PWGTP', 'AGEP', 'CIT', 'CITWP', 'COW', 'DDRS', 'DEAR', 'DEYE', 'DOUT', 'DPHY', 'DRAT', 'DRATX', 'DREM', 'ENG', 'FER', 'GCL', 'GCM', 'GCR', 'HINS1', 'HINS2', 'HINS3', 'HINS4', 'HINS5', 'HINS6', 'HINS7', 'INTP', 'JWMNP', 'JWRIP', 'JWTR', 'LANX', 'MAR', 'MARHD', 'MARHM', 'MARHT', 'MARHW', 'MARHYP', 'MIG', 'MIL', 'MLPA', 'MLPB', 'MLPC', 'MLPD', 'MLPE', 'MLPF', 'MLPG', 'MLPH', 'MLPI', 'MLPJ', 'MLPK', 'NWAB', 'NWAV', 'NWLA', 'NWLK', 'NWRE', 'OIP', 'PAP', 'RELP', 'RETP', 'SCH', 'SCHG', 'SCHL', 'SEMP', 'SEX', 'SSIP', 'SSP', 'WAGP', 'WKHP', 'WKL', 'WKW', 'WRK', 'YOEP', 'ANC', 'ANC1P', 'ANC2P', 'DECADE', 'DIS', 'DRIVESP', 'ESP', 'ESR', 'FOD1P', 'FOD2P', 'HICOV', 'HISP', 'INDP', 'JWAP', 'JWDP', 'LANP', 'MIGPUMA', 'MIGSP', 'MSP', 'NAICSP', 'NATIVITY', 'NOP', 'OC', 'OCCP', 'PAOC', 'PERNP', 'PINCP', 'POBP', 'POVPIP', 'POWPUMA', 'POWSP', 'PRIVCOV', 'PUBCOV', 'QTRBIR', 'RAC1P', 'RAC2P', 'RAC3P', 'RACAIAN', 'RACASN', 'RACBLK', 'RACNH', 'RACNUM', 'RACPI', 'RACSOR', 'RACWHT', 'RC', 'SCIENGP', 'SCIENGRLP', 'SFN', 'SFR', 'SOCP', 'SSPA', 'VPS', 'WAOB', 'FAGEP', 'FANCP', 'FCITP', 'FCITWP', 'FCOWP', 'FDDRSP', 'FDEARP', 'FDEYEP', 'FDISP', 'FDOUTP', 'FDPHYP', 'FDRATP', 'FDRATXP', 'FDREMP', 'FENGP', 'FESRP', 'FFERP', 'FFODP', 'FGCLP', 'FGCMP', 'FGCRP', 'FHINS1P', 'FHINS2P', 'FHINS3C', 'FHINS3P', 'FHINS4C', 'FHINS4P', 'FHINS5C', 'FHINS5P', 'FHINS6P', 'FHINS7P', 'FHISP', 'FINDP', 'FINTP', 'FJWDP', 'FJWMNP', 'FJWRIP', 'FJWTRP', 'FLANP', 'FLANXP', 'FMARHDP', 'FMARHMP', 'FMARHTP', 'FMARHWP', 'FMARHYP', 'FMARP', 'FMIGP', 'FMIGSP', 'FMILPP', 'FMILSP', 'FOCCP', 'FOIP', 'FPAP', 'FPERNP', 'FPINCP', 'FPOBP', 'FPOWSP', 'FPRIVCOVP', 'FPUBCOVP', 'FRACP', 'FRELP', 'FRETP', 'FSCHGP', 'FSCHLP', 'FSCHP', 'FSEMP', 'FSEXP', 'FSSIP', 'FSSP', 'FWAGP', 'FWKHP', 'FWKLP', 'FWKWP', 'FWRKP', 'FYOEP', 'pwgtp1', 'pwgtp2', 'pwgtp3', 'pwgtp4', 'pwgtp5', 'pwgtp6', 'pwgtp7', 'pwgtp8', 'pwgtp9', 'pwgtp10', 'pwgtp11', 'pwgtp12', 'pwgtp13', 'pwgtp14', 'pwgtp15', 'pwgtp16', 'pwgtp17', 'pwgtp18', 'pwgtp19', 'pwgtp20', 'pwgtp21', 'pwgtp22', 'pwgtp23', 'pwgtp24', 'pwgtp25', 'pwgtp26', 'pwgtp27', 'pwgtp28', 'pwgtp29', 'pwgtp30', 'pwgtp31', 'pwgtp32', 'pwgtp33', 'pwgtp34', 'pwgtp35', 'pwgtp36', 'pwgtp37', 'pwgtp38', 'pwgtp39', 'pwgtp40', 'pwgtp41', 'pwgtp42', 'pwgtp43', 'pwgtp44', 'pwgtp45', 'pwgtp46', 'pwgtp47', 'pwgtp48', 'pwgtp49', 'pwgtp50', 'pwgtp51', 'pwgtp52', 'pwgtp53', 'pwgtp54', 'pwgtp55', 'pwgtp56', 'pwgtp57', 'pwgtp58', 'pwgtp59', 'pwgtp60', 'pwgtp61', 'pwgtp62', 'pwgtp63', 'pwgtp64', 'pwgtp65', 'pwgtp66', 'pwgtp67', 'pwgtp68', 'pwgtp69', 'pwgtp70', 'pwgtp71', 'pwgtp72', 'pwgtp73', 'pwgtp74', 'pwgtp75', 'pwgtp76', 'pwgtp77', 'pwgtp78', 'pwgtp79', 'pwgtp80']\n" ] } ], "source": [ "print(list(pums_p.columns))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "there are 153115 observations of 206 variables in the housing table \n", "there are 368047 observations of 286 variables in the population table \n" ] } ], "source": [ "print(\"there are {} observations of {} variables in the housing table \".format(pums_h.shape[0],pums_h.shape[1]))\n", "print(\"there are {} observations of {} variables in the population table \".format(pums_p.shape[0],pums_p.shape[1]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Per the [Census Bureau's quick facts sheet](https://www.census.gov/quickfacts/CA), there were about 38 million people and 13.8 million housing units in California in 2012.\n", "\n", "Thus, we have:\n", "* Sample size for housing: $\\frac{153,000}{13,800,000}=1.1\\%$\n", "* Sample size for population: $\\frac{368,000}{38,300,000}=.94\\%$\n", "\n", "Let's do a few statistics--how many men and women in the Golden State? To answer this, we first need the [code book](https://www2.census.gov/programs-surveys/acs/tech_docs/pums/data_dict/PUMSDataDict12.pdf), which we will need regularly for these types of exercises. Which table do we need?\n", "\n", "We need the population table. As ever, refer to the data dictionary. Search for gender, male, female, or sex and see what appears." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "0 1\n", "1 2\n", "2 2\n", "3 1\n", "4 2\n", "5 2\n", "6 2\n", "7 2\n", "8 1\n", "9 1\n", "10 1\n", "11 1\n", "12 2\n", "13 1\n", "14 1\n", "15 1\n", "16 2\n", "17 2\n", "18 2\n", "19 1\n", "20 1\n", "21 2\n", "22 2\n", "23 2\n", "24 1\n", "25 1\n", "26 2\n", "27 2\n", "28 1\n", "29 1\n", " ..\n", "368017 1\n", "368018 2\n", "368019 2\n", "368020 1\n", "368021 1\n", "368022 1\n", "368023 2\n", "368024 2\n", "368025 1\n", "368026 2\n", "368027 2\n", "368028 2\n", "368029 2\n", "368030 1\n", "368031 1\n", "368032 2\n", "368033 1\n", "368034 1\n", "368035 2\n", "368036 1\n", "368037 2\n", "368038 1\n", "368039 2\n", "368040 1\n", "368041 1\n", "368042 2\n", "368043 1\n", "368044 2\n", "368045 1\n", "368046 2\n", "Name: SEX, Length: 368047, dtype: int64" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pums_p.SEX" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "2 NaN\n", "1 NaN\n", "Name: SEX, dtype: object" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pums_p.SEX.value_counts() #.map({'1':\"Male\",'2':\"Female\"})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, there are 181,000 1's and 186,000 2's. Done? \n", "\n", "No, we need to remember that these records have sample weights associated with them, allowing us to make *population estimates*. Think of the weights as roughly inversely proportional to the sampling probability. They should hover around 100, given the sample rate is around 1%. But some groups are much more likely to respond to surveys than others. The Census Bureau employs such information when designing the survey and sample rates for specific sub-groups. \n", "\n", "To get population estimates, we typically need to sum the weights." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "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", "
sum
SEX
118910864
219130566
\n", "
" ], "text/plain": [ " sum\n", "SEX \n", "1 18910864\n", "2 19130566" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pop_by_gender = pums_p.groupby(['SEX'])['PWGTP'].agg(['sum'])\n", "pop_by_gender" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nmTdvXv785z/n9NNPz2233VZuviT59Kc/nZNPPjlTpkzJWWedlTvvvLPM9duZda5duzbvf//78973\nvjdJsscee5S5dnPmzMnTTz/9d493wr5Ltj9fJ+y77c2W1N5zW7WaL6m97yZPnpzklX22aNGinH32\n2aPHxnLvtX3yKVOmZNOmTaPfj4yMjC7otcc2bdqU3t7els/Z3exorSMjI7n88svz5JNPZvny5enq\n6sqMGTOy3377jX695557ZmBgIPvss894jNBSq/mapskpp5wy+ptx1qxZ+eMf/1jm+u3MOtesWZMF\nCxaMfl/p2m1PJ+y7Ham+77an+p7bWdX33fr163PmmWfm5JNPzrHHHjv6+Fjuvba/bX7IIYfkrrvu\nSpI88MADOeCAA0aP7b///vnLX/6SF154IZs3b859992XmTNntnzO7mZHa73ooovy8ssvZ8WKFaNv\n461evTqXXXZZkuTZZ5/N4OBg+vr6du3Cd1Kr+QYHB3PMMcdk06ZNaZom99xzTw4++OAy129n1vnQ\nQw/lkEMOGf2+0rXbnk7YdztSfd9tT/U9t7Mq77vnnnsuCxcuzLnnnpsTTjhhm2Njuffa/kezT3zi\nE7n77rvz+c9/Pk3TZNmyZfnFL36RoaGhnHTSSTn//PNz2mmnpWmaHH/88Zk6derrPmd31Wq+gw8+\nOKtXr86HP/zhnHLKKUmSBQsW5IQTTsgFF1yQ+fPnp6urK8uWLdtt/5S8o+t3zjnnZMGCBZk4cWIO\nPfTQzJo1KyMjIyWu345m++tf/5opU6akq6tr9DmVrt1rddK+ez2dtO9eq1P23PZ00r679tprs2HD\nhqxYsSIrVqxIksybNy8vvvjimO49/6sYABTjQ1oAoBjxBoBixBsAihFvAChGvAHgTXjwwQfT39+/\n3eN33XVX+vv709/fny984Qs56KCD8sQTT7ypc+6eP2sPAAXccMMNWbNmzejnCbyeI444IkcccUSS\n5MYbb8whhxyS/fff/02d1503ALxBr/2c9scee2z0LvsrX/lKNm7cOHrsmWeeya233pqzzjrrTZ9X\nvAHgDZozZ842Hxjz9a9/Pd/4xjeyatWqHHHEEbnxxhtHj33ve9/LqaeemokTJ77p83rbHADGyBNP\nPJGLL744ySv/t/f06dOTvPJ55b/5zW9yzjnnjMl5xBsAxsiMGTPyrW99K+9617ty//33Z2BgIEny\n+OOPZ8aMGdljjz3G5DziDQBjZMmSJTnvvPMyPDycrq6uXHLJJUmSJ598Mu95z3vG7Dw+2xwAivED\nawBQjHgDQDHiDQDFiDcAFCPeAFCMeANAMeINAMWINwAU8/8BN++jRDxyUaoAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pop_by_gender.plot(kind='barh')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Let's do a little filtering\n", "We want to keep just the Bay Area records for now. So what geographic identifiers do we have in the PUMS files?" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['085', '013', '055', '041', '001', '097', '075', '081', '095'])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bayareafips ={'001':'Alameda', '013':'Contra Costa', '041':'Marin', '055':'Napa', '075':'San Francisco', '081':'San Mateo', '085':'Santa Clara', '095':'Sonoma', '097':'Solano'}\n", "bayareafips.keys()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(265,)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pums_p.PUMA.unique().shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(Incidentally, since there are 265 PUMA areas in the Bay Area, it means they easily satisfy the 100,000 population per PUMA area required for the Census confidentiality conditions)\n", "\n", "To know which PUMAS are in which counties, we need to get a [correspondence](http://www2.census.gov/geo/tiger/GENZ2013/cb_2013_06_puma10_500k.zip). Or we can cheat--SF PUMAS provided below." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[7501, 7502, 7503, 7504, 7505, 7506, 7507]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sfPUMAS = [k for k in range(7501,7508)]\n", "sfPUMAS" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(7311, 286)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pums_p_sf=pums_p.loc[pums_p.PUMA.isin(sfPUMAS)]\n", "pums_p_sf.shape" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(3586, 206)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pums_h_sf=pums_h.loc[pums_h.PUMA.isin(sfPUMAS)]\n", "pums_h_sf.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Down to several thousand records now. How many records in each PUMA?" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "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", "
size
PUMA
75011231
7502896
7503971
7504955
7505969
75061063
75071226
\n", "
" ], "text/plain": [ " size\n", "PUMA \n", "7501 1231\n", "7502 896\n", "7503 971\n", "7504 955\n", "7505 969\n", "7506 1063\n", "7507 1226" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "## records per puma\n", "pums_p_sf.groupby(['PUMA'])['PWGTP'].agg(['size'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What is the 2012 population of San Francisco based on these data?" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "824855" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sf_pop = pums_p_sf.PWGTP.sum()\n", "sf_pop" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Processing and recoding stuff\n", "Data comes with numeric codes. Let's assign labels to a few as well as create some dummies." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### make convenience wrapper for assigning labels from dictionary to codes in data files\n", "PUMS variables are not exposed in the census API (yet, at least). Instead, grab variable labels--pasted directly from PDF [data dictionary](https://www2.census.gov/programs-surveys/acs/tech_docs/pums/data_dict/PUMSDataDict12.pdf).\n", "\n", "Wrapper here reads the pasted strings, cleans them a bit and tries to stuff into a dictionary." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "def map_value_labels(codes_pasted):\n", " code = []\n", " for item in codes_pasted.strip('\\n').replace(' .',',').split('\\n'):\n", " id = int(item.split(',')[0])\n", " val = item.split(',')[1]\n", " code.append([id,val])\n", " return dict(code)\n", "\n", "def assign_value_labels(df,value_map,var):\n", " target = var+'L'\n", " if target in df.columns:\n", " df[target].replace(df[var].map(value_map))\n", " else:\n", " df[target] = df[var].map(value_map)\n", " print(df[target].value_counts())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Applying the value label wrappers / mappers\n", "Paste the codes, store in a variable as a string." ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": true }, "outputs": [], "source": [ "codessex =\"\"\"\n", "1 .Male\n", "2 .Female\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## we ship the blank category here--Ideally fix, but currently most vars are loaded as integers, so 'bb' won't work here\n", "## RACE\n", "## note that these are not actually verbatim categories from the code book. Instead, this collapses categories.\n", "codesrace =\"\"\"\n", "1 .White\n", "2 .Black\n", "3 .Other\n", "4 .Other\n", "5 .Other\n", "6 .Asian\n", "7 .Other\n", "8 .Other\n", "9 .Two + Races\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## TENURE\n", "codesten=\"\"\"\n", "1 .Owned with mortgage or loan (include home equity loans)\n", "2 .Owned free and clear\n", "3 .Rented\n", "4 .Occupied without payment of rent\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## YEAR BUILT\n", "codeybl=\"\"\"\n", "01 .1939 or earlier\n", "02 .1940 to 1959\n", "03 .1940 to 1959\n", "04 .1960 to 1979\n", "05 .1960 to 1979\n", "06 .1980 to 1999\n", "07 .1980 to 1999\n", "08 .2000 to 2011\n", "09 .2000 to 2011\n", "10 .2000 to 2011\n", "11 .2000 to 2011\n", "12 .2000 to 2011\n", "13 .2000 to 2011\n", "14 .2000 to 2011\n", "15 .2000 to 2011\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## YEAR MOVED INTO UNIT\n", "codemovein=\"\"\"\n", "1 .12 months or less\n", "2 .13 to 23 months\n", "3 .2 to 4 years\n", "4 .5 to 9 years\n", "5 .10 to 19 years\n", "6 .20 to 29 years\n", "7 .30 years or more\n", "\"\"\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then, grab those strings, and call the two wrapper functions\n", " 2. `race_value_map` in the example below stores the mapping dictionary\n", " 3. `assign_value_labels` applies those value labels to the passed dataframe in the source variable name, with an `_l` (for label) appended." ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Female 186615\n", "Male 181432\n", "Name: SEXL, dtype: int64\n" ] } ], "source": [ "var = 'SEX'\n", "value_map = map_value_labels(codessex)\n", "assign_value_labels(pums_p,value_map,var) " ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "White 233425\n", "Asian 51761\n", "Other 46025\n", "Black 20146\n", "Two + Races 16690\n", "Name: RAC1PL, dtype: int64\n" ] } ], "source": [ "var = 'RAC1P'\n", "value_map = map_value_labels(codesrace)\n", "assign_value_labels(pums_p,value_map,var) " ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5 to 9 years 30248\n", "10 to 19 years 28520\n", "2 to 4 years 23960\n", "12 months or less 16910\n", "13 to 23 months 16562\n", "30 years or more 15107\n", "20 to 29 years 13988\n", "Name: MVL, dtype: int64\n" ] } ], "source": [ "var = 'MV'\n", "value_map = map_value_labels(codemovein)\n", "assign_value_labels(pums_h,value_map,var) " ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Owned with mortgage or loan (include home equity loans) 55072\n", "Rented 49868\n", "Owned free and clear 22270\n", "Occupied without payment of rent 2044\n", "Name: TENL, dtype: int64\n" ] } ], "source": [ "var = 'TEN'\n", "value_map = map_value_labels(codesten)\n", "assign_value_labels(pums_h,value_map,var) " ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1960 to 1979 43970\n", "1980 to 1999 34802\n", "1940 to 1959 29456\n", "2000 to 2011 15354\n", "1939 or earlier 13446\n", "Name: YBLL, dtype: int64\n" ] } ], "source": [ "var = 'YBL'\n", "value_map = map_value_labels(codeybl)\n", "assign_value_labels(pums_h,value_map,var) " ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "3 or more bedrooms 78247\n", "2 bedrooms 36841\n", "1 bedroom 18010\n", "Studio 3976\n", "Name: BDSP_l, dtype: int64" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "## Bedrooms\n", "def brclassifier(val):\n", " if val < 1: return \"Studio\"\n", " elif val <=1: return \"1 bedroom\"\n", " elif val <=2: return \"2 bedrooms\"\n", " #elif val <=3: return \"3 bedrooms\"\n", " #elif val <=4: return \"4 bedrooms\"\n", " elif val >=3: return \"3 or more bedrooms\"\n", "pums_h['BDSP_l']=pums_h.BDSP.apply(lambda x: brclassifier(x))\n", "pums_h.BDSP_l.value_counts()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'59-78'" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def age_mapping_dyn(x):\n", " ## ordinal var\n", " breaks = [0,18,34,59,79,99]\n", "\n", " ## given the breaks above, what is the interval between each?\n", " diff=[breaks[i+1]-breaks[i] for i in range(len(breaks)-1)]\n", " \n", " ## make tuples of breaks and distance--we need this to generate a list of age ranges\n", " joint = zip(breaks,diff)\n", " l=['%s-%s'%(yr[0],yr[0]+yr[1]-1) for yr in joint]\n", " \n", " # Which bin in breaks does the age fall in?\n", " cnt=0\n", " for k in breaks:\n", " #print k\n", " if x0),['newcomer']]=1\n", "pums_p['newcomer']=pums_p['newcomer'].map({0:'existing resident',1:'new resident'})\n", "pums_p['newcomer'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Now we can study our population with respect to other characteristics\n" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\npNjYWP3+++9Z6vL19dX06dN19uxZhYeH66OPPpK3t7cGDRqkr7/+Wl999ZWaN2+uzp07a8OGDTp/\n/rx92z179mjr1q1atmyZLl26pCeffFKSNGPGDDVo0EDh4eE6duyYhg0bpg8//FA//fSTPvjgA5Us\nWVJhYWHas2ePoqKidOjQoRuGlMvfBv/dXwEAAH9Zy28/yXHdqrefvYWVOCmoHDp0SNu3b7ffU5Ke\nnq4zZ86oZs2a8vHxkYeHh6pVq5Zpm2HDhum9997TggULVKFCBTVt2jTH/VetWlWSVLJkSfv9LSdP\nnlRQUJAkqU6dOvrXv/6VZbvy5ctLkhISEnTmzBl1795dknTx4kUlJCQoKipKM2bMUOfOnVW8ePFM\nl5qOHTumGjVqyM3NTUWKFFHlypXtvW7evFlr1qyRJJ07d06S5O/vr5IlS9rrTE1NvZmPEAAAIyUm\nXsjzfQYG+uS4zin3qFSoUEEtWrRQXFycZs6cqeDgYPn5+Wnt2rUqXLiw3N3dtXbt2kzbLFmyRC+9\n9JIWLFggSfriiy/k5uamjIyMLPu32WxZlpUoUUKHDx+WJO3atSvbutzcrrX7j3/8QyVLltScOXMU\nFxeniIgI1apVSytXrlRISIji4uIUFBSkpUuX2retVKmSdu/erYyMDF26dMl+rAoVKqhLly6Ki4vT\npEmT1KpVqxxrzKkfAACQPaeMqISFhWnEiBGKiIhQcnKywsPD9euvv2ry5MlauHChLMtSeHi47rvv\nPvs2NWvWVI8ePVS4cGEVKlRITZo0UVpamg4dOqR58+bd8JgxMTF69dVXVahQIXl4eKh48eI5vrdo\n0aLq0qWLOnbsqKtXr6p06dJq3ry50tLSNGLECHl7e8vNzU1jxozR1q1bJUnVqlVT48aN1bZtWxUr\nVkwBAQGSpKioKA0fPlxLly5VcnJyrpd1AgICdOXKFU2cOFGDBg1y8NMEAODOZbMsy3J1EXlh4cKF\nat68uYoWLarY2Fh5eHjk2xtWWw7I+dogAACuNGfo43m+z9wu/ThlRMUVAgIC1LVrVxUqVEg+Pj6Z\nvvEDAADyp9smqAQHBys4mG/LAABwO3H5A98AAAByQlABAADGIqgAAABjEVQAAICxCCoAAMBYBBUA\nAGAsggoAADAWQQUAABiLoAIAAIxFUAEAAMYiqAAAAGMRVAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZB\n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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pums_p.loc[:,['newcomer','SEXL','PWGTP']].groupby(['newcomer','SEXL']).sum().unstack().plot(kind='barh')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's add some age information to movers, picking arbitrary age breaks for categorization. How do recent arrivals compare to current residents on their age profile?" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "scrolled": 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", "
PWGTP
newcomerAGEPL
existing resident0-177882541
18-336709605
34-5811216011
59-785187931
79-981319422
new resident0-171347003
18-332263351
34-581622568
59-78390474
79-98102524
\n", "
" ], "text/plain": [ " PWGTP\n", "newcomer AGEPL \n", "existing resident 0-17 7882541\n", " 18-33 6709605\n", " 34-58 11216011\n", " 59-78 5187931\n", " 79-98 1319422\n", "new resident 0-17 1347003\n", " 18-33 2263351\n", " 34-58 1622568\n", " 59-78 390474\n", " 79-98 102524" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pums_p.loc[:,['newcomer','AGEPL','PWGTP']].groupby(['newcomer','AGEPL']).sum()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAPJo8eJwtW3b0fr6/ffnyd3dXZIUFjZHn366RY8/3kCHD/+oRx6pocOHD6l+/Ubas+c7DRzYTykp\nKfr9999UqVJlbdy4TkePHtGcOQvk7u6u9PR0TZgwRt9/v1fNmjVXs2bNdfnyJY0b947mzVuUqY7s\nPrdDh4Bsa5458z1Nnfq+fH1La+jQATpz5mdVquSfaZ+LF6M0efJ4Xbnyu3Vb48ZPWm/+jYhYqtq1\n68rP72H5+T2sIUP66+mnn8kxHN0JLv0AAJAHiYkJOnHipyz/yEs3VxwSEuJVuHBh1avXQEeOHJIk\n7dnznVq0aK2EhHjFx8fr+PGjeuyxOjKZTNqwIVKDBg23Bg4XFxdNnPie6tdvmOX8Ofn752YnLu66\nzGazypQpKycnJ9Wv30gHD36fZb/k5Bt6552xeuyxOlne++23y9qx4z/q1q2ndVuDBo20fftnNteZ\nG6yoAACQB8ePH5Of38OZtg0Z0l9OTk4ymUyqVq26mjVrLicnJ124cF4Wi0WHDx9Snz799PjjDbR7\n924dOnTUOtU4Li5O3t7ekqSvv/4/rV27WikpKXr00dqZpjhnJ7vPzU5iYmKmp996eHjo6tXoLPv5\n+1fJ8bPWrFmhgIDX5erqat1WsaK/Pvlkg9q2vfvPhSGoAACQB7GxsSpevHimbX+/BPN3lSpV1t69\nu1W8eAm5ubmpYcPG+uGHfTp69Lj1Eo2Hh4fi4q7Ly6uYnn76GT399DPau3e3duz44ra15PS5/1Sk\nSBElJSVZXyclJcnT01ORkau1a9f/SZImTJiiEiUeyPb4jIwM7d27W8HBAzNtL1HiAcXFXb/t5+cF\nl34AAMgDHx8fxcfbNjKgXr0GiohYqoYNG0uSatV6TD/99JPMZrO8vIpJktq27ajZs2cpNTVV0s1Q\ncPjwIes05rvhz8+6dOm/slgs+v77PapVq7Y6dnxN8+Yt0rx5i3IMKZJ05szPqlChktzc3DJtj4+P\nk7e3z12r8+8IKgAA5EH16jV15szPNu178z6VH9Wo0ROSJFdXV3l6ema6B6RDhwDVrFlLgwf304AB\nfdSrV1clJCSoT59+eaovOvqKJkwYk2X7sGGjNH78aPXq1U3Vq9dU1arVbD5nVNR5lS37YJbtP/10\nTI8/Xj9Pdd4OQwkNisFetmMQWu7Qr9yhX7YriL2aMWOKWrVqq8qVq+b6WHv3Kz09XQsWzLvt/S13\n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\nZs3k7e2t7du3q0iRInJxcdH27dszHfPxxx9rwIABWrFihSTpP//5j5ycnGQ2m7Oc32QyZdlWunRp\nnTlzRpJ0+PDhbOtycrr54/7rX/9SmTJl9OGHHyoiIkKBgYF67LHHtHnzZrVp00YRERHy9/dXZGSk\n9dhKlSrpyJEjMpvNSkpKsn5WhQoV1L17d0VEROiDDz5Qy5Ytc6wxp58HAABkzy4rKgEBARozZowC\nAwOVkJCgzp076/Lly5o9e7ZWrlwpi8Wizp07q2bNmtZjatWqpT59+qhIkSLy8PBQ06ZNlZqaqtOn\nT2vZsmW3/cxx48bpnXfekYeHh1xdXeXr65vjvsWLF1f37t3VpUsXZWRk6MEHH9TLL7+s1NRUjRkz\nRoULF5aTk5MmTpyo/fv3S5KqVaumJk2aqH379ipVqpRKlCghSQoKCtLo0aMVGRmphISEW17WKVGi\nhNLS0jRjxgwNHz7cxm4CAFBw3TeP0F+5cqVefvllFS9eXKGhoXJ1dc2394LwCH0AgFHd60fo22VF\nxRFKlCihHj16yMPDQ56enpm+8QMAAPKn+yaoNGvWTM2aNXN0GQAA4C5y+APfAAAAcnLfrKjcT2Z3\nLuXoEgDcY/Ofne7oEu5YyZKedvnq6v2KftmGFRUAAGBYBBUAAGBYBBUAAGBYBBUAAGBYBBUAAGBY\nBBUAAGBYBBUAAGBYBBUAAGBYBBUAAGBYBBUAAGBYBBUAAGBYBBUAAGBYBBUAAGBYTE82oBvfN3N0\nCQDusR7f73R0Cbn24chnHV0CCgBWVAAAgGERVAAAgGERVAAAgGERVAAAgGERVAAAgGERVAAAgGER\nVAAAgGERVAAAgGERVAAAgGERVAAAgGERVAAAgGERVAAAgGERVAAAgGERVAAAgGG5OLoAZLVlVitF\nR8c7uox8o2RJT/qVC/Qrd+gX4FisqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMi\nqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAA\nAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMi\nqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAAAMMiqAAA\n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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pums_p.loc[:,['newcomer','AGEPL','PWGTP']].groupby(['newcomer','AGEPL']).sum().unstack().plot(kind='barh')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How do recent arrivals compare to current residents in racial profile?" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "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", "
PWGTP
newcomerRAC1PL
existing residentAsian4388282
Black1846543
Other4475976
Two + Races1388573
White20216136
new residentAsian738948
Black422679
Other863996
Two + Races303564
White3396733
\n", "
" ], "text/plain": [ " PWGTP\n", "newcomer RAC1PL \n", "existing resident Asian 4388282\n", " Black 1846543\n", " Other 4475976\n", " Two + Races 1388573\n", " White 20216136\n", "new resident Asian 738948\n", " Black 422679\n", " Other 863996\n", " Two + Races 303564\n", " White 3396733" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_by_race = pums_p.loc[:,['newcomer','RAC1PL','PWGTP']].groupby(['newcomer','RAC1PL']).sum()\n", "new_by_race" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nNUiSFBraV6+99roqV66qzz5boa++2ih394z/NNav31A9e/bWxo1faMOGtUpJSdHJkydUpUpVSRlv\npe3fv1em8xYrVkTh4aOVL1/+bOtOSkpShw6t1b37K3rppZez3S429k8tXbpIYWFv3MlHp2++2a74\n+Di1bNn6jvYzK4IKAMApzZ8/R+3bd7L9/c9/zrJN7jd79nv64ov1evTRhtq7d48efrim9u7drQYN\nGmvHjm/VtWuQkpOT9ccfv6tSpSr6/PNV2r9/n957b668vLyUlpam8eNH64cfvldgYCsFBrbSuXNn\nNXbsSM2aNS9THX8976JFc/XFF+vVsWPnbOv+978369lnn9OGDWvVqVNX25tx/65YseJ3HFIk6fHH\nm2jIkFA1bfrkLQOTs+DWDwDA6Vy9mqBDh35WpUqVb1pnGIYSEuKVN29e1a/fUPv27ZYk7djxrdq0\neUEJCfFKSEjQwYP7Vbt2XVksFq1evVKDB4fbAoe7u7smTHhTDRo0uun42TEMQ/HxGee9lfXr16hV\nq7YqX76ioqN3SMp4I+2gQf0UGtpXffv21PHjx3T69G/q37+XJGnLlq80aFA/9e8frNDQvoqLu6Kd\nO6MVHv6ahg8foqCgl7RkySLbORo2bKyNG/9ld+1mxogKAMDpHDx4QH5+5TItGzIkVFarVRaLRdWr\n11BgYCtZrVadOnVShmFo797d6tdvoB59tKF+/DFax48fU8OGjSVlTDx4Y86cbdv+raioZUpOTtYj\nj9TJNCNzVv563nr16tjmGsrKqVMnlZ6erooV/dWq1fNavTpKjRo9poMH98vX11cjR47Tr78eU2Li\nNVtokqTTp3/T22+/Jy8vL7355gTt3BmtQoUK648/ftfChZ8qOTlJ7du3sk246O9fWWvXrlb79s7/\n3heCCgDA6Vy+fFm+vr6Zlv31FsxfVapURd9//518fYvI09NTjRo9pu+++6+OHfvFdosmX758thmS\nmzZ9Uk2bPqnvv/9OW7Z8ddta/nre273Fdd26z3X1aoKGDBkkw0jXgQP7dfbsGT322BM6c+a0hg8f\nIg8PD/Xo0TvTft7ePpo4cYzy5cunEyd+Vd26j0rKCCRubm7Kly+/PD3/13uRIkUVF3fltrU7A4IK\nAMDp+Pj4KD7evte616/fUEuWLNTTTz8rSQoIqK2FC+fLYrGoUKHCkqT27Ttpxox3NGzYaHl6eur6\n9evau3d3ts+P3I3U1FT9+9+btXjxChUoUECS9NFH87RmzSrVr99IxYuXVGTk+9q7d7fmz5+toUNH\nSJLi4q7o448/1KpV65Wenq7Bgwfoxuw32dUXHx8nb2+fHKs9N/GMCgDA6dSoUUvHjv1i17YZz6ns\nUePG/5AkeXh4qGDBgqpdu65tm44dO6tWrQCFhQ3UoEH91KdPkBISEtSv38C7qi829k+NHz8607Lt\n2/+jGjVq2UKKJLVq9bz+9a8N8vMrp7VrV2vQoH6aO3eWXn65h22bAgUKqnr1h9Wv3ysKDe2rPHny\n6Pz52Fue/+efD+jRRxvcVe1mw6SEJsWkVubmav1IrteTq/Uj0dPfTZ8+RW3btleVKtVyuKq7d6Of\ntLQ0zZ0767bPtzhKWNhATZ48Xfny5bvnYzEpIQAAd6F37xB9/vmq3C4jS4ZhqGvX7rly7v/+9z96\n+ulncySkmAHPqAAAnJKPj6+GDRt9+w1zgYeHh3x9i+TKuZ94olmunNdRGFEBAACmRVABAACmRVAB\nAACmxTMqJrTrq/DcLiHHxeTgsfzqjMnBowEAzIygAgC4ZwO33vnkebfy/lNv3XYbZ5w9uX//XkpL\nS5OXl5eSk5MUEFBHgwaFaefOaH355QaNGTPR7s9o/fo1OnfurPr2HWBbdv78eS1dulCDB7vO//AS\nVAAATslZZ08eO3aSHnqorNLT0xUSEqxffjmSY59J0aJF5eHhqX379iggoHaOHTc38YwKAMDpOPPs\nyTekpqYoLS1NBQsWyrR85cplevXVEPXpE6Q33ghTWlqaEhMTFRExXP36vaJevbrr4MEDtu0vXbqo\nkJBg/fTTj5KkZ555VlFRy+2u2+wYUQEAOB1nnT1ZksaPHy0vLy+dPXtGFSr4q2jRYvrtt4wn+a5f\nv66EhHi9++5sWSwWDR48QEeOHNbevT+pbFk/TZw4VTExJ/XDD9/LyyuPLlw4r2HDhigsLFzVq9eQ\nJFWsWMkWzlwBQQUA4HScdfZkKfOtn0mTxmrZsqWqVq26JMlqtcpqtWrcuFHKmzevLlw4r7S0NMXE\nnFKTJk9Kkvz8ysvPr7zWr1/z/3356q+z4dx4xsZVcOsHAOB07mb25EaNHpOUMXvykSOHlZ6eftPs\nySkpKZLkkNmT/85qtapo0WJKS0u1LTt69Iiio7/ThAlvavDgcKWlXZdkqFy5Cjp06KAk6bffYjRx\nYoSkjEkNR40ar6lTJyopKUmSlJ6eLg8PT4fVfb8RVAAATscZZ0++Yfz40Ro0qJ9CQ/vq5Mlf1aHD\n/x689fMrJzc3d/Xv30tDhoSqaNGiOn8+Vu3adVBMzEmFhvbVlCnj1anTy7Z9KlWqrKeeekazZr0r\nSfrll6Mu8yCtxOzJpuSK71HJSWZ4jwqz2Jqfq/Uj0dPfMXty1mbO/KeefPIZ1axZK0eOx+zJAADc\nBWZPvtn587FKTk7JsZBiBgQVAIBTYvbkmxUtWkxDhw6/7+d1JIIKAAAwLYIKAAAwLYIKAAAwLYIK\nAAAwLdd6fZ2L+GJTkyyX9x/e7P4WkoNc8WeVAP7naO+ed7dfNsurLFh0232dcfZkwzD02WcrtGXL\n13Jzc5PFYlG3bj1tr/L//PNVatu2vXbt2nnHsynfMG/ebAUGPic/v/J3vK8ZEVQAAE7JGWdPXr06\nSocO/awZM+bI09NTly9f1tChr6pQoUKqXr2GFi/+SG3avHBPn0vnzi9r0qRxeuutyHs6jllw6wcA\n4HScdfbk1atX6rXXhsrTM+MV997e3urZs7fWrPlMa9eu1uXLlzRu3EhJUkzMKb3++qsKDu6mRYsW\nSMp462xoaF+FhvbV6NHDdPVqgnbujFbfvj01YEBvffXVRhUqVFhWq0UnTvxqd+1mxogKAMDpOOvs\nyQkJ8SpUqFCmZaVLl9Hvv/+uESPGaNGiBRo3bop2796l1NQUTZ36jtLS0tSxYxv17Nlb06ZN0pgx\nE+XnV05r1nym5cs/UUBAbaWlpWnevEW2Y/r7V9bu3btUoULFO/lYTYmgAgBwOs46e7KXVx4lJCSo\nQIECtmWnT/+mEiVK3LRtxYqV5OHhIQ8PD1mtbpKkU6dO6K23JkuS0tLSVL58BUm6KbQVKVJUcXFX\nblu7M+DWDwDA6Tjr7MkvvthJ7747XampGTMmX7x4QYsWLVDbti9KkiwWi25MwZfVucuWLacxYyZq\n1qx5CgkJtU20aLVm/s95fHycvL19crT23EJQAQA4HWedPblTp67y96+sAQN6q3//XoqIGK7evUNU\no0ZNSdIjj9TR0KGvZnvc8PARmjAhQv3799L8+XPk73/zMzqS9PPPB/Toow3uqnazYfZkE5rw+vos\nl/PzZPNwtX4k1+vJ1fqR6OnvmD05a5cuXdK0aRM1deo/c+R4zJ4MAMBdYPbkrK1c+an69QvNlXM7\nAg/TAgCcErMnZ+1ub1eZFSMqAADAtAgqAADAtAgqAADAtAgqAADAtHiYFgBwz+ZM/U+OHs+e1zE4\n2+zJv/xyRDNmvCNJOnhwv2rUqCVJ6tatp+1ldI6yfv0aLVq0QKVKlZYkxcfHq06duho8ONwh5zMM\nQ5MmjdUbb4zK8m3Bd4KgYkLNjy3KcvnR3lkvz44906QDgLNyttmTK1euatu3Xbvn9O67s22h6H54\n9tnn1LfvAElSenq6QkKC9csvR1S5ctUcP5fFYlHz5i20fPlS9ejR656Oxa0fAIDTcdbZk7Ny+PAh\njRjxuiRp06Z/KTj4ZUnS7t279PbbUxUXd0VDh76qgQP7KCQkWLt378ryODt3RmvChAi7znn16lVd\nvZqgfPnyKz4+XqNHD1NY2EB1795Ja9euliQdOLBPffv2VMeOHTV69BtKTk7OcvbmixcvaNCgfgoN\n7au+fXvq+PFjkqQGDRrp66836V7fK8uICgDA6Tjr7MlZqVatuk6f/k2pqamKjt6h9HRDly9f1jff\nbFPTpk9q4cIFatz4cb34Yif98cfvGjSon1auXGvb/8SJX/XOO1MVHx+vixcvKDS0rx5/vIk6d+6W\n6TybNv1L+/bt0fnz51WgQAEFB/dVmTIP6fDhn9WiRUs1adJMv//+u15/PVRt27bXW29N1qRJ01Sv\nXi19+OFixcScynL25ipVqsrX11cjR47Tr78eU2LiNUkZYa9QoUI6efLEPc3iTFABADgdZ509OTuP\nPtpQe/bs0oUL59W8+TPatesH7du3V/37v6ply5aodeu2kqQSJUrK09NLV65cVuHCGcGqQoWKmjVr\nnnbujNaXX27QmDETszzHjVs/Z86c1uuvv6qyZf0kZbw4LypqubZt26K8efMpLS1NUsYzQH5+5SVJ\nzz/fTlLWszf37NlbZ86c1vDhQ+Th4aEePXrbzpkTszhz6+c2Dh06pFmzZt20PCwsTNHR0Xd8vKVL\nl+ZEWQDwQHPW2ZOz06RJM3388UeqXLmqGjRorBUrPlWFChXl7u6ucuUqaO/ejNtXf/zxuxITr6lA\ngeznxrmdMmUeUlhYuEaPHqbk5CQtW7ZEjzxSRxERE9W06ZO2WzXe3r46c+a0JGnx4o/0zTfbspy9\n+aefflTx4iUVGfm+Xn65h+bPn207V3x8nHx87m0WZ0ZUbqN69eqqXr16jh1vzpw56tat2+03BABk\nq0aNWpozZ6Zd29av31DTpk1SRMQESf+bPblSpSq2bTp27Kw1a1YpLGygrFarrl5NUI0aAfc0e/Ls\n2e9p7NhJdm3/yCN1dPLkCQUFBatKlao6e/aMgoKCJUk9evTSm2+O15YtXyk5OVnDh4+Wm5tbln3W\nr9/QrvM1bNhYtWvX1cKFC/SPfzTRe++9o02b/qVChQrLYrEoNTVV4eEjNXnyOHl5eahwYV916dJd\nRYoU1YQJEbp+/bqsVqtGjBij/PkLaNy4Ufr88yilpaUpOLivpIywd+nSRZUtW+421dyaKWdPXr16\ntbZt26akpCTFxMSoT58+at++vY4cOaJJkzK+dG9vb02ZMkXDhw9XSEiIatWqpcDAQA0ZMkQtWrRQ\ncHCw3nzzTZUoUUKSFB0drbffflseHh7q1KmTSpcurcjISLm5uals2bKaMGGCTp8+rREjRsjd3V3p\n6el65513FBMTo+XLlysyMlKffPKJoqKiVKxYMV24cEHDhg1T3bp1NXbsWJ06dUrp6ekaPHiwGjZs\nqDZt2qhBgwY6cuSILBaLZs+eraVLl+r9999Xhw4dNG7cuGz7/7btiznyOZrpVz+uNuurq/UjuV5P\nrtaPRE9/x+zJ98fdfkfffLNNJ06cUPfuPe06R3ZMe+snISFBH3zwgebMmaN58zJ+zhUREaGxY8dq\nyZIlatKkiRYsWKBnnnlG27dv12+//SZPT0999913io+PV3Jysi2k3JCcnKxPP/1Ubdu2VUREhGbN\nmqWlS5eqRIkS+vzzz/Xdd98pICBACxcu1KBBgzINK54/f16LFy/WypUrNXv2bKWmpkqSoqKi5OPj\no08++USzZ8/WhAkZif3q1atq1aqVli5dquLFi2v79u3q37+/ChcufMuQAgCwD7Mnm5dhGNqy5Wt1\n6nTzz7TvlGlv/VSrlpGQS5UqZbtnePz4cY0fP16SlJqaqvLlyys4OFgDBgyQj4+P+vTpo4ULF2r7\n9u168sknbzpmhQoVJEkXL17Un3/+qcGDM5JuUlKSHnvsMQ0YMEDz589X7969VbBgQYWFhdn2jYmJ\nUaVKleTp6SlJCggIkCQdPXpUu3bt0r59+yRlPFx08eJFSdLDDz9s6yE5OTlnPyA73Cqh5gaz1XOv\nXK0fyfV6crV+JHr6+35vvz0th6u5d//rx/eW2zmTu/mOZs2akSPnNm1QyeoBpgoVKmjatGkqXbq0\ndu3apdjYWBUuXFh58uTRl19+qZkzZ2rTpk1avHixpk+fftP+VmvGAJKPj49Kliyp2bNnq2DBgtqy\nZYvy5cunLVu2qF69egoNDdWGDRu0YMECvfDCC5Kk8uXL69ixY0pKSpKHh4cOHTqk559/XhUrVlTJ\nkiUVEhKipKQkzZkzx/YTt6x6uJ932sw0ROxqQ9au1o/kej25Wj8SPTkDV+tHuj89OeWtn6yMGzdO\nw4YNU5cuXfTOO++oatWMt+k1b95ciYmJ8vb21uOPP67ExET5+fllexyr1apRo0apb9++6ty5sz79\n9FNVqVJFNWvW1HvvvaegoCAtX74800Ovvr6+6tOnjzp37qw+ffrYXujTuXNn/frrr+rWrZs6d+6s\nMmXK2AJRVvz9/TV06NAc+kQAAHBtpnyY9kHHw7Tm52r9SK7Xk6v1I9GTM3C1fiRGVAAAALJl2mdU\nAADOI2b3hLvbL5vlfnXG3HZfZ5s9+aefftSKFZ9o2rRISdKiRQsUFbVM69Z9JTc3N+3cGa21az9T\nw4aP6dy5s7YJBG8YPXqYxo+foj///EO//npc//jHE1l+LklJSXrnnakaOXLsfXthnSMRVAAATsnZ\nZk+uWTNAkyaNlWEYslgs2rkzWrVr19XBg/sVEFBbP/30oxo2fCzbfidNyviF048//qBz585mG1Ty\n5MmjatUe1tdfb1SLFi3v7EM1IYKKCc3oWvy227z/1Fv3oRIAMKcbsycPHZr97Ml+fuVUq9Yj+vjj\nBerSpZtt9uQ5c95TQkKCjh49nGn25Jkz5900e/KdjEjcmD25aNFSWa739PRUhQr+OnHiuIoUKSqr\n1aonn3xaO3Z8q4CA2tqz5ye1a9dB0dE7tH//Xg0ePEBXrlzWiy92UuvWL6hdu+e0cuVaffrpYqWk\npKhmzQAVK1ZcM2a8LUny9vbRiBERyp+/gJo3b6Fhw8IIKgAA5AZnnT25fv0G2rt3j/LnL6AGDRqp\nQYNGWrZsqXr06KXk5CQVL57xolJPTy+9/fYMnTlzWqNGhat164xXZVgsFnXtGqRz587qscceV+/e\nQTfNZtyrVz95e3vr/PlYXbt2Tfny5bvrz9kMCCoAAKfjrLMn16/fSEuWLJSbm1WdO3dXoUKF5eXl\npejoHapbt75tuypVqspiscjXt4iSkpKyPV5Wsxnf4Ovrq/j4OKcPKvzqBwDgdJx19mR//0r644/f\nderUKVWunDEpYoMGjbR8+VLb6I6U9QtD/7ruxptFsprN+IaEhATbKJEzI6gAAJxOjRq1dOzYL3Zt\nW79+Q+3bt8f2H/EbsyfXrl3Xtk3Hjp1Vq1aAwsIGatCgfurTJ0gJCQn3NHvy+PGjs1xXunQZVar0\nv2drGjV6TMeOHdUjj9Sx69iVKlXWf/6zRVu3blZ4+AhNmBCh/v17af78OfL3zzjulSuX5ePjKy+v\nPHdVv5nwwjcT6rSi/223cbaHaV3tJUiu1o/kej25Wj8SPf0dsydnLypquXx8fPT008/e87F44RsA\nAHeB2ZOzlpSUpEOHDqp58xa5cv6cxsO0AACn5OPjq2HDsr69kts8PDzk61skV86dJ08ejRkzMVfO\n7QiMqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANPiPSomlPhD4G23Cf5h\na7brPhr+VE6WAwBArmFEBQAAmBZBBQAAmBZBBQAAmBZBBQAAmBZBBQAAmBZBBQAAmBZBBQAAmBZB\nBQAAmBZBBQAAmBZBBQAAmBZBBQAAmBZBBQAAmBZBBQAAmBZBBQAAmJZ7bheAm61/p61iY+NzuwwA\nAHIdIyoAAMC0CCoAAMC0CCoAAMC0CCoAAMC0CCoAAMC0CCoAAMC0CCoAAMC0CCoAAMC0CCoAAMC0\nCCoAAMC0CCoAAMC0CCoAAMC07Aoq169fd3QdAAAAN7ErqHTo0MHRdQAAANzErqBSpEgR/fjjj0pJ\nSXF0PQAAADbu9mx04MABdevWTZJksVhkGIYsFosOHTrk0OIAAMCDza6g8v333zu6DgAAgJvYdesn\nJSVFc+fO1bBhw5SQkKBZs2ZxGwgAADicXUFlwoQJunbtmg4ePCg3NzfFxMRo1KhRjq4NAAA84OwK\nKgcPHtSQIUPk7u6uvHnzatq0aTyfAgAAHM6uoGKxWJSSkiKLxSJJunTpku3fAAAAjmLXw7RBQUF6\n5ZVXFBsbq8mTJ2vz5s0aOHCgo2sDAAAPOLuCygsvvKCaNWsqOjpa169f15w5c1StWjVH1wYAAB5w\ndv/qJyYmRvnz51ehQoV0+PBhrVmzxtG1AQCAB5xdIyp9+vSRYRgqU6ZMpuUvvPCCQ4oCAACQ7Awq\nly5d0rp16xxdCwAAQCZ23fpp1KiRvvvuO6Wnpzu6HgAAABu7RlRKly6t4OBg20+SmesHAADcD3YF\nlcWLF2vr1q0qXbq0o+sBAACwsevWT/HixeXt7e3oWgAAADKxa0SlRIkSat26terWrSsPDw/b8jff\nfNNhhQF5+gVXAAASuElEQVQAANgVVJo1a6ZmzZo5uBQAAIDM7Lr1065dO9WoUUNXr17VlStXVK1a\nNbVr187RtQEAgAecXUFlzZo1GjBggE6fPq2zZ88qNDRUq1atcnRtAADgAWfXrZ+FCxcqKipKPj4+\nkqSQkBAFBQWpQ4cODi0OAAA82OwaUUlPT7eFFEny9fW1vVMFAADAUewaUalataomT55sG0GJiopi\n9mQAAOBwdo2oTJo0SZ6enho5cqRGjBghT09PjR071tG1AQCAB5xdIyoeHh6qW7euwsPDdfHiRW3d\nulX58+d3dG0AAOABZ9eIyujRo/XVV1/Z/o6OjmZEBQAAOJxdIyoHDhzQ+vXrJWU8SDt9+nS1adPG\noYUBAADY/aufP//80/b3hQsXZLXatSsAAMBds2tEJSQkRO3atVO9evVkGIb27dunUaNGObo2AADw\ngLMrqDz33HNq0KCB9uzZI3d3d0VERKh48eKOrg0AADzg7AoqzZs3V506ddSsWTM1bdpU3t7ejq4L\nAADAvqCyefNm7dq1S9u3b9eiRYuUN29eNWvWTH379nV0fQAA4AFm1xOx7u7uqly5smrVqqW6devq\n7Nmz2rRpk6NrAwAADzi7n1GJi4vTc889p8aNG+u1115ToUKFHF0bAAB4wNkVVHr27KkdO3bohx9+\n0IULF3ThwgU1bNhQ5cuXd3B5AADgQWbXrZ9OnTopMjJSq1ev1hNPPKEPP/xQLVu2dHRtAADgAWfX\niMry5cu1Y8cO7d+/X1WrVlVwcLCaNWvm4NIAAMCDzq6gcuzYMXXs2FHTp0+Xp6eno2sCAACQZOet\nnzfeeEP79+9XRESEEhISNGvWLKWkpDi6NgAA8ICzK6hMmDBBiYmJOnjwoNzc3BQTE8Mr9AEAgMPZ\nFVQOHjyoIUOGyN3dXXnz5tW0adN06NAhR9cGAAAecHYFFYvFopSUFFksFknSpUuXbP8GAABwFLse\npg0KCtIrr7yi2NhYTZ48WZs3b9bAgQMdXRsAAHjA2RVUWrVqpbi4OMXFxalw4cJ65ZVX5O5u164A\nAAB3za60MXToUJ09e1b+/v46c+aMbfkLL7zgsMIAAADsCipHjhzRxo0bHV0LAABAJnY9TOvv768/\n//zT0bUAAABkYteISlJSkgIDA1WlSpVMb6ZdvHixwwoDAACwK6j069fP0XUAAADcxK6g0qBBA0fX\nAQAAcBO7nlEBAADIDQQVAABgWgQVAABgWgQVAABgWgQVAABgWgQVAABgWgQVAABgWgQVAABgWgQV\nAABgWgQVAABgWhbDMIzcLgKZ7foqPLdLAAAgS351xuT4MYsVK5jtOkZUAACAaRFUAACAaRFUAACA\naRFUAACAaRFUAACAaRFUAACAaRFUAACAaRFUAACAaRFUAACAaRFUAACAaRFUAACAaRFUAACAaRFU\nAACAaRFUAACAabnndgG42Rebmtz3c/Yf3syhxy9WrKBiY+Mdeo77ydX6kVyvJ1frR6InZ+Bq/Ui5\n3xMjKgAAwLQIKgAAwLQIKgAAwLQIKgAAwLQIKgAAwLQIKgAAwLQIKgAAwLQIKgAAwLQIKgAAwLQI\nKgAAwLQIKgAAwLQIKgAAwLQIKgAAwLQIKgAAwLTcc7sA3Kz5sUX3/ZxHezv2nEcdevScUWXBotwu\nAQDwN4yoAAAA0yKoAAAA0yKoAAAA08r1oBIWFqaUlJQs112+fFnr16+XJM2bN0/79u27n6VJkrZv\n364VK1bctLxTp046ffr0HR0rOTlZUVFROVUaAAAuL9eDSmRkpDw9PbNcd+TIEW3dulWS1LdvXwUE\nBNzP0iRJTZo00UsvvZQjx4qNjSWoAABwBxzyq5/U1FSNHTtWp06dUnp6ugYPHqwaNWqoU6dOioyM\nlJubm8LCwrRs2TI9//zz+vLLL7Vt2zbNnz9f7u7uKl68uCIjIzV37lwdPnxYK1as0O7du/Xcc8/p\n/Pnz2rZtm5KSkhQTE6M+ffqoffv22rdvn8aPH6/8+fOrSJEi8vLy0tSpU201rV69Wp999pnS09P1\n6quv6vLly1q0aJGsVqvq1aunoUOHateuXZo2bZrc3d2VN29ezZgxQ1999ZV+/fVXDR06VJGRkfrv\nf/+rkiVL6tKlS5Kk+Ph4jRo1yvb36NGjVbVqVbVo0UJ169bViRMnVKRIEc2cOVNz587VsWPHNGvW\nLIWGhjriowcAwKU4JKhERUXJx8dHU6ZM0aVLl9StWzd98cUXmjp1qiIiImQYht566y0VKFDAts+G\nDRvUq1cvBQYGas2aNUpISFBISIiWL1+ul156Sbt377Ztm5CQoA8//FAnT55USEiI2rdvr7Fjx+qt\nt95S5cqVFRkZqT/++OOmugoVKqQ5c+bo8uXL6tq1qz777DPlzZtX4eHh+vbbb/XNN9+oZcuW6tGj\nh7Zu3aq4uDjbvvv379fOnTu1atUqXbt2TS1atJAkzZ07V40aNVLXrl118uRJjRgxQsuWLdNvv/2m\njz/+WKVKlVLnzp21f/9+hYSE6OjRo4QUkypWrKBDt3cGrtaTq/Uj0ZMzcLV+pNztySFB5ejRo9q1\na5ftmZK0tDRdvHhRAQEBKliwoDw8PFS9evVM+4wYMUIffPCBli5dqooVK+rpp5/O9vjVqlWTJJUq\nVcr2fMuff/6pypUrS5Lq1aunf/3rXzftV6FCBUlSTEyMLl68qL59+0qSrl69qpiYGIWEhGju3Lnq\n0aOHSpQokelW08mTJ1WzZk1ZrVYVKFBAVapUsfX6/fff68svv5QkXblyRZLk4+OjUqVK2epMTk6+\nk48QuSA2Nt7ubYsVK3hH2zsDV+vJ1fqR6MkZuFo/0v3p6VZByCHPqFSsWFGtWrXSkiVLNH/+fAUG\nBsrb21sbN25U/vz55e7uro0bN2baZ8WKFRo0aJCWLl0qSfr6669ltVqVnp5+0/EtFstNy0qWLKlj\nx45Jkvbu3ZtlXVZrRrsPPfSQSpUqpY8++khLlixRt27dVLt2ba1bt07t2rXTkiVLVLlyZa1cudK2\nb6VKlbRv3z6lp6fr2rVrtnNVrFhRPXv21JIlS/Tuu+/q+eefz7bG7PoBAABZc8iISufOnTV69Gh1\n69ZNCQkJ6tq1q86dO6cZM2bok08+kWEY6tq1q2rVqmXbJyAgQP369VP+/PmVL18+NWvWTCkpKTp6\n9KgWLVp023OOHTtWI0eOVL58+eTh4aESJUpku62vr6969uyp7t276/r16ypTpoxatmyplJQUjR49\nWnnz5pXVatWECRO0c+dOSVL16tXVpEkTdejQQcWLF1eRIkUkSSEhIRo1apRWrlyphISEW97WKVKk\niFJTUzV9+nSFh4fb+WkCAPDgshiGYeR2ETnhk08+UcuWLeXr66vIyEh5eHg47bMg37Z9MbdLeCDd\nySv0Gd41P1frR6InZ+Bq/Ui5f+vHZeb6KVKkiIKDg5UvXz4VLFgw0y9+AACAc3KZoBIYGKjAwMDc\nLgMAAOSgXH/hGwAAQHZcZkTFlczoWjy3S8jW+0+9dVf7ueJ9WwCA4zGiAgAATIugAgAATIugAgAA\nTIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATIug\nAgAATIvZk00o8YfA3C4hW8E/bM3tEnLcR8Ofyu0SAADZYEQFAACYFkEFAACYFkEFAACYFkEFAACY\nFkEFAACYFkEFAACYFkEFAACYFkEFAACYFkEFAACYFkEFAACYFkEFAACYFkEFAACYFkEFAACYFkEF\nAACYlntuF4CbrX+nrWJj43O7jBxVrFhBl+sJAOB4jKgAAADTIqgAAADTIqgAAADTIqgAAADTIqgA\nAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADT\nIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgA\nAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADT\nIqgAAADTIqgAAADTIqgAAADTIqgAAADTshiGYeR2EQAAAFlhRAUAAJgWQQUAAJgWQQUAAJgWQQUA\nAJgWQQUAAJgWQQUAAJiWe24X8KBJT0/XuHHjdOTIEXl6emrSpEkqV66cbf3WrVv1/vvvy93dXS++\n+KI6dep0231y0+1q27Bhgz7++GO5ubmpSpUqGjdunKxWq9q1a6cCBQpIkh566CG9+eabudXCTW7X\n06JFixQVFSVfX19J0vjx41W+fHmn/I5iY2M1ZMgQ27aHDh3S66+/ri5dupj6O7ph7969evvtt7Vk\nyZJMy53tOrohu36c8Tq6IbuenO06uiGrfpz1OkpNTdXIkSN15swZpaSkqH///mrevLltvWmuIwP3\n1aZNm4xhw4YZhmEYu3fvNkJCQmzrUlJSjKefftq4fPmykZycbLRv396IjY295T657Va1JSYmGs2b\nNzeuXbtmGIZhhIWFGZs3bzaSkpKMtm3b5kq99rjd5/36668b+/fvv6N9cpO9tf30009G9+7djbS0\nNNN/R4ZhGPPmzTNat25tdOzYMdNyZ7yODCP7fpz1OjKM7HsyDOe7jgzj1v3c4EzX0apVq4xJkyYZ\nhmEYly5dMpo2bWpbZ6briFs/99muXbv0xBNPSJJq166tAwcO2NYdP35cfn5+Kly4sDw9PVWvXj3t\n3LnzlvvktlvV5unpqeXLlytv3rySpLS0NHl5eenw4cNKTExUcHCwgoKCtGfPnlypPTu3+7wPHjyo\nefPmqUuXLvrggw/s2ic32VObYRiaOHGixo0bJzc3N9N/R5Lk5+enmTNn3rTcGa8jKft+nPU6krLv\nSXK+60i6dT+S811HgYGBeu211yRl1O7m5mZbZ6briFs/91lCQoJtGFCS3NzclJaWJnd3dyUkJKhg\nwYK2dfnz51dCQsIt98ltt6rNarWqaNGikqQlS5bo2rVr+sc//qGjR4+qV69e6tixo06ePKk+ffpo\n48aNpuhHunVPktSqVSt17dpVBQoUUGhoqP7973877Xd0w9atW1W5cmVVrFhRkpQnTx5Tf0eS9Oyz\nz+r06dM3LXfG60jKvh9nvY6k7HuSnO86km7dj+R811H+/PklZVwzr776qgYPHmxbZ6bryByf1gOk\nQIECunr1qu3v9PR02xf893VXr15VwYIFb7lPbrtdbenp6Zo+fbpOnDihmTNnymKxqEKFCipXrpzt\n397e3oqNjVWpUqVyo4Wb3KonwzDUo0cP2wXctGlT/fzzz079HUnSunXrFBQUZPvb7N/RrTjjdXQ7\nzngd3YozXkf2cMbr6Ny5cxo4cKC6du2qNm3a2Jab6Tri1s99VrduXW3fvl2StGfPHlWpUsW2zt/f\nX6dOndLly5eVkpKiH3/8UXXq1LnlPrntdrWNGTNGycnJmj17tm3oetWqVZo6daok6Y8//lBCQoKK\nFSt2fwu/hVv1lJCQoNatW+vq1asyDEPR0dGqWbOmU39HknTgwAHVrVvX9rfZv6Nbccbr6Hac8Tq6\nFWe8juzhbNfR+fPnFRwcrPDwcHXo0CHTOjNdR84TVV3EM888o2+//VadO3eWYRiaMmWK1q9fr2vX\nrumll17S8OHD1atXLxmGoRdffFElSpTIch+zuFU/NWvW1KpVq/Too4+qR48ekqSgoCB16NBBI0aM\nUJcuXWSxWDRlyhRT/V/T7b6jsLAwBQUFydPTU40bN1bTpk2Vnp7ulN/RSy+9pIsXL6pAgQKyWCy2\nfcz+HWXFma+jrDj7dZQVZ76OsuLs19HcuXMVFxen2bNna/bs2ZKkjh07KjEx0VTXEbMnAwAA0+LW\nDwAAMC2CCgAAMC2CCgAAMC2CCgAAMC2CCgAAyBF79+5V9+7ds12/fft2de/eXd27d1e3bt1UvXp1\nHT9+/JbHNM/vpAAAgNOaP3++1q1bZ3vXT1aaNGmiJk2aSJIWLFigunXryt/f/5bHZUQFAADcs7/P\nhXTkyBHb6MmgQYMUHx9vW/f7779r7dq1Cg0Nve1xCSoAAOCePfvss5leaBcREaGxY8dqyZIlatKk\niRYsWGBbt3DhQvXs2VOenp63PS63fgAAQI47fvy4xo8fL0lKTU1V+fLlJWXMD/Sf//xHYWFhdh2H\noAIAAHJchQoVNG3aNJUuXVq7du1SbGysJOno0aOqUKGC8uTJY9dxCCoAACDHjRs3TsOGDVNaWpos\nFosmT54sSTpx4oTKli1r93GY6wcAAJgWD9MCAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgA\nAADTIqgAAADTIqgAAADT+j/SEU8Sq14sZgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "new_by_race.unstack().plot(kind='barh')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bridge housing, person universes\n", "\n", "Now we use `MIGPUMA` on the *person* table to determine a newcomer *household* (filtering on selected pums_p.SERIALNO values). All handshakes make use of this variable. \n", "\n", "Notice the nesting of `pums_p` criteria inside a `pums_h` call." ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "existing resident 125077\n", "new resident 28038\n", "Name: recent, dtype: int64" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pums_h['newcomer'] = 0\n", "pums_h.loc[pums_p.loc[(pums_p.MIGPUMA!=7500)&(pums_p.MIGPUMA>0),'SERIALNO'].tolist(),'newcomer']=1\n", "\n", "pums_h['recent']=pums_h['newcomer'].map({0:'existing resident',1:'new resident'})\n", "pums_h.recent.value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at how recent arrival households compare to existing resident households in terms of the vintage of housing they live in." ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "scrolled": 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", "
WGTP
recentYBLL
existing resident1939 or earlier1125958
1940 to 19592399213
1960 to 19793618134
1980 to 19992951629
2000 to 20111391347
new resident1939 or earlier181456
1940 to 1959371722
1960 to 1979712846
1980 to 1999608062
2000 to 2011342896
\n", "
" ], "text/plain": [ " WGTP\n", "recent YBLL \n", "existing resident 1939 or earlier 1125958\n", " 1940 to 1959 2399213\n", " 1960 to 1979 3618134\n", " 1980 to 1999 2951629\n", " 2000 to 2011 1391347\n", "new resident 1939 or earlier 181456\n", " 1940 to 1959 371722\n", " 1960 to 1979 712846\n", " 1980 to 1999 608062\n", " 2000 to 2011 342896" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nnqnffz+t8eMnS5I8PT1z1GSxWK77/K9bYXoyAAD/w8zTk3/55WeFh4/Q2LGTbGchihUrLkk6ffqU\nDMPQ999/p8DABqpbt7527PhOhmHo9OlTslqtKlas2F2fnjxlSqQMw9CECdNsl4AaNmxo28fevXsU\nEHDPP+qX6ckAAPwPM09Pnjt3jtLT0xUVlX3/XrFixTVx4jQNGjRcEREjlZWVpaCgFqpZs5Yk6d57\n66hnz64yDEMDBgyRpLs6PfnAgX36+OMPFRhYX337Zt/3EhLyktq2baMvvvhaoaHdJEkjRoT/o++g\nUE5PLuw6rOpt7xJuCzfT5k5h6bWw9CnRq70xPfnOMD0ZAIA8xPRk+yvU05MBALgZH58SGjp0lF1r\nyMs/0AVBjRo17/oZrf/FGRUAAGBaBBUAAGBaBBUAAGBaBBUAAGBaBBUAAGBaBBUAAGBaBBUAAGBa\nPEfFhJK/b33Xt7lo2EN3fZsAAOQ1zqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADT\nIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTstq7AFxrw4x2\nOnfuir3LAADA7jijAgAATIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATIugAgAA\nTIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATIug\nAgAATIugAgAATIugAgAATIugAgAATIugAgAATIugAgAATCtXQWXdunXXLFu+fPldLwYAAODvrDd7\nc/HixUpISNDKlSt16tQp2/KMjAxt3LhRL730Up4XCAAACq+bnlGpVKnSdZe7ublp8uTJeVIQAADA\nVTc9o9KqVSu1atVKbdq0UbVq1fKrJgAAAEm3CCpXnT59WkOGDNGlS5dkGIZt+eeff55nhQEAAOQq\nqERGRmrYsGEKCAiQxWLJ65oAAAAk5TKo+Pj4qFWrVnldCwAAQA65CiqNGjXSpEmTdP/998vNzc22\nvEmTJnlWGAAAQK6CSlxcnCTpwIEDtmUWi0VLlizJm6oAAACUy6CydOnSvK4DAADgGrl6Mu2pU6f0\nyiuv6NFHH9W5c+fUuXNnnTx5Mq9rAwAAhVyugsqYMWP06quvyt3dXaVKldKTTz6poUOH5nVtAACg\nkMtVULlw4YKCg4MlZd+b0qFDByUkJORpYQAAALkKKkWKFNHvv/9ue4bKDz/8IFdX1zwtDAAAIFc3\n0w4bNkw7ks5VAAAQxElEQVS9evXSiRMn1K5dO126dEmzZs3K69oAAEAhl6ugEhgYqLVr1+rYsWPK\nzMxUhQoV5Onpmde1AQCAQi5Xl34++ugjtW/fXgEBAXJ3d9cTTzyhzz77LK9rAwAAhVyugkpsbKze\nfvttSZK/v7/ef/99zZkzJ08LAwAAyFVQSU9PV6lSpWyvS5YsmWOKMgAAQF7I9ayfgQMH6qmnnpIk\nbdq0SfXr18/TwgAAAHIVVMLDw7V06VKtWrVKVqtVjRs3VseOHfO6NgAAUMjlKqi4urrqscceU7Vq\n1RQcHKwzZ87wHBUAAJDncv2rn969e2vChAm6dOmSQkJC9MEHH+R1bQAAoJDLVVBZsGCB3n33XXl4\neKhkyZJat26d5s+fn9e1AQCAQi5XQcXJySnHA95Kly4tJ6dcfRQAAOAfy9U9KgEBAVq2bJkyMjJ0\n8OBBrVixQjVr1szr2gAAQCGXq9MiSUlJOnv2rNzc3DRixAh5enoqPDw8r2sDAACFXK7OqJw6dUoT\nJ07UG2+8kdf1AAAA2OQqqDg5Oemhhx5SlSpV5ObmZlu+ZMmSPCsMAAAgV0Fl8ODBeV0HAADANXIV\nVJo2bZrXdQAAAFyD3xgDAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgA\nAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADTIqgAAADT\nIqgAAADTIqgAAADTIqgAAADTstq7AFxr1yeD7V1Cvjlh7wLyUUHt1b/BGHuXAKAQ44wKAAAwLYIK\nAAAwLYIKAAAwLYIKAAAwLYIKAAAwLYIKAAAwLYIKAAAwLYIKAAAwLYIKAAAwLYIKAAAwLYIKAAAw\nLYIKAAAwLYIKAAAwLYIKAAAwLau9C8C1Ptzc0t4lAH/Z/JW9KwDyRO9hD9q7BOQCZ1QAAIBpEVQA\nAIBpEVQAAIBpEVQAAIBpEVQAAIBpEVQAAIBpEVQAAIBpEVQAAIBpEVQAAIBpEVQAAIBpEVQAAIBp\nEVQAAIBpEVQAAIBpEVQAAIBpWQzDMOxdBHL6tt2z9i4BAIDrqvHW4ru+TV9frxu+xxkVAABgWgQV\nAABgWgQVAABgWnYPKgMGDFBaWtp137t48aI2bNggSZo/f77i4uLyszRJ0pYtW7Rq1aprlnfo0EEn\nT568rW2lpqZqzZo1d6s0AAAcnt2DSlRUlFxdXa/73uHDh/XFF19Iknr27KnAwMD8LE2S1LJlS73w\nwgt3ZVvnzp0jqAAAcBusebHR9PR0hYeH6/jx48rKylL//v1Vu3ZtdejQQVFRUXJ2dtaAAQP07rvv\nqm3bttq0aZO+/vprLViwQFarVaVLl1ZUVJTmzp2rQ4cOadWqVdq9e7cef/xxxcfH6+uvv1ZKSopO\nnDihHj16qH379oqLi9PYsWPl4eGhkiVLys3NTZMnT7bV9P777+u9995TVlaW+vbtq4sXL2rx4sVy\ncnJSo0aNNGjQIO3atUtTpkyR1WpV0aJFNWvWLH3yySf69ddfNWjQIEVFRembb75R2bJldeHCBUnS\nlStXNHLkSNvrUaNG6Z577tGjjz6qhg0b6ujRoypZsqTmzJmjuXPn6ueff1Z0dLTCwsLy4qsHAMCh\n5ElQWbNmjXx8fDRx4kRduHBBnTp10ocffqjJkydr9OjRMgxDU6dOlaenp+0zGzdu1KuvvqrWrVtr\n/fr1SkhIUGhoqFauXKkXXnhBu3fvtq2bkJCghQsX6tixYwoNDVX79u0VHh6uqVOnKiAgQFFRUTp7\n9uw1dRUrVkyxsbG6ePGiOnbsqPfee09FixbV4MGD9e2332rr1q1q06aNunTpoi+++EKXL1+2ffbH\nH3/Uzp07tXbtWiUlJenRRx+VJM2dO1dBQUHq2LGjjh07puHDh+vdd9/Vb7/9pnfeeUd+fn4KCQnR\njz/+qNDQUB05coSQAgAosG72U+K8kCdB5ciRI9q1a5ftnpKMjAydP39egYGB8vLykouLi2rVqpXj\nM8OHD9e8efO0bNkyVa1aVQ8//PANt1+zZk1Jkp+fn+3+lj/++EMBAQGSpEaNGumjjz665nNVqlSR\nJJ04cULnz59Xz549JUmJiYk6ceKEQkNDNXfuXHXp0kVlypTJcanp2LFjqlOnjpycnOTp6akaNWrY\net2+fbs2bdokSbp06ZIkycfHR35+frY6U1NTb+crBADAlM6du3LXt5nvz1GpWrWqnnjiCS1dulQL\nFixQ69at5e3trY8//lgeHh6yWq36+OOPc3xm1apVev3117Vs2TJJ0qeffionJydlZWVds32LxXLN\nsrJly+rnn3+WJO3du/e6dTk5ZbdboUIF+fn5adGiRVq6dKk6deqk+vXr6z//+Y+eeeYZLV26VAEB\nAVq9erXts9WrV1dcXJyysrKUlJRk21fVqlXVtWtXLV26VDNnzlTbtm1vWOON+gEAANeXJ2dUQkJC\nNGrUKHXq1EkJCQnq2LGjzpw5o1mzZmn58uUyDEMdO3ZU3bp1bZ8JDAxUr1695OHhIXd3dz344INK\nS0vTkSNHtHjx4lvuMzw8XCNGjJC7u7tcXFxUpkyZG65bokQJde3aVS+//LIyMzNVvnx5tWnTRmlp\naRo1apSKFi0qJycnjRs3Tjt37pQk1apVSy1bttRzzz2n0qVLq2TJkpKk0NBQjRw5UqtXr1ZCQsJN\nL+uULFlS6enpmjZtmgYPHpzLbxMAgMLLYR6hv3z5crVp00YlSpRQVFSUXFxcCuy9IDxCHwBgVvn9\nCP08OaNiDyVLllS3bt3k7u4uLy+vHL/4AQAABZPDBJXWrVurdevW9i4DAADcRXZ/4BsAAMCNOMwZ\nFUcyq2Npe5cAwMG9+dDU21rf19crT36WakaFpdeC0idnVAAAgGkRVAAAgGkRVAAAgGkRVAAAgGkR\nVAAAgGkRVAAAgGkRVAAAgGkRVAAAgGkRVAAAgGkRVAAAgGkRVAAAgGkRVAAAgGkRVAAAgGkxPdmE\nkr9vbe8SYCKLhj1k7xJuS0GZyHo3FKZeAXvhjAoAADAtggoAADAtggoAADAtggoAADAtggoAADAt\nggoAADAtggoAADAtggoAADAtggoAADAtggoAADAtggoAADAtggoAADAtggoAADAtggoAADAtq70L\nwLU2zGhXaEbH+/p60SsA4IY4owIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIA\nAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyL\noAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIA\nAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyLoAIAAEyL\noAIAAEyLoAIAAEzLYhiGYe8iAAAAroczKgAAwLQIKgAAwLQIKgAAwLQIKgAAwLQIKgAAwLQIKgAA\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hsg_by_bltyr = pums_h.loc[:,['recent','YBLL','WGTP']].groupby(['recent','YBLL']).sum()\n", "hsg_by_bltyr.unstack().plot(kind='barh')\n", "hsg_by_bltyr" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Your Turn: Back to Rental Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's get some additional practice with groupby operations, using our rental listings data." ] }, { "cell_type": "code", "execution_count": 119, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import numpy as np\n", "rents = pd.read_csv('data/rent_bay_filtered.csv').dropna()" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Unnamed: 0,\n", "neighborhood,\n", "title,\n", "price,\n", "bedrooms,\n", "pid,\n", "longitude,\n", "subregion,\n", "link,\n", "latitude,\n", "sqft,\n", "month,\n", "day,\n", "year,\n", "blockfips,\n", "countyfips,\n", "county_x,\n", "tractfips,\n", "logrecno,\n", "fipsblock,\n", "state,\n", "county_y,\n", "tract,\n", "blkgrp,\n", "block,\n", "arealand,\n", "P0010001,\n", "H00010001,\n", "outlier,\n", "view,\n", "walk,\n" ] } ], "source": [ "for name in rents.columns:\n", " print(name+',',)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generate a groupby object called 'grouped' grouping on county_x" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "collapsed": true }, "outputs": [], "source": [ "gr = rents.groupby('county_x')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now compute the mean price for each county_x" ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "collapsed": true }, "outputs": [], "source": [ "mean_prices = gr['price'].mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot this as a bar chart" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\ng9jdkeVMSqoAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mean_prices.plot(kind='bar')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the maximum price per county_x" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "collapsed": true }, "outputs": [], "source": [ "max_prices = gr['price'].max()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot this as a horizontal bar chart" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 108, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "max_prices.plot(kind='barh')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute a groupby object using county, and within county_x, by number of bedrooms." ] }, { "cell_type": "code", "execution_count": 109, "metadata": { "collapsed": true }, "outputs": [], "source": [ "gr2 = rents.groupby(['county_x', 'bedrooms'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the mean price and sqft in each groupby value (county_x and bedroom)" ] }, { "cell_type": "code", "execution_count": 110, "metadata": { "collapsed": true }, "outputs": [], "source": [ "means = gr2[['price', 'sqft']].mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the 'unstack' method to present the results as a two-dimensional table" ] }, { "cell_type": "code", "execution_count": 111, "metadata": { "collapsed": true }, "outputs": [], "source": [ "means = means.unstack()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot this as a horizontal bar chart (increase figsize to 10,10 to make this legible)" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nVTBjxnRGjhxdsvGaq2pqamqTgbVWTYbI8ufl7MrgPFUO56oyOE+VoT3nqV+/6qo1bfeDNZIkScrM\nEClJkqTMDJGSJEnKzBApSZKkzPx0tiRJ6jAmX/lISccbXTdwnccsXLiAm2+exPnnX5Rp7HHjxvLm\nm29wySXf5emnZ3PkkUe3eOxvf/sA99xzJ126bMQRR3yF004bscr+BQsWcNllF7F06VI237wfY8eO\no3v37kyc+H1GjBhJnz59M9XWGnYiJUmSNsCUKZMZMuT4zM974olZ3HrrHWyyySbMnPmLtR47adK1\nXHvtjUye/CPuuefO1ZYxnDZtCocdNpgbb7yVHXcM7rtvBgDHHTeUm276YebaWsNOpCRJ0npasqSe\n559/jjFjCssQjh9/GW+88TpLly7luOOGMXjwETz88EPcfvtUamo2o7q6FwMGHMRzz82hvr6eurpz\nqa3tw6uvvsJtt01hxIhT13ieHXbYkfr6ejbaaCOampqoqlr1W3eefno2X/96oTu5334DuOWWSQwd\n+jX699+W1157lYULF6xcv7tUDJGSJEnrac6cZ+nffxsAGhqWMHv2k9x88zSqqqqYNetxli9fzg03\n/IDbbvsJ1dW9GTPmbADGjKnjD394mCuvvIa3336Ll16a12KABNhuux045ZSvs+mmm3LwwZ+nd+/e\nq3xP5JIlS+jVq7AqTY8ePaivr1+5b5tttuWZZ57iwAMPKelr93K2JEnSelqwYAF9+vQBoEePnpx1\n1nlMmHA548ZdyPvvL2PRooXU1NRQU7MZXbp0Yc89P5v5HPPmvchjj/2Je+/9Jffe+0v+8Y/5PPDA\nA6sc07NnTxoaGgBoaGigurp65b6+fTdf7fJ3KRgiJUmS1lNtbS2LFxc6gu+++y4pPc8VV1zNhAnX\nMnny9fTuXUNjYyPz578HwNy5z602RlVVF5qaPmzxHL169aJbt25069aNjTbaiNraPixatGiVY3bd\ndXcee+xRAB5//M/sttseK/ctXryI2to+G/xaP8oQKUmStJ522WVX5s17EYC+ffsyf/57jBp1Muec\ncybDhg2na9eujBlzIRdccC5nn33GyjDZXG1tLe+/v5wbb7yeF19MXHfdxFX2b7nlxzjqqCGcccYp\njB59CvX1iznmmGNYtGghY8d+G4ATTzyFhx76LaNHn8ycOU9z7LFDVz7/hRcSu+++B6Xm2tn5cO3s\n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\nGZynytDOl7PXeJXVy9mSJEnKzMvZrZRS+k6pxuqsyx5q/f3P39a83aUkJUl5sRMpSZKkzOxE5qBS\nlz1U67lEpCSpo7MTKUmSpMzsROagFMseasOta+lIP6EoSVLL7ERKkiQpMzuRObjuhC3yLqFDmDRo\nQt4lSJLUadmJlCRJUmZ2InPQOGtw3iWsNLVuUN4lSJKkCmQnUpIkSZnZiczBzIlH+alfSZJU0exE\nSpIkKTNDpCRJkjIzREqSJCkzQ6QkSZIyM0RKkiQpM0OkJEmSMjNESpIkKTNDpCRJkjIzREqSJCkz\nQ6QkSZIyM0RKkiQpM0OkJEmSMjNESpIkKTNDpCRJkjIzREqSJCkzQ6QkSZIyM0RKkiQpM0OkJEmS\nMjNESpIkKTNDpCRJkjIzREqSJCkzQ6QkSZIyM0RKkiQpM0OkJEmSMjNESpIkKTNDpCRJkjIzREqS\nJCkzQ6QkSZIyM0RKkiQpM0OkJEmSMjNESpIkKTNDpCRJkjLrmncBndHx00fnXYLEpEET8i5BklTB\n7ERKkiQpMzuROWicNTjvEtQBTK0blHcJkqROzE6kJEmSMrMTmYMtD9067xI6pPF771jS8fr1q+ad\ndxaXdExJkjoKO5GSJEnKzE5kDkZ1vTvvEtpE/z0vzbsESZLUTuxESpIkKbNO2YmMiIHAw8BXU0r3\nNNv+NPBkSumkVozxs5TSkPU5/68ePHh9ntbmRtcNzLsESZJUITpzJ3IuMGzFg4jYFejZ2ievb4CU\nJEnqCDplJ7LoKSAioialtBAYDvwE6B8R/wEMoRAq3wWOAU4ATqYQvMcBP0kpbRkRjwCzgc8AvYHj\nUkqvre3Eh86bVvIXs9OtpR9TkiSpJZ25EwkwAxgSEVXAPsCfKbwnfYEvpJT2pRC09y4e/4+U0oEp\npd99ZJxZKaUvAP8FfLV9SpckScpPZ+5EAtwFTAZeBv5Y3PYhsAy4OyLqgU8AGxf3pRbG+Vvx5+vA\nlus66QH3zVjfetXO+vWrzrsEtYLzVDmcq8rgPFWGvOepU4fIlNLLEdETOAu4ENiewiXpo1NK+0ZE\nD+AJoKr4lA9bGKop67n9Euvy55eNVwbnqXI4V5XBeaoM7TlPLYXVzn45G2A6sHVK6YXi4+XAkoh4\nlMLl6beBrfIqTpIkqRxVNTVlbqJpwzX5W17587fxyuA8VQ7nqjI4T5WhnTuRVWva3qkvZ+fl1F8/\nmXcJklTWxu+9Y94lSFoHQ2QOOuqyh5I6nyzLndrhkjoW74mUJElSZnYic1Cuyx5KpdRey2ja3ZKk\nfNiJlCRJUmZ2InPQFssequNwCUtJUiWwEylJkqTM7ETm4LoTtsi7BK3FpEETAO+1kyRpbexESpIk\nKTM7kTlonDU47xLK1tS6QXmXIEmSWsFOpCRJkjKzE5mDmROP8l47SZJU0exESpIkKTNDpCRJkjIz\nREqSJCkzQ6QkSZIyM0RKkiQpM0OkJEmSMjNESpIkKTNDpCRJkjIzREqSJCkzQ6QkSZIyM0RKkiQp\nM0OkJEmSMjNESpIkKTNDpCRJkjIzREqSJCkzQ6QkSZIyM0RKkiQpM0OkJEmSMjNESpIkKTNDpCRJ\nkjIzREqSJCkzQ6QkSZIyM0RKkiQpM0OkJEmSMjNESpIkKTNDpCRJkjIzREqSJCkzQ6QkSZIyM0RK\nkiQpM0OkJEmSMjNESpIkKTNDpCRJkjIzREqSJCmzrnkX0BkdP3103iWowk0aNCHvEiRJnZydSEmS\nJGVmJzIHjbMG512CSmxq3aC8S5AkqV3ZiZQkSVJmdiJzsOWhW+ddQsUav/eO7Xaufv2qeeedxe12\nPkmSKomdSEmSJGVmJzIHo7renXcJbaL/npfmXYIkSWonhsgc/OrBg/MuYTWj6wbmXYIkSaog7Roi\nI2IXYALQA+gF/Br4TkqpKeM4xwB/SSm9lUcNEdEHGJxSuivr+SVJkjqCdguREbEZcA8wJKX0YkRs\nBNwLnA7clHG4s4FRQKYQWcIadgO+AqxXiDx03rT1eVqr7XRr244vSZLUnp3Io4Dfp5ReBEgpfRAR\n3wCWAUTERODA4rF3pZSui4hpwFJgW+BjwEnFn3sAd0TEcGAG8B6FjuJfgHEUPjDUCzghpfTCBtYw\nBLgAeJ9CaB0GXATsHhGnAX8GrgE2AjYHRqeU/lyKN0ySJKlctWeI3Ap4ufmGlFI9QET8O7AdsF+x\npj9FxO+Lh72WUjo9Ik4FTkspjYqI2RQ6kcuALYHPpZSWRcQZwPCU0lsRMRY4Drh8A2v4KnBVSumn\nxcDZuzjmqJTSLRExFDgvpfRMRJwAjKAQLFt0wH0zWvueKWf9+lXnXYJawXmqHM5VZXCeKkPe89Se\nIfI14LPNN0TEdsDWwKeAPxbvS3w/Ih4HPl087G/Fn68DB6xh3FdSSsuKf38TuD4i6oGPA4+WoIZz\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "means.plot(kind='barh', edgecolor='None', figsize=(10,10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Do the same tabulation (no plot), but presenting the 10th percentile values instead of means" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0.9pricesqft
county_xbedrooms
Alameda0.01510.87500.0
1.01855.0840.0
2.02929.01214.0
3.03191.41791.7
4.03565.02873.2
5.05197.03440.0
8.09995.02500.0
Contra Costa0.0695.0450.0
1.01861.8810.4
2.02384.41254.8
3.02503.51849.0
4.03437.02757.8
5.02583.53319.5
Marin0.01495.0460.0
1.02514.0884.0
2.03620.01205.0
3.04950.02028.0
4.07950.03397.0
5.08120.03460.0
Napa0.0668.0366.4
1.02160.01100.0
2.02250.01579.5
3.02840.02400.0
4.03060.02760.0
5.02650.02502.0
San Francisco0.03124.0589.5
1.03900.01000.0
2.05995.01500.0
3.09375.02350.0
4.08345.02300.0
San Mateo0.02183.0600.0
1.02711.0850.0
2.03293.01250.0
3.04643.41950.0
4.08000.03000.0
5.06950.02805.0
6.07475.02770.0
Santa Clara0.02675.0622.8
1.02361.5860.3
2.03292.81215.6
3.04840.01896.4
4.05810.02918.7
5.07500.03535.0
Solano0.01215.4816.0
1.01248.0792.0
2.01539.51167.2
3.01868.01704.8
4.02256.01997.2
5.01938.51816.4
Sonoma0.02245.01430.0
1.01485.2851.8
2.01896.61367.5
3.02840.02035.8
4.04680.05134.0
5.03210.02576.1
\n", "
" ], "text/plain": [ "0.9 price sqft\n", "county_x bedrooms \n", "Alameda 0.0 1510.8 7500.0\n", " 1.0 1855.0 840.0\n", " 2.0 2929.0 1214.0\n", " 3.0 3191.4 1791.7\n", " 4.0 3565.0 2873.2\n", " 5.0 5197.0 3440.0\n", " 8.0 9995.0 2500.0\n", "Contra Costa 0.0 695.0 450.0\n", " 1.0 1861.8 810.4\n", " 2.0 2384.4 1254.8\n", " 3.0 2503.5 1849.0\n", " 4.0 3437.0 2757.8\n", " 5.0 2583.5 3319.5\n", "Marin 0.0 1495.0 460.0\n", " 1.0 2514.0 884.0\n", " 2.0 3620.0 1205.0\n", " 3.0 4950.0 2028.0\n", " 4.0 7950.0 3397.0\n", " 5.0 8120.0 3460.0\n", "Napa 0.0 668.0 366.4\n", " 1.0 2160.0 1100.0\n", " 2.0 2250.0 1579.5\n", " 3.0 2840.0 2400.0\n", " 4.0 3060.0 2760.0\n", " 5.0 2650.0 2502.0\n", "San Francisco 0.0 3124.0 589.5\n", " 1.0 3900.0 1000.0\n", " 2.0 5995.0 1500.0\n", " 3.0 9375.0 2350.0\n", " 4.0 8345.0 2300.0\n", "San Mateo 0.0 2183.0 600.0\n", " 1.0 2711.0 850.0\n", " 2.0 3293.0 1250.0\n", " 3.0 4643.4 1950.0\n", " 4.0 8000.0 3000.0\n", " 5.0 6950.0 2805.0\n", " 6.0 7475.0 2770.0\n", "Santa Clara 0.0 2675.0 622.8\n", " 1.0 2361.5 860.3\n", " 2.0 3292.8 1215.6\n", " 3.0 4840.0 1896.4\n", " 4.0 5810.0 2918.7\n", " 5.0 7500.0 3535.0\n", "Solano 0.0 1215.4 816.0\n", " 1.0 1248.0 792.0\n", " 2.0 1539.5 1167.2\n", " 3.0 1868.0 1704.8\n", " 4.0 2256.0 1997.2\n", " 5.0 1938.5 1816.4\n", "Sonoma 0.0 2245.0 1430.0\n", " 1.0 1485.2 851.8\n", " 2.0 1896.6 1367.5\n", " 3.0 2840.0 2035.8\n", " 4.0 4680.0 5134.0\n", " 5.0 3210.0 2576.1" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gr2[['price', 'sqft']].quantile(0.9)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Do the same, but use describe to get the full statistical profile " ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pricesqft
countmeanstdmin25%50%75%maxcountmeanstdmin25%50%75%max
county_xbedrooms
Alameda0.08.01253.875000325.730141650.01087.501397.51500.001536.08.02206.8750003269.982457200.0393.75552.52343.757500.0
1.047.01544.297872277.325418825.01387.501575.01742.502065.047.0716.234043140.061200500.0650.00701.0777.001275.0
2.076.02160.250000683.5616161164.01837.502000.02350.756000.076.01024.342105240.547074530.0865.25973.01120.002200.0
3.040.02424.900000592.8374971150.02087.252350.02722.004250.040.01388.175000273.663736865.01181.501400.01500.001980.0
4.010.03197.500000398.3385632800.03000.003000.03350.004150.010.02345.000000964.4557481530.01889.252139.02372.254900.0
5.05.03689.0000001414.1181002500.02700.003250.04000.005995.05.02350.6000001011.6722791510.01672.001971.02600.004000.0
8.01.09995.000000NaN9995.09995.009995.09995.009995.01.02500.000000NaN2500.02500.002500.02500.002500.0
Contra Costa0.01.0695.000000NaN695.0695.00695.0695.00695.01.0450.000000NaN450.0450.00450.0450.00450.0
1.028.01465.428571378.384620795.01247.501591.51767.001952.028.0708.964286135.913502500.0607.50726.0750.001200.0
2.045.01787.666667489.008598795.01425.001850.02290.002580.045.01023.844444210.165514725.0900.00976.01100.001625.0
3.024.01881.000000428.8413101245.01650.001772.52050.002900.024.01501.750000303.1632151080.01300.001486.51671.002200.0
4.028.02427.500000870.4208221595.01890.002045.02473.755200.028.02210.607143471.0616331325.01967.002213.52365.753350.0
5.08.02218.125000324.6749751900.02000.002125.02300.002895.08.02729.250000517.9362212050.02313.252823.03071.253400.0
Marin0.09.01334.444444138.4161401125.01195.001400.01400.001495.09.0406.11111166.038709250.0390.00440.0440.00460.0
1.039.01956.358974488.900242975.01695.001862.02313.503200.039.0728.307692134.389488480.0647.50700.0790.501200.0
2.050.02563.340000629.8627841665.02100.002335.52895.003995.050.01016.640000181.252193706.0900.001000.01100.001650.0
3.031.03507.5483871246.1304601671.02700.003290.03750.007850.031.01630.870968506.3683601100.01298.001510.01777.003400.0
4.011.05800.0000001701.0291003000.04575.005850.06975.008500.011.02750.363636843.5098431640.02469.502660.02890.004781.0
5.05.06220.0000001797.7764044200.05000.005700.08000.008200.05.03050.000000409.2676392500.02850.003000.03400.003500.0
Napa0.02.0668.0000000.000000668.0668.00668.0668.00668.02.0332.00000060.811183289.0310.50332.0353.50375.0
1.05.01550.600000547.7328731015.01199.001289.01950.002300.05.0876.000000222.693736650.0685.00895.0950.001200.0
2.014.01857.500000378.3148361295.01547.501835.02200.002500.014.01179.214286289.904541895.0912.001107.01400.001700.0
3.018.02277.777778647.8975551400.01887.502150.02400.004200.018.01756.833333482.3128411100.01400.251602.02300.002500.0
4.09.02766.666667531.5072912250.02500.002650.02800.004100.09.02216.000000471.0557291559.02000.002100.02433.003000.0
5.01.02650.000000NaN2650.02650.002650.02650.002650.01.02502.000000NaN2502.02502.002502.02502.002502.0
San Francisco0.038.02407.842105760.6253301000.02018.752486.02721.005250.038.0527.789474261.674665180.0457.00500.0566.502000.0
1.0110.03100.772727795.718897850.02721.253027.03434.005800.0110.0775.954545354.385639200.0644.00722.5838.753850.0
2.091.04252.8241761270.8975711800.03500.004200.04825.008450.091.01174.945055369.086029550.0959.001104.01300.003000.0
3.036.06141.3611112198.8913723000.04843.755200.08373.759999.036.01712.611111440.570557955.01500.001553.51843.752800.0
4.012.05740.8333331917.2433263500.04423.755450.06200.009950.012.01877.083333384.0912431250.01625.001922.02112.502448.0
San Mateo0.021.01768.000000354.834891995.01490.001800.01937.002400.021.0496.047619106.154829275.0421.00500.0567.00750.0
1.0131.02189.694656420.6691721250.01936.502150.02372.505200.0131.0712.694656115.311211350.0640.00700.0756.001200.0
2.0168.02729.851190482.8904201877.02393.002700.03000.003990.0168.01066.589286287.045560762.0950.001020.01109.503953.0
3.049.03529.795918866.5151711500.03000.003400.04000.005999.049.01582.612245408.990211980.01339.001500.01800.003000.0
4.018.04953.6111111735.0697613500.03825.004085.05362.508950.018.02384.000000472.8372431470.02025.002350.02725.003170.0
5.04.04949.7500002076.2386463500.03724.254149.55375.008000.04.02437.500000381.6084382200.02200.002275.02512.503000.0
6.01.07475.000000NaN7475.07475.007475.07475.007475.01.02770.000000NaN2770.02770.002770.02770.002770.0
Santa Clara0.017.01820.941176548.6839331150.01295.001825.02000.002950.017.0567.647059346.368832300.0418.00500.0565.001862.0
1.0188.01934.521277417.776115925.01650.001895.02165.753850.0188.0721.361702123.136145400.0650.00702.5792.251100.0
2.0222.02514.918919627.2831261250.02096.252395.02800.005364.0222.01063.000000425.803388420.0915.751018.01100.006500.0
3.082.03236.292683918.6083341100.02591.253190.03503.755600.082.01506.804878304.6713441000.01275.501430.51700.002256.0
4.028.03952.1428571654.9205132450.02950.003400.04237.509000.028.02195.000000632.8145241450.01784.252047.52563.003917.0
5.011.05659.0909091720.2933153000.04350.006100.07025.008000.011.03025.272727563.2402851850.02900.503100.03250.004000.0
Solano0.03.0904.333333377.433879650.0687.50725.01031.501338.03.0635.000000217.772817450.0515.00580.0727.50875.0
1.015.0993.800000202.676096715.0800.50985.01148.001289.015.0703.933333127.387747450.0639.50708.0735.001050.0
2.028.01262.571429250.698052895.01048.001270.01499.001875.028.0987.892857184.534919675.0870.00939.01063.001550.0
3.039.01632.179487252.7969721150.01505.001695.01700.002300.039.01432.358974254.9684691020.01280.001450.01563.002164.0
4.019.01846.842105305.8195301250.01710.001800.02047.502400.019.01666.947368312.3341291300.01462.001558.01764.002598.0
5.02.01692.500000434.8706701385.01538.751692.51846.252000.02.01698.000000209.3036071550.01624.001698.01772.001846.0
Sonoma0.04.01612.500000642.0994211050.01200.001450.01862.502500.04.0935.000000517.268467600.0630.00720.01025.001700.0
1.035.01297.000000236.807566800.01199.001345.01415.001900.035.0670.428571162.252397200.0605.00661.0720.001100.0
2.062.01557.919355277.9429891150.01350.001500.01693.752249.062.01016.274194226.862143580.0891.001000.01028.001742.0
3.037.02161.081081534.6703751550.01750.002000.02400.003900.037.01582.702703527.924335950.01293.001456.01700.004000.0
4.014.02962.500000982.5765782200.02356.252600.02850.005100.014.02766.1428571350.8430331350.02097.002200.02800.005620.0
5.04.02948.750000331.4205542500.02871.252997.53075.003300.04.02252.500000412.5679741700.02056.252360.52556.752589.0
\n", "
" ], "text/plain": [ " price \\\n", " count mean std min 25% \n", "county_x bedrooms \n", "Alameda 0.0 8.0 1253.875000 325.730141 650.0 1087.50 \n", " 1.0 47.0 1544.297872 277.325418 825.0 1387.50 \n", " 2.0 76.0 2160.250000 683.561616 1164.0 1837.50 \n", " 3.0 40.0 2424.900000 592.837497 1150.0 2087.25 \n", " 4.0 10.0 3197.500000 398.338563 2800.0 3000.00 \n", " 5.0 5.0 3689.000000 1414.118100 2500.0 2700.00 \n", " 8.0 1.0 9995.000000 NaN 9995.0 9995.00 \n", "Contra Costa 0.0 1.0 695.000000 NaN 695.0 695.00 \n", " 1.0 28.0 1465.428571 378.384620 795.0 1247.50 \n", " 2.0 45.0 1787.666667 489.008598 795.0 1425.00 \n", " 3.0 24.0 1881.000000 428.841310 1245.0 1650.00 \n", " 4.0 28.0 2427.500000 870.420822 1595.0 1890.00 \n", " 5.0 8.0 2218.125000 324.674975 1900.0 2000.00 \n", "Marin 0.0 9.0 1334.444444 138.416140 1125.0 1195.00 \n", " 1.0 39.0 1956.358974 488.900242 975.0 1695.00 \n", " 2.0 50.0 2563.340000 629.862784 1665.0 2100.00 \n", " 3.0 31.0 3507.548387 1246.130460 1671.0 2700.00 \n", " 4.0 11.0 5800.000000 1701.029100 3000.0 4575.00 \n", " 5.0 5.0 6220.000000 1797.776404 4200.0 5000.00 \n", "Napa 0.0 2.0 668.000000 0.000000 668.0 668.00 \n", " 1.0 5.0 1550.600000 547.732873 1015.0 1199.00 \n", " 2.0 14.0 1857.500000 378.314836 1295.0 1547.50 \n", " 3.0 18.0 2277.777778 647.897555 1400.0 1887.50 \n", " 4.0 9.0 2766.666667 531.507291 2250.0 2500.00 \n", " 5.0 1.0 2650.000000 NaN 2650.0 2650.00 \n", "San Francisco 0.0 38.0 2407.842105 760.625330 1000.0 2018.75 \n", " 1.0 110.0 3100.772727 795.718897 850.0 2721.25 \n", " 2.0 91.0 4252.824176 1270.897571 1800.0 3500.00 \n", " 3.0 36.0 6141.361111 2198.891372 3000.0 4843.75 \n", " 4.0 12.0 5740.833333 1917.243326 3500.0 4423.75 \n", "San Mateo 0.0 21.0 1768.000000 354.834891 995.0 1490.00 \n", " 1.0 131.0 2189.694656 420.669172 1250.0 1936.50 \n", " 2.0 168.0 2729.851190 482.890420 1877.0 2393.00 \n", " 3.0 49.0 3529.795918 866.515171 1500.0 3000.00 \n", " 4.0 18.0 4953.611111 1735.069761 3500.0 3825.00 \n", " 5.0 4.0 4949.750000 2076.238646 3500.0 3724.25 \n", " 6.0 1.0 7475.000000 NaN 7475.0 7475.00 \n", "Santa Clara 0.0 17.0 1820.941176 548.683933 1150.0 1295.00 \n", " 1.0 188.0 1934.521277 417.776115 925.0 1650.00 \n", " 2.0 222.0 2514.918919 627.283126 1250.0 2096.25 \n", " 3.0 82.0 3236.292683 918.608334 1100.0 2591.25 \n", " 4.0 28.0 3952.142857 1654.920513 2450.0 2950.00 \n", " 5.0 11.0 5659.090909 1720.293315 3000.0 4350.00 \n", "Solano 0.0 3.0 904.333333 377.433879 650.0 687.50 \n", " 1.0 15.0 993.800000 202.676096 715.0 800.50 \n", " 2.0 28.0 1262.571429 250.698052 895.0 1048.00 \n", " 3.0 39.0 1632.179487 252.796972 1150.0 1505.00 \n", " 4.0 19.0 1846.842105 305.819530 1250.0 1710.00 \n", " 5.0 2.0 1692.500000 434.870670 1385.0 1538.75 \n", "Sonoma 0.0 4.0 1612.500000 642.099421 1050.0 1200.00 \n", " 1.0 35.0 1297.000000 236.807566 800.0 1199.00 \n", " 2.0 62.0 1557.919355 277.942989 1150.0 1350.00 \n", " 3.0 37.0 2161.081081 534.670375 1550.0 1750.00 \n", " 4.0 14.0 2962.500000 982.576578 2200.0 2356.25 \n", " 5.0 4.0 2948.750000 331.420554 2500.0 2871.25 \n", "\n", " sqft \\\n", " 50% 75% max count mean \n", "county_x bedrooms \n", "Alameda 0.0 1397.5 1500.00 1536.0 8.0 2206.875000 \n", " 1.0 1575.0 1742.50 2065.0 47.0 716.234043 \n", " 2.0 2000.0 2350.75 6000.0 76.0 1024.342105 \n", " 3.0 2350.0 2722.00 4250.0 40.0 1388.175000 \n", " 4.0 3000.0 3350.00 4150.0 10.0 2345.000000 \n", " 5.0 3250.0 4000.00 5995.0 5.0 2350.600000 \n", " 8.0 9995.0 9995.00 9995.0 1.0 2500.000000 \n", "Contra Costa 0.0 695.0 695.00 695.0 1.0 450.000000 \n", " 1.0 1591.5 1767.00 1952.0 28.0 708.964286 \n", " 2.0 1850.0 2290.00 2580.0 45.0 1023.844444 \n", " 3.0 1772.5 2050.00 2900.0 24.0 1501.750000 \n", " 4.0 2045.0 2473.75 5200.0 28.0 2210.607143 \n", " 5.0 2125.0 2300.00 2895.0 8.0 2729.250000 \n", "Marin 0.0 1400.0 1400.00 1495.0 9.0 406.111111 \n", " 1.0 1862.0 2313.50 3200.0 39.0 728.307692 \n", " 2.0 2335.5 2895.00 3995.0 50.0 1016.640000 \n", " 3.0 3290.0 3750.00 7850.0 31.0 1630.870968 \n", " 4.0 5850.0 6975.00 8500.0 11.0 2750.363636 \n", " 5.0 5700.0 8000.00 8200.0 5.0 3050.000000 \n", "Napa 0.0 668.0 668.00 668.0 2.0 332.000000 \n", " 1.0 1289.0 1950.00 2300.0 5.0 876.000000 \n", " 2.0 1835.0 2200.00 2500.0 14.0 1179.214286 \n", " 3.0 2150.0 2400.00 4200.0 18.0 1756.833333 \n", " 4.0 2650.0 2800.00 4100.0 9.0 2216.000000 \n", " 5.0 2650.0 2650.00 2650.0 1.0 2502.000000 \n", "San Francisco 0.0 2486.0 2721.00 5250.0 38.0 527.789474 \n", " 1.0 3027.0 3434.00 5800.0 110.0 775.954545 \n", " 2.0 4200.0 4825.00 8450.0 91.0 1174.945055 \n", " 3.0 5200.0 8373.75 9999.0 36.0 1712.611111 \n", " 4.0 5450.0 6200.00 9950.0 12.0 1877.083333 \n", "San Mateo 0.0 1800.0 1937.00 2400.0 21.0 496.047619 \n", " 1.0 2150.0 2372.50 5200.0 131.0 712.694656 \n", " 2.0 2700.0 3000.00 3990.0 168.0 1066.589286 \n", " 3.0 3400.0 4000.00 5999.0 49.0 1582.612245 \n", " 4.0 4085.0 5362.50 8950.0 18.0 2384.000000 \n", " 5.0 4149.5 5375.00 8000.0 4.0 2437.500000 \n", " 6.0 7475.0 7475.00 7475.0 1.0 2770.000000 \n", "Santa Clara 0.0 1825.0 2000.00 2950.0 17.0 567.647059 \n", " 1.0 1895.0 2165.75 3850.0 188.0 721.361702 \n", " 2.0 2395.0 2800.00 5364.0 222.0 1063.000000 \n", " 3.0 3190.0 3503.75 5600.0 82.0 1506.804878 \n", " 4.0 3400.0 4237.50 9000.0 28.0 2195.000000 \n", " 5.0 6100.0 7025.00 8000.0 11.0 3025.272727 \n", "Solano 0.0 725.0 1031.50 1338.0 3.0 635.000000 \n", " 1.0 985.0 1148.00 1289.0 15.0 703.933333 \n", " 2.0 1270.0 1499.00 1875.0 28.0 987.892857 \n", " 3.0 1695.0 1700.00 2300.0 39.0 1432.358974 \n", " 4.0 1800.0 2047.50 2400.0 19.0 1666.947368 \n", " 5.0 1692.5 1846.25 2000.0 2.0 1698.000000 \n", "Sonoma 0.0 1450.0 1862.50 2500.0 4.0 935.000000 \n", " 1.0 1345.0 1415.00 1900.0 35.0 670.428571 \n", " 2.0 1500.0 1693.75 2249.0 62.0 1016.274194 \n", " 3.0 2000.0 2400.00 3900.0 37.0 1582.702703 \n", " 4.0 2600.0 2850.00 5100.0 14.0 2766.142857 \n", " 5.0 2997.5 3075.00 3300.0 4.0 2252.500000 \n", "\n", " \n", " std min 25% 50% 75% max \n", "county_x bedrooms \n", "Alameda 0.0 3269.982457 200.0 393.75 552.5 2343.75 7500.0 \n", " 1.0 140.061200 500.0 650.00 701.0 777.00 1275.0 \n", " 2.0 240.547074 530.0 865.25 973.0 1120.00 2200.0 \n", " 3.0 273.663736 865.0 1181.50 1400.0 1500.00 1980.0 \n", " 4.0 964.455748 1530.0 1889.25 2139.0 2372.25 4900.0 \n", " 5.0 1011.672279 1510.0 1672.00 1971.0 2600.00 4000.0 \n", " 8.0 NaN 2500.0 2500.00 2500.0 2500.00 2500.0 \n", "Contra Costa 0.0 NaN 450.0 450.00 450.0 450.00 450.0 \n", " 1.0 135.913502 500.0 607.50 726.0 750.00 1200.0 \n", " 2.0 210.165514 725.0 900.00 976.0 1100.00 1625.0 \n", " 3.0 303.163215 1080.0 1300.00 1486.5 1671.00 2200.0 \n", " 4.0 471.061633 1325.0 1967.00 2213.5 2365.75 3350.0 \n", " 5.0 517.936221 2050.0 2313.25 2823.0 3071.25 3400.0 \n", "Marin 0.0 66.038709 250.0 390.00 440.0 440.00 460.0 \n", " 1.0 134.389488 480.0 647.50 700.0 790.50 1200.0 \n", " 2.0 181.252193 706.0 900.00 1000.0 1100.00 1650.0 \n", " 3.0 506.368360 1100.0 1298.00 1510.0 1777.00 3400.0 \n", " 4.0 843.509843 1640.0 2469.50 2660.0 2890.00 4781.0 \n", " 5.0 409.267639 2500.0 2850.00 3000.0 3400.00 3500.0 \n", "Napa 0.0 60.811183 289.0 310.50 332.0 353.50 375.0 \n", " 1.0 222.693736 650.0 685.00 895.0 950.00 1200.0 \n", " 2.0 289.904541 895.0 912.00 1107.0 1400.00 1700.0 \n", " 3.0 482.312841 1100.0 1400.25 1602.0 2300.00 2500.0 \n", " 4.0 471.055729 1559.0 2000.00 2100.0 2433.00 3000.0 \n", " 5.0 NaN 2502.0 2502.00 2502.0 2502.00 2502.0 \n", "San Francisco 0.0 261.674665 180.0 457.00 500.0 566.50 2000.0 \n", " 1.0 354.385639 200.0 644.00 722.5 838.75 3850.0 \n", " 2.0 369.086029 550.0 959.00 1104.0 1300.00 3000.0 \n", " 3.0 440.570557 955.0 1500.00 1553.5 1843.75 2800.0 \n", " 4.0 384.091243 1250.0 1625.00 1922.0 2112.50 2448.0 \n", "San Mateo 0.0 106.154829 275.0 421.00 500.0 567.00 750.0 \n", " 1.0 115.311211 350.0 640.00 700.0 756.00 1200.0 \n", " 2.0 287.045560 762.0 950.00 1020.0 1109.50 3953.0 \n", " 3.0 408.990211 980.0 1339.00 1500.0 1800.00 3000.0 \n", " 4.0 472.837243 1470.0 2025.00 2350.0 2725.00 3170.0 \n", " 5.0 381.608438 2200.0 2200.00 2275.0 2512.50 3000.0 \n", " 6.0 NaN 2770.0 2770.00 2770.0 2770.00 2770.0 \n", "Santa Clara 0.0 346.368832 300.0 418.00 500.0 565.00 1862.0 \n", " 1.0 123.136145 400.0 650.00 702.5 792.25 1100.0 \n", " 2.0 425.803388 420.0 915.75 1018.0 1100.00 6500.0 \n", " 3.0 304.671344 1000.0 1275.50 1430.5 1700.00 2256.0 \n", " 4.0 632.814524 1450.0 1784.25 2047.5 2563.00 3917.0 \n", " 5.0 563.240285 1850.0 2900.50 3100.0 3250.00 4000.0 \n", "Solano 0.0 217.772817 450.0 515.00 580.0 727.50 875.0 \n", " 1.0 127.387747 450.0 639.50 708.0 735.00 1050.0 \n", " 2.0 184.534919 675.0 870.00 939.0 1063.00 1550.0 \n", " 3.0 254.968469 1020.0 1280.00 1450.0 1563.00 2164.0 \n", " 4.0 312.334129 1300.0 1462.00 1558.0 1764.00 2598.0 \n", " 5.0 209.303607 1550.0 1624.00 1698.0 1772.00 1846.0 \n", "Sonoma 0.0 517.268467 600.0 630.00 720.0 1025.00 1700.0 \n", " 1.0 162.252397 200.0 605.00 661.0 720.00 1100.0 \n", " 2.0 226.862143 580.0 891.00 1000.0 1028.00 1742.0 \n", " 3.0 527.924335 950.0 1293.00 1456.0 1700.00 4000.0 \n", " 4.0 1350.843033 1350.0 2097.00 2200.0 2800.00 5620.0 \n", " 5.0 412.567974 1700.0 2056.25 2360.5 2556.75 2589.0 " ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gr2[['price', 'sqft']].describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Do the same, presenting the count of how many nonmissing price values there are in each group" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pricesqft
county_xbedrooms
Alameda0.088
1.04747
2.07676
3.04040
4.01010
5.055
8.011
Contra Costa0.011
1.02828
2.04545
3.02424
4.02828
5.088
Marin0.099
1.03939
2.05050
3.03131
4.01111
5.055
Napa0.022
1.055
2.01414
3.01818
4.099
5.011
San Francisco0.03838
1.0110110
2.09191
3.03636
4.01212
San Mateo0.02121
1.0131131
2.0168168
3.04949
4.01818
5.044
6.011
Santa Clara0.01717
1.0188188
2.0222222
3.08282
4.02828
5.01111
Solano0.033
1.01515
2.02828
3.03939
4.01919
5.022
Sonoma0.044
1.03535
2.06262
3.03737
4.01414
5.044
\n", "
" ], "text/plain": [ " price sqft\n", "county_x bedrooms \n", "Alameda 0.0 8 8\n", " 1.0 47 47\n", " 2.0 76 76\n", " 3.0 40 40\n", " 4.0 10 10\n", " 5.0 5 5\n", " 8.0 1 1\n", "Contra Costa 0.0 1 1\n", " 1.0 28 28\n", " 2.0 45 45\n", " 3.0 24 24\n", " 4.0 28 28\n", " 5.0 8 8\n", "Marin 0.0 9 9\n", " 1.0 39 39\n", " 2.0 50 50\n", " 3.0 31 31\n", " 4.0 11 11\n", " 5.0 5 5\n", "Napa 0.0 2 2\n", " 1.0 5 5\n", " 2.0 14 14\n", " 3.0 18 18\n", " 4.0 9 9\n", " 5.0 1 1\n", "San Francisco 0.0 38 38\n", " 1.0 110 110\n", " 2.0 91 91\n", " 3.0 36 36\n", " 4.0 12 12\n", "San Mateo 0.0 21 21\n", " 1.0 131 131\n", " 2.0 168 168\n", " 3.0 49 49\n", " 4.0 18 18\n", " 5.0 4 4\n", " 6.0 1 1\n", "Santa Clara 0.0 17 17\n", " 1.0 188 188\n", " 2.0 222 222\n", " 3.0 82 82\n", " 4.0 28 28\n", " 5.0 11 11\n", "Solano 0.0 3 3\n", " 1.0 15 15\n", " 2.0 28 28\n", " 3.0 39 39\n", " 4.0 19 19\n", " 5.0 2 2\n", "Sonoma 0.0 4 4\n", " 1.0 35 35\n", " 2.0 62 62\n", " 3.0 37 37\n", " 4.0 14 14\n", " 5.0 4 4" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gr2[['price', 'sqft']].count()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define a function called 'q75_q25' that computes the difference between the 75th percentile and the 25th percentile, and analyze this value in the groupby" ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def q75_q25(x):\n", " return x.quantile(0.75)-x.quantile(0.25)" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
H00010001P0010001Unnamed: 0arealandblkgrpblockblockfipscounty_ycountyfipsday...outlierpidpricesqftstatetracttractfipsviewwalkyear
county_xbedrooms
Alameda0.068.50160.75206.253875.751.251270.502.057492e+08000.00...False19042273.50412.501950.00020575.0020575.000.000.000
1.0203.50477.00313.5080951.001.001013.002.736255e+08000.00...False701582.00355.00127.00027362.5027362.500.000.000
2.0182.25450.00374.0066438.752.001990.501.729702e+08000.00...False618314.00513.25254.75017297.0017297.000.000.000
3.074.50162.25316.2589642.752.001985.751.829703e+08000.00...False7547054.75634.75318.50018297.0018297.000.000.000
4.057.50236.25108.751122543.501.00985.501.042568e+08000.00...False10686532.25350.00483.00010425.7510425.750.000.000
5.025.0032.00259.00674.001.00992.002.013490e+08000.00...False10255358.001300.00928.00020135.0020135.000.000.000
8.00.000.000.000.000.000.000.000000e+00000.00...False0.000.000.0000.000.000.000.000
Contra Costa0.00.000.000.000.000.000.000.000000e+00000.00...False0.000.000.0000.000.000.000.000
1.0224.50381.75455.00103756.502.001981.001.815160e+08000.00...False700160.25519.50142.50018151.5018151.500.000.000
2.0189.00336.00385.00105835.002.001981.002.400190e+08000.00...False9982799.00865.00200.00024002.0024002.000.000.000
3.0114.25301.00371.00100900.002.001993.003.442647e+08000.00...False12974118.25400.00371.00034426.2534426.250.000.000
4.062.00167.25427.7580769.002.001983.754.760705e+08000.00...False13009397.50583.75398.75047607.0047607.000.000.000
5.040.00152.75413.2592070.501.251264.505.192875e+08000.00...False25805052.75300.00758.00051928.7551928.750.000.000
Marin0.029.00123.00309.00178239.002.001993.001.919920e+08002.00...False15485038.00205.0050.00019199.0019199.000.000.000
1.0196.50167.00282.50214368.001.001007.501.859895e+08002.00...False4770607.00618.50143.00018599.0018599.000.000.000
2.0169.00309.25424.00273517.751.001032.001.927432e+08002.00...False6745285.75795.00200.00019274.2519274.251.000.000
3.096.50316.50417.50217281.001.501514.001.804950e+08002.00...False8868676.501050.00479.00018049.5018049.500.000.000
4.038.0069.00387.50378416.001.501500.501.349995e+08003.00...False17604397.002400.00420.50013500.0013500.000.000.000
5.0516.001031.00284.001390271.002.001992.007.000201e+07002.00...False2671410.003000.00550.0007000.007000.000.000.000
Napa0.00.000.000.500.000.000.000.000000e+00000.50...False620599.000.0043.0000.000.000.000.000
1.010.000.00316.0030019538.001.00983.008.981013e+06002.00...False3290248.00751.00265.000898.00898.000.000.000
2.071.50206.00204.7524564.002.001996.752.998005e+06001.75...False32873503.25652.50488.000300.00300.000.000.000
3.066.00143.25387.501316652.500.75743.001.324276e+07002.00...False15134398.25512.50899.7501324.251324.250.000.750
4.0108.00245.0087.00202302.002.001989.002.039982e+06002.00...False43865122.00300.00433.000204.00204.000.000.000
5.00.000.000.000.000.000.000.000000e+00000.00...False0.000.000.0000.000.000.000.000
San Francisco0.0331.75417.00251.504418.001.001004.505.424751e+07001.00...False1924268.75702.25109.5005424.755424.750.000.000
1.0240.50346.00328.5012857.501.001005.752.842588e+08001.00...False9672271.00712.75194.75028425.7528425.750.000.000
2.0137.50250.00420.008035.502.001989.001.985095e+08001.00...False12489279.001325.00341.00019851.0019851.001.000.000
3.079.75188.25512.006635.251.00998.001.802560e+08001.00...False15020026.503530.00343.75018025.5018025.500.250.000
4.065.2580.25428.504508.253.002901.501.392585e+08001.00...False22522950.751776.25487.50013925.5013925.500.250.000
San Mateo0.0145.00236.00197.0033686.004.003992.005.499798e+07001.00...False1712959.00447.00146.0005500.005500.000.000.000
1.0196.00357.00299.00107714.502.001994.003.249949e+07001.00...False2490272.50436.00116.0003250.003250.000.000.000
2.0166.50325.50293.5079144.752.001995.004.303099e+07001.00...False3487538.00607.00159.5004303.004303.000.000.000
3.083.00200.00506.0066796.002.002003.006.400200e+07001.00...False8882570.001000.00461.0006400.006400.000.000.000
4.037.25111.75162.00114244.751.751695.508.150094e+07000.75...False12131167.251537.50700.0008150.008150.001.000.000
5.078.50285.2530.25488784.000.25281.006.125078e+07000.25...False9736122.501650.75312.5006125.006125.000.250.000
6.00.000.000.000.000.000.000.000000e+00000.00...False0.000.000.0000.000.000.000.000
Santa Clara0.0116.00208.001534.0019217.002.001984.004.395198e+07001.00...False12721875.00705.00147.0004395.004395.000.000.000
1.0197.75400.25790.7566853.002.001989.254.395025e+07000.00...False2000267.75515.75142.2504395.004395.000.000.000
2.0175.75385.75563.0074347.252.001990.754.376051e+07000.00...False6955655.50703.75184.2504376.004376.000.000.000
3.094.50328.75579.5048872.752.001982.756.053275e+07000.00...False11797676.00912.50424.5006053.256053.250.000.000
4.070.50148.00551.0089766.252.002009.007.790950e+07000.00...False3658682.751287.50778.7507791.007791.000.000.000
5.075.50172.001438.00414410.502.001993.503.051451e+07001.00...False27962078.502675.00349.5003051.503051.500.000.000
Solano0.048.00140.00137.0056334.000.50504.007.059992e+06000.00...False15289585.00344.00212.500706.00706.000.000.000
1.095.50275.00297.5044846.000.50514.005.960003e+06000.00...False606794.50347.5095.500596.00596.000.000.000
2.086.00169.25257.7541409.001.001004.257.377498e+06000.00...False14046236.00451.00193.000737.75737.750.000.000
3.021.0084.00294.5039584.001.001005.501.008599e+07000.00...False20250047.00195.00283.0001008.501008.500.000.000
4.039.50105.00336.5034231.501.001001.008.005999e+06000.00...False25628366.00337.50302.000800.50800.500.000.000
5.016.5046.0018.0019238.000.50495.505.474504e+06000.00...False8809319.00307.50148.000547.50547.500.000.000
Sonoma0.043.2563.2585.501373290.250.50522.751.828529e+06000.50...False4202789.00662.50395.000182.75182.750.000.000
1.067.50108.00269.0098943.503.002993.001.748651e+07002.00...False7403740.00216.00115.0001748.501748.500.000.000
2.084.00202.75370.50244785.003.002998.001.775400e+07002.00...False11027031.75343.75137.0001775.251775.250.000.000
3.044.00115.00246.00117787.002.001998.002.500300e+07001.00...False12972428.00650.00407.0002500.002500.000.000.000
4.041.75129.50233.5046760.251.751744.001.871301e+07001.75...False11341200.00493.75703.0001871.501871.500.000.000
5.059.0098.25198.50397540.251.251262.002.399127e+07001.25...False3643638.00203.75500.5002399.002399.000.000.000
\n", "

55 rows × 24 columns

\n", "
" ], "text/plain": [ " H00010001 P0010001 Unnamed: 0 arealand blkgrp \\\n", "county_x bedrooms \n", "Alameda 0.0 68.50 160.75 206.25 3875.75 1.25 \n", " 1.0 203.50 477.00 313.50 80951.00 1.00 \n", " 2.0 182.25 450.00 374.00 66438.75 2.00 \n", " 3.0 74.50 162.25 316.25 89642.75 2.00 \n", " 4.0 57.50 236.25 108.75 1122543.50 1.00 \n", " 5.0 25.00 32.00 259.00 674.00 1.00 \n", " 8.0 0.00 0.00 0.00 0.00 0.00 \n", "Contra Costa 0.0 0.00 0.00 0.00 0.00 0.00 \n", " 1.0 224.50 381.75 455.00 103756.50 2.00 \n", " 2.0 189.00 336.00 385.00 105835.00 2.00 \n", " 3.0 114.25 301.00 371.00 100900.00 2.00 \n", " 4.0 62.00 167.25 427.75 80769.00 2.00 \n", " 5.0 40.00 152.75 413.25 92070.50 1.25 \n", "Marin 0.0 29.00 123.00 309.00 178239.00 2.00 \n", " 1.0 196.50 167.00 282.50 214368.00 1.00 \n", " 2.0 169.00 309.25 424.00 273517.75 1.00 \n", " 3.0 96.50 316.50 417.50 217281.00 1.50 \n", " 4.0 38.00 69.00 387.50 378416.00 1.50 \n", " 5.0 516.00 1031.00 284.00 1390271.00 2.00 \n", "Napa 0.0 0.00 0.00 0.50 0.00 0.00 \n", " 1.0 10.00 0.00 316.00 30019538.00 1.00 \n", " 2.0 71.50 206.00 204.75 24564.00 2.00 \n", " 3.0 66.00 143.25 387.50 1316652.50 0.75 \n", " 4.0 108.00 245.00 87.00 202302.00 2.00 \n", " 5.0 0.00 0.00 0.00 0.00 0.00 \n", "San Francisco 0.0 331.75 417.00 251.50 4418.00 1.00 \n", " 1.0 240.50 346.00 328.50 12857.50 1.00 \n", " 2.0 137.50 250.00 420.00 8035.50 2.00 \n", " 3.0 79.75 188.25 512.00 6635.25 1.00 \n", " 4.0 65.25 80.25 428.50 4508.25 3.00 \n", "San Mateo 0.0 145.00 236.00 197.00 33686.00 4.00 \n", " 1.0 196.00 357.00 299.00 107714.50 2.00 \n", " 2.0 166.50 325.50 293.50 79144.75 2.00 \n", " 3.0 83.00 200.00 506.00 66796.00 2.00 \n", " 4.0 37.25 111.75 162.00 114244.75 1.75 \n", " 5.0 78.50 285.25 30.25 488784.00 0.25 \n", " 6.0 0.00 0.00 0.00 0.00 0.00 \n", "Santa Clara 0.0 116.00 208.00 1534.00 19217.00 2.00 \n", " 1.0 197.75 400.25 790.75 66853.00 2.00 \n", " 2.0 175.75 385.75 563.00 74347.25 2.00 \n", " 3.0 94.50 328.75 579.50 48872.75 2.00 \n", " 4.0 70.50 148.00 551.00 89766.25 2.00 \n", " 5.0 75.50 172.00 1438.00 414410.50 2.00 \n", "Solano 0.0 48.00 140.00 137.00 56334.00 0.50 \n", " 1.0 95.50 275.00 297.50 44846.00 0.50 \n", " 2.0 86.00 169.25 257.75 41409.00 1.00 \n", " 3.0 21.00 84.00 294.50 39584.00 1.00 \n", " 4.0 39.50 105.00 336.50 34231.50 1.00 \n", " 5.0 16.50 46.00 18.00 19238.00 0.50 \n", "Sonoma 0.0 43.25 63.25 85.50 1373290.25 0.50 \n", " 1.0 67.50 108.00 269.00 98943.50 3.00 \n", " 2.0 84.00 202.75 370.50 244785.00 3.00 \n", " 3.0 44.00 115.00 246.00 117787.00 2.00 \n", " 4.0 41.75 129.50 233.50 46760.25 1.75 \n", " 5.0 59.00 98.25 198.50 397540.25 1.25 \n", "\n", " block blockfips county_y countyfips day \\\n", "county_x bedrooms \n", "Alameda 0.0 1270.50 2.057492e+08 0 0 0.00 \n", " 1.0 1013.00 2.736255e+08 0 0 0.00 \n", " 2.0 1990.50 1.729702e+08 0 0 0.00 \n", " 3.0 1985.75 1.829703e+08 0 0 0.00 \n", " 4.0 985.50 1.042568e+08 0 0 0.00 \n", " 5.0 992.00 2.013490e+08 0 0 0.00 \n", " 8.0 0.00 0.000000e+00 0 0 0.00 \n", "Contra Costa 0.0 0.00 0.000000e+00 0 0 0.00 \n", " 1.0 1981.00 1.815160e+08 0 0 0.00 \n", " 2.0 1981.00 2.400190e+08 0 0 0.00 \n", " 3.0 1993.00 3.442647e+08 0 0 0.00 \n", " 4.0 1983.75 4.760705e+08 0 0 0.00 \n", " 5.0 1264.50 5.192875e+08 0 0 0.00 \n", "Marin 0.0 1993.00 1.919920e+08 0 0 2.00 \n", " 1.0 1007.50 1.859895e+08 0 0 2.00 \n", " 2.0 1032.00 1.927432e+08 0 0 2.00 \n", " 3.0 1514.00 1.804950e+08 0 0 2.00 \n", " 4.0 1500.50 1.349995e+08 0 0 3.00 \n", " 5.0 1992.00 7.000201e+07 0 0 2.00 \n", "Napa 0.0 0.00 0.000000e+00 0 0 0.50 \n", " 1.0 983.00 8.981013e+06 0 0 2.00 \n", " 2.0 1996.75 2.998005e+06 0 0 1.75 \n", " 3.0 743.00 1.324276e+07 0 0 2.00 \n", " 4.0 1989.00 2.039982e+06 0 0 2.00 \n", " 5.0 0.00 0.000000e+00 0 0 0.00 \n", "San Francisco 0.0 1004.50 5.424751e+07 0 0 1.00 \n", " 1.0 1005.75 2.842588e+08 0 0 1.00 \n", " 2.0 1989.00 1.985095e+08 0 0 1.00 \n", " 3.0 998.00 1.802560e+08 0 0 1.00 \n", " 4.0 2901.50 1.392585e+08 0 0 1.00 \n", "San Mateo 0.0 3992.00 5.499798e+07 0 0 1.00 \n", " 1.0 1994.00 3.249949e+07 0 0 1.00 \n", " 2.0 1995.00 4.303099e+07 0 0 1.00 \n", " 3.0 2003.00 6.400200e+07 0 0 1.00 \n", " 4.0 1695.50 8.150094e+07 0 0 0.75 \n", " 5.0 281.00 6.125078e+07 0 0 0.25 \n", " 6.0 0.00 0.000000e+00 0 0 0.00 \n", "Santa Clara 0.0 1984.00 4.395198e+07 0 0 1.00 \n", " 1.0 1989.25 4.395025e+07 0 0 0.00 \n", " 2.0 1990.75 4.376051e+07 0 0 0.00 \n", " 3.0 1982.75 6.053275e+07 0 0 0.00 \n", " 4.0 2009.00 7.790950e+07 0 0 0.00 \n", " 5.0 1993.50 3.051451e+07 0 0 1.00 \n", "Solano 0.0 504.00 7.059992e+06 0 0 0.00 \n", " 1.0 514.00 5.960003e+06 0 0 0.00 \n", " 2.0 1004.25 7.377498e+06 0 0 0.00 \n", " 3.0 1005.50 1.008599e+07 0 0 0.00 \n", " 4.0 1001.00 8.005999e+06 0 0 0.00 \n", " 5.0 495.50 5.474504e+06 0 0 0.00 \n", "Sonoma 0.0 522.75 1.828529e+06 0 0 0.50 \n", " 1.0 2993.00 1.748651e+07 0 0 2.00 \n", " 2.0 2998.00 1.775400e+07 0 0 2.00 \n", " 3.0 1998.00 2.500300e+07 0 0 1.00 \n", " 4.0 1744.00 1.871301e+07 0 0 1.75 \n", " 5.0 1262.00 2.399127e+07 0 0 1.25 \n", "\n", " ... outlier pid price sqft state \\\n", "county_x bedrooms ... \n", "Alameda 0.0 ... False 19042273.50 412.50 1950.00 0 \n", " 1.0 ... False 701582.00 355.00 127.00 0 \n", " 2.0 ... False 618314.00 513.25 254.75 0 \n", " 3.0 ... False 7547054.75 634.75 318.50 0 \n", " 4.0 ... False 10686532.25 350.00 483.00 0 \n", " 5.0 ... False 10255358.00 1300.00 928.00 0 \n", " 8.0 ... False 0.00 0.00 0.00 0 \n", "Contra Costa 0.0 ... False 0.00 0.00 0.00 0 \n", " 1.0 ... False 700160.25 519.50 142.50 0 \n", " 2.0 ... False 9982799.00 865.00 200.00 0 \n", " 3.0 ... False 12974118.25 400.00 371.00 0 \n", " 4.0 ... False 13009397.50 583.75 398.75 0 \n", " 5.0 ... False 25805052.75 300.00 758.00 0 \n", "Marin 0.0 ... False 15485038.00 205.00 50.00 0 \n", " 1.0 ... False 4770607.00 618.50 143.00 0 \n", " 2.0 ... False 6745285.75 795.00 200.00 0 \n", " 3.0 ... False 8868676.50 1050.00 479.00 0 \n", " 4.0 ... False 17604397.00 2400.00 420.50 0 \n", " 5.0 ... False 2671410.00 3000.00 550.00 0 \n", "Napa 0.0 ... False 620599.00 0.00 43.00 0 \n", " 1.0 ... False 3290248.00 751.00 265.00 0 \n", " 2.0 ... False 32873503.25 652.50 488.00 0 \n", " 3.0 ... False 15134398.25 512.50 899.75 0 \n", " 4.0 ... False 43865122.00 300.00 433.00 0 \n", " 5.0 ... False 0.00 0.00 0.00 0 \n", "San Francisco 0.0 ... False 1924268.75 702.25 109.50 0 \n", " 1.0 ... False 9672271.00 712.75 194.75 0 \n", " 2.0 ... False 12489279.00 1325.00 341.00 0 \n", " 3.0 ... False 15020026.50 3530.00 343.75 0 \n", " 4.0 ... False 22522950.75 1776.25 487.50 0 \n", "San Mateo 0.0 ... False 1712959.00 447.00 146.00 0 \n", " 1.0 ... False 2490272.50 436.00 116.00 0 \n", " 2.0 ... False 3487538.00 607.00 159.50 0 \n", " 3.0 ... False 8882570.00 1000.00 461.00 0 \n", " 4.0 ... False 12131167.25 1537.50 700.00 0 \n", " 5.0 ... False 9736122.50 1650.75 312.50 0 \n", " 6.0 ... False 0.00 0.00 0.00 0 \n", "Santa Clara 0.0 ... False 12721875.00 705.00 147.00 0 \n", " 1.0 ... False 2000267.75 515.75 142.25 0 \n", " 2.0 ... False 6955655.50 703.75 184.25 0 \n", " 3.0 ... False 11797676.00 912.50 424.50 0 \n", " 4.0 ... False 3658682.75 1287.50 778.75 0 \n", " 5.0 ... False 27962078.50 2675.00 349.50 0 \n", "Solano 0.0 ... False 15289585.00 344.00 212.50 0 \n", " 1.0 ... False 606794.50 347.50 95.50 0 \n", " 2.0 ... False 14046236.00 451.00 193.00 0 \n", " 3.0 ... False 20250047.00 195.00 283.00 0 \n", " 4.0 ... False 25628366.00 337.50 302.00 0 \n", " 5.0 ... False 8809319.00 307.50 148.00 0 \n", "Sonoma 0.0 ... False 4202789.00 662.50 395.00 0 \n", " 1.0 ... False 7403740.00 216.00 115.00 0 \n", " 2.0 ... False 11027031.75 343.75 137.00 0 \n", " 3.0 ... False 12972428.00 650.00 407.00 0 \n", " 4.0 ... False 11341200.00 493.75 703.00 0 \n", " 5.0 ... False 3643638.00 203.75 500.50 0 \n", "\n", " tract tractfips view walk year \n", "county_x bedrooms \n", "Alameda 0.0 20575.00 20575.00 0.00 0.00 0 \n", " 1.0 27362.50 27362.50 0.00 0.00 0 \n", " 2.0 17297.00 17297.00 0.00 0.00 0 \n", " 3.0 18297.00 18297.00 0.00 0.00 0 \n", " 4.0 10425.75 10425.75 0.00 0.00 0 \n", " 5.0 20135.00 20135.00 0.00 0.00 0 \n", " 8.0 0.00 0.00 0.00 0.00 0 \n", "Contra Costa 0.0 0.00 0.00 0.00 0.00 0 \n", " 1.0 18151.50 18151.50 0.00 0.00 0 \n", " 2.0 24002.00 24002.00 0.00 0.00 0 \n", " 3.0 34426.25 34426.25 0.00 0.00 0 \n", " 4.0 47607.00 47607.00 0.00 0.00 0 \n", " 5.0 51928.75 51928.75 0.00 0.00 0 \n", "Marin 0.0 19199.00 19199.00 0.00 0.00 0 \n", " 1.0 18599.00 18599.00 0.00 0.00 0 \n", " 2.0 19274.25 19274.25 1.00 0.00 0 \n", " 3.0 18049.50 18049.50 0.00 0.00 0 \n", " 4.0 13500.00 13500.00 0.00 0.00 0 \n", " 5.0 7000.00 7000.00 0.00 0.00 0 \n", "Napa 0.0 0.00 0.00 0.00 0.00 0 \n", " 1.0 898.00 898.00 0.00 0.00 0 \n", " 2.0 300.00 300.00 0.00 0.00 0 \n", " 3.0 1324.25 1324.25 0.00 0.75 0 \n", " 4.0 204.00 204.00 0.00 0.00 0 \n", " 5.0 0.00 0.00 0.00 0.00 0 \n", "San Francisco 0.0 5424.75 5424.75 0.00 0.00 0 \n", " 1.0 28425.75 28425.75 0.00 0.00 0 \n", " 2.0 19851.00 19851.00 1.00 0.00 0 \n", " 3.0 18025.50 18025.50 0.25 0.00 0 \n", " 4.0 13925.50 13925.50 0.25 0.00 0 \n", "San Mateo 0.0 5500.00 5500.00 0.00 0.00 0 \n", " 1.0 3250.00 3250.00 0.00 0.00 0 \n", " 2.0 4303.00 4303.00 0.00 0.00 0 \n", " 3.0 6400.00 6400.00 0.00 0.00 0 \n", " 4.0 8150.00 8150.00 1.00 0.00 0 \n", " 5.0 6125.00 6125.00 0.25 0.00 0 \n", " 6.0 0.00 0.00 0.00 0.00 0 \n", "Santa Clara 0.0 4395.00 4395.00 0.00 0.00 0 \n", " 1.0 4395.00 4395.00 0.00 0.00 0 \n", " 2.0 4376.00 4376.00 0.00 0.00 0 \n", " 3.0 6053.25 6053.25 0.00 0.00 0 \n", " 4.0 7791.00 7791.00 0.00 0.00 0 \n", " 5.0 3051.50 3051.50 0.00 0.00 0 \n", "Solano 0.0 706.00 706.00 0.00 0.00 0 \n", " 1.0 596.00 596.00 0.00 0.00 0 \n", " 2.0 737.75 737.75 0.00 0.00 0 \n", " 3.0 1008.50 1008.50 0.00 0.00 0 \n", " 4.0 800.50 800.50 0.00 0.00 0 \n", " 5.0 547.50 547.50 0.00 0.00 0 \n", "Sonoma 0.0 182.75 182.75 0.00 0.00 0 \n", " 1.0 1748.50 1748.50 0.00 0.00 0 \n", " 2.0 1775.25 1775.25 0.00 0.00 0 \n", " 3.0 2500.00 2500.00 0.00 0.00 0 \n", " 4.0 1871.50 1871.50 0.00 0.00 0 \n", " 5.0 2399.00 2399.00 0.00 0.00 0 \n", "\n", "[55 rows x 24 columns]" ] }, "execution_count": 117, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gr2.agg(q75_q25)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a list of functions to apply, using min, median, max, and q75_q25 for price and sqft by county_x, and bedrooms" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0pricepid...outlierviewwalk
minmedianmaxq75_q25minmedianmaxq75_q25minmedian...maxq75_q25minmedianmaxq75_q25minmedianmaxq75_q25
county_xbedrooms
Alameda0.014191504.51893206.25650.01397.51536.0412.5040289841684.076076e+09...FalseFalse0000.000000.00
1.011411591.02146313.50825.01575.02065.0355.0040335190174.076038e+09...FalseFalse0000.000010.00
2.010301567.02149374.001164.02000.06000.0513.2540306505114.076081e+09...FalseFalse0010.000010.00
3.010091594.52020316.251150.02350.04250.0634.7540126215734.076045e+09...FalseFalse0010.000010.00
4.010341685.51965108.752800.03000.04150.0350.0040607091254.073022e+09...FalseFalse0000.000000.00
5.011841491.02015259.002500.03250.05995.01300.0040562330664.075765e+09...FalseFalse0010.000000.00
8.012781278.012780.009995.09995.09995.00.0040765801064.076580e+09...FalseFalse0000.000000.00
Contra Costa0.014361436.014360.00695.0695.0695.00.0040523315954.052332e+09...FalseFalse0000.001110.00
1.010071442.52005455.00795.01591.51952.0519.5040145891454.076203e+09...FalseFalse0010.000010.00
2.010081544.02014385.00795.01850.02580.0865.0040142347594.076073e+09...FalseFalse0010.000010.00
3.010351543.52076371.001245.01772.52900.0400.0040226852274.075703e+09...FalseFalse0000.000000.00
4.010111578.52147427.751595.02045.05200.0583.7540167694414.076052e+09...FalseFalse0010.000000.00
5.012911567.01895413.251900.02125.02895.0300.0040217225214.057808e+09...FalseFalse0010.000000.00
Marin0.017842054.02366309.001125.01400.01495.0205.0040397084934.065259e+09...FalseFalse0010.000000.00
1.017952033.02722282.50975.01862.03200.0618.5040492613094.074121e+09...FalseFalse0010.000010.00
2.017412196.52726424.001665.02335.53995.0795.0040182552014.070919e+09...FalseFalse0011.000010.00
3.017422299.02724417.501671.03290.07850.01050.0040139569274.070811e+09...FalseFalse0010.000000.00
4.019792330.02867387.503000.05850.08500.02400.0040248269674.068957e+09...FalseFalse0010.000000.00
5.017922171.02633284.004200.05700.08200.03000.0040691656554.071153e+09...FalseFalse0010.000000.00
Napa0.019221922.519230.50668.0668.0668.00.0040739438194.074564e+09...FalseFalse0000.000000.00
1.018562121.02344316.001015.01289.02300.0751.0040713883264.074047e+09...FalseFalse0000.000000.00
2.017392173.02380204.751295.01835.02500.0652.5040148099744.071540e+09...FalseFalse0000.000000.00
3.018552109.52634387.501400.02150.04200.0512.5040129306134.071377e+09...FalseFalse0010.000010.75
4.019302288.0236887.002250.02650.04100.0300.0040217694954.067778e+09...FalseFalse0000.000000.00
5.023762376.023760.002650.02650.02650.00.0040580338954.058034e+09...FalseFalse0000.000000.00
San Francisco0.026191.51150251.501000.02486.05250.0702.2540380034284.075042e+09...FalseFalse0010.000010.00
1.07371.51229328.50850.03027.05800.0712.7540120549344.073881e+09...FalseFalse0010.000010.00
2.08478.01148420.001800.04200.08450.01325.0040127058944.073902e+09...FalseFalse0011.000000.00
3.039380.0930512.003000.05200.09999.03530.0040247853174.064493e+09...FalseFalse0010.250010.00
4.082532.51227428.503500.05450.09950.01776.2540255003934.061193e+09...FalseFalse0010.250000.00
San Mateo0.0582780.02949197.00995.01800.02400.0447.0040731905554.074070e+09...FalseFalse0000.000010.00
1.0562693.03087299.001250.02150.05200.0436.0040192102164.073924e+09...FalseFalse0010.000010.00
2.012492700.03086293.501877.02700.03990.0607.0040283975244.074092e+09...FalseFalse0010.000010.00
3.0642729.03082506.001500.03400.05999.01000.0040133523514.073636e+09...FalseFalse0010.000010.00
4.0742919.53081162.003500.04085.08950.01537.5040348299954.072421e+09...FalseFalse0011.000000.00
5.029472995.5305930.253500.04149.58000.01650.7540370410324.072226e+09...FalseFalse0010.250000.00
6.028092809.028090.007475.07475.07475.00.0040765002444.076500e+09...FalseFalse1110.000000.00
Santa Clara0.09141336.030151534.001150.01825.02950.0705.0040338229344.074216e+09...FalseFalse0010.000010.00
1.05481074.03046790.75925.01895.03850.0515.7540139461564.075598e+09...FalseFalse0010.000010.00
2.0552994.03079563.001250.02395.05364.0703.7540121265854.075490e+09...FalseFalse0010.000010.00
3.05661131.53075579.501100.03190.05600.0912.5040164380524.074660e+09...FalseFalse0010.000010.00
4.05751029.53072551.002450.03400.09000.01287.5040142831674.075958e+09...FalseFalse0010.000000.00
5.06761617.030511438.003000.06100.08000.02675.0040245472884.073086e+09...FalseFalse0010.000010.00
Solano0.014021433.01676137.00650.0725.01338.0344.0040459071864.076329e+09...FalseFalse0000.000000.00
1.011351659.02009297.50715.0985.01289.0347.5040368298654.076069e+09...FalseFalse0000.000000.00
2.011301578.02070257.75895.01270.01875.0451.0040298440774.075965e+09...FalseFalse0000.000010.00
3.010101301.02072294.501150.01695.02300.0195.0040167934474.063394e+09...FalseFalse0000.000000.00
4.010171609.02150336.501250.01800.02400.0337.5040167649154.065565e+09...FalseFalse0000.000000.00
5.012741292.0131018.001385.01692.52000.0307.5040493909584.058200e+09...FalseFalse0000.000000.00
Sonoma0.021012239.0234185.501050.01450.02500.0662.5040652883414.073230e+09...FalseFalse0000.000000.00
1.017462228.02639269.00800.01345.01900.0216.0040502638144.071389e+09...FalseFalse0000.000010.00
2.018312144.02723370.501150.01500.02249.0343.7540121622534.072091e+09...FalseFalse0010.000010.00
3.018322247.02720246.001550.02000.03900.0650.0040151360724.069944e+09...FalseFalse0000.000010.00
4.017382198.52515233.502200.02600.05100.0493.7540365413654.065635e+09...FalseFalse0000.000000.00
5.019242177.52283198.502500.02997.53300.0203.7540710963994.072884e+09...FalseFalse0000.000000.00
\n", "

55 rows × 96 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 price \\\n", " min median max q75_q25 min median \n", "county_x bedrooms \n", "Alameda 0.0 1419 1504.5 1893 206.25 650.0 1397.5 \n", " 1.0 1141 1591.0 2146 313.50 825.0 1575.0 \n", " 2.0 1030 1567.0 2149 374.00 1164.0 2000.0 \n", " 3.0 1009 1594.5 2020 316.25 1150.0 2350.0 \n", " 4.0 1034 1685.5 1965 108.75 2800.0 3000.0 \n", " 5.0 1184 1491.0 2015 259.00 2500.0 3250.0 \n", " 8.0 1278 1278.0 1278 0.00 9995.0 9995.0 \n", "Contra Costa 0.0 1436 1436.0 1436 0.00 695.0 695.0 \n", " 1.0 1007 1442.5 2005 455.00 795.0 1591.5 \n", " 2.0 1008 1544.0 2014 385.00 795.0 1850.0 \n", " 3.0 1035 1543.5 2076 371.00 1245.0 1772.5 \n", " 4.0 1011 1578.5 2147 427.75 1595.0 2045.0 \n", " 5.0 1291 1567.0 1895 413.25 1900.0 2125.0 \n", "Marin 0.0 1784 2054.0 2366 309.00 1125.0 1400.0 \n", " 1.0 1795 2033.0 2722 282.50 975.0 1862.0 \n", " 2.0 1741 2196.5 2726 424.00 1665.0 2335.5 \n", " 3.0 1742 2299.0 2724 417.50 1671.0 3290.0 \n", " 4.0 1979 2330.0 2867 387.50 3000.0 5850.0 \n", " 5.0 1792 2171.0 2633 284.00 4200.0 5700.0 \n", "Napa 0.0 1922 1922.5 1923 0.50 668.0 668.0 \n", " 1.0 1856 2121.0 2344 316.00 1015.0 1289.0 \n", " 2.0 1739 2173.0 2380 204.75 1295.0 1835.0 \n", " 3.0 1855 2109.5 2634 387.50 1400.0 2150.0 \n", " 4.0 1930 2288.0 2368 87.00 2250.0 2650.0 \n", " 5.0 2376 2376.0 2376 0.00 2650.0 2650.0 \n", "San Francisco 0.0 26 191.5 1150 251.50 1000.0 2486.0 \n", " 1.0 7 371.5 1229 328.50 850.0 3027.0 \n", " 2.0 8 478.0 1148 420.00 1800.0 4200.0 \n", " 3.0 39 380.0 930 512.00 3000.0 5200.0 \n", " 4.0 82 532.5 1227 428.50 3500.0 5450.0 \n", "San Mateo 0.0 58 2780.0 2949 197.00 995.0 1800.0 \n", " 1.0 56 2693.0 3087 299.00 1250.0 2150.0 \n", " 2.0 1249 2700.0 3086 293.50 1877.0 2700.0 \n", " 3.0 64 2729.0 3082 506.00 1500.0 3400.0 \n", " 4.0 74 2919.5 3081 162.00 3500.0 4085.0 \n", " 5.0 2947 2995.5 3059 30.25 3500.0 4149.5 \n", " 6.0 2809 2809.0 2809 0.00 7475.0 7475.0 \n", "Santa Clara 0.0 914 1336.0 3015 1534.00 1150.0 1825.0 \n", " 1.0 548 1074.0 3046 790.75 925.0 1895.0 \n", " 2.0 552 994.0 3079 563.00 1250.0 2395.0 \n", " 3.0 566 1131.5 3075 579.50 1100.0 3190.0 \n", " 4.0 575 1029.5 3072 551.00 2450.0 3400.0 \n", " 5.0 676 1617.0 3051 1438.00 3000.0 6100.0 \n", "Solano 0.0 1402 1433.0 1676 137.00 650.0 725.0 \n", " 1.0 1135 1659.0 2009 297.50 715.0 985.0 \n", " 2.0 1130 1578.0 2070 257.75 895.0 1270.0 \n", " 3.0 1010 1301.0 2072 294.50 1150.0 1695.0 \n", " 4.0 1017 1609.0 2150 336.50 1250.0 1800.0 \n", " 5.0 1274 1292.0 1310 18.00 1385.0 1692.5 \n", "Sonoma 0.0 2101 2239.0 2341 85.50 1050.0 1450.0 \n", " 1.0 1746 2228.0 2639 269.00 800.0 1345.0 \n", " 2.0 1831 2144.0 2723 370.50 1150.0 1500.0 \n", " 3.0 1832 2247.0 2720 246.00 1550.0 2000.0 \n", " 4.0 1738 2198.5 2515 233.50 2200.0 2600.0 \n", " 5.0 1924 2177.5 2283 198.50 2500.0 2997.5 \n", "\n", " pid ... \\\n", " max q75_q25 min median ... \n", "county_x bedrooms ... \n", "Alameda 0.0 1536.0 412.50 4028984168 4.076076e+09 ... \n", " 1.0 2065.0 355.00 4033519017 4.076038e+09 ... \n", " 2.0 6000.0 513.25 4030650511 4.076081e+09 ... \n", " 3.0 4250.0 634.75 4012621573 4.076045e+09 ... \n", " 4.0 4150.0 350.00 4060709125 4.073022e+09 ... \n", " 5.0 5995.0 1300.00 4056233066 4.075765e+09 ... \n", " 8.0 9995.0 0.00 4076580106 4.076580e+09 ... \n", "Contra Costa 0.0 695.0 0.00 4052331595 4.052332e+09 ... \n", " 1.0 1952.0 519.50 4014589145 4.076203e+09 ... \n", " 2.0 2580.0 865.00 4014234759 4.076073e+09 ... \n", " 3.0 2900.0 400.00 4022685227 4.075703e+09 ... \n", " 4.0 5200.0 583.75 4016769441 4.076052e+09 ... \n", " 5.0 2895.0 300.00 4021722521 4.057808e+09 ... \n", "Marin 0.0 1495.0 205.00 4039708493 4.065259e+09 ... \n", " 1.0 3200.0 618.50 4049261309 4.074121e+09 ... \n", " 2.0 3995.0 795.00 4018255201 4.070919e+09 ... \n", " 3.0 7850.0 1050.00 4013956927 4.070811e+09 ... \n", " 4.0 8500.0 2400.00 4024826967 4.068957e+09 ... \n", " 5.0 8200.0 3000.00 4069165655 4.071153e+09 ... \n", "Napa 0.0 668.0 0.00 4073943819 4.074564e+09 ... \n", " 1.0 2300.0 751.00 4071388326 4.074047e+09 ... \n", " 2.0 2500.0 652.50 4014809974 4.071540e+09 ... \n", " 3.0 4200.0 512.50 4012930613 4.071377e+09 ... \n", " 4.0 4100.0 300.00 4021769495 4.067778e+09 ... \n", " 5.0 2650.0 0.00 4058033895 4.058034e+09 ... \n", "San Francisco 0.0 5250.0 702.25 4038003428 4.075042e+09 ... \n", " 1.0 5800.0 712.75 4012054934 4.073881e+09 ... \n", " 2.0 8450.0 1325.00 4012705894 4.073902e+09 ... \n", " 3.0 9999.0 3530.00 4024785317 4.064493e+09 ... \n", " 4.0 9950.0 1776.25 4025500393 4.061193e+09 ... \n", "San Mateo 0.0 2400.0 447.00 4073190555 4.074070e+09 ... \n", " 1.0 5200.0 436.00 4019210216 4.073924e+09 ... \n", " 2.0 3990.0 607.00 4028397524 4.074092e+09 ... \n", " 3.0 5999.0 1000.00 4013352351 4.073636e+09 ... \n", " 4.0 8950.0 1537.50 4034829995 4.072421e+09 ... \n", " 5.0 8000.0 1650.75 4037041032 4.072226e+09 ... \n", " 6.0 7475.0 0.00 4076500244 4.076500e+09 ... \n", "Santa Clara 0.0 2950.0 705.00 4033822934 4.074216e+09 ... \n", " 1.0 3850.0 515.75 4013946156 4.075598e+09 ... \n", " 2.0 5364.0 703.75 4012126585 4.075490e+09 ... \n", " 3.0 5600.0 912.50 4016438052 4.074660e+09 ... \n", " 4.0 9000.0 1287.50 4014283167 4.075958e+09 ... \n", " 5.0 8000.0 2675.00 4024547288 4.073086e+09 ... \n", "Solano 0.0 1338.0 344.00 4045907186 4.076329e+09 ... \n", " 1.0 1289.0 347.50 4036829865 4.076069e+09 ... \n", " 2.0 1875.0 451.00 4029844077 4.075965e+09 ... \n", " 3.0 2300.0 195.00 4016793447 4.063394e+09 ... \n", " 4.0 2400.0 337.50 4016764915 4.065565e+09 ... \n", " 5.0 2000.0 307.50 4049390958 4.058200e+09 ... \n", "Sonoma 0.0 2500.0 662.50 4065288341 4.073230e+09 ... \n", " 1.0 1900.0 216.00 4050263814 4.071389e+09 ... \n", " 2.0 2249.0 343.75 4012162253 4.072091e+09 ... \n", " 3.0 3900.0 650.00 4015136072 4.069944e+09 ... \n", " 4.0 5100.0 493.75 4036541365 4.065635e+09 ... \n", " 5.0 3300.0 203.75 4071096399 4.072884e+09 ... \n", "\n", " outlier view walk \\\n", " max q75_q25 min median max q75_q25 min median \n", "county_x bedrooms \n", "Alameda 0.0 False False 0 0 0 0.00 0 0 \n", " 1.0 False False 0 0 0 0.00 0 0 \n", " 2.0 False False 0 0 1 0.00 0 0 \n", " 3.0 False False 0 0 1 0.00 0 0 \n", " 4.0 False False 0 0 0 0.00 0 0 \n", " 5.0 False False 0 0 1 0.00 0 0 \n", " 8.0 False False 0 0 0 0.00 0 0 \n", "Contra Costa 0.0 False False 0 0 0 0.00 1 1 \n", " 1.0 False False 0 0 1 0.00 0 0 \n", " 2.0 False False 0 0 1 0.00 0 0 \n", " 3.0 False False 0 0 0 0.00 0 0 \n", " 4.0 False False 0 0 1 0.00 0 0 \n", " 5.0 False False 0 0 1 0.00 0 0 \n", "Marin 0.0 False False 0 0 1 0.00 0 0 \n", " 1.0 False False 0 0 1 0.00 0 0 \n", " 2.0 False False 0 0 1 1.00 0 0 \n", " 3.0 False False 0 0 1 0.00 0 0 \n", " 4.0 False False 0 0 1 0.00 0 0 \n", " 5.0 False False 0 0 1 0.00 0 0 \n", "Napa 0.0 False False 0 0 0 0.00 0 0 \n", " 1.0 False False 0 0 0 0.00 0 0 \n", " 2.0 False False 0 0 0 0.00 0 0 \n", " 3.0 False False 0 0 1 0.00 0 0 \n", " 4.0 False False 0 0 0 0.00 0 0 \n", " 5.0 False False 0 0 0 0.00 0 0 \n", "San Francisco 0.0 False False 0 0 1 0.00 0 0 \n", " 1.0 False False 0 0 1 0.00 0 0 \n", " 2.0 False False 0 0 1 1.00 0 0 \n", " 3.0 False False 0 0 1 0.25 0 0 \n", " 4.0 False False 0 0 1 0.25 0 0 \n", "San Mateo 0.0 False False 0 0 0 0.00 0 0 \n", " 1.0 False False 0 0 1 0.00 0 0 \n", " 2.0 False False 0 0 1 0.00 0 0 \n", " 3.0 False False 0 0 1 0.00 0 0 \n", " 4.0 False False 0 0 1 1.00 0 0 \n", " 5.0 False False 0 0 1 0.25 0 0 \n", " 6.0 False False 1 1 1 0.00 0 0 \n", "Santa Clara 0.0 False False 0 0 1 0.00 0 0 \n", " 1.0 False False 0 0 1 0.00 0 0 \n", " 2.0 False False 0 0 1 0.00 0 0 \n", " 3.0 False False 0 0 1 0.00 0 0 \n", " 4.0 False False 0 0 1 0.00 0 0 \n", " 5.0 False False 0 0 1 0.00 0 0 \n", "Solano 0.0 False False 0 0 0 0.00 0 0 \n", " 1.0 False False 0 0 0 0.00 0 0 \n", " 2.0 False False 0 0 0 0.00 0 0 \n", " 3.0 False False 0 0 0 0.00 0 0 \n", " 4.0 False False 0 0 0 0.00 0 0 \n", " 5.0 False False 0 0 0 0.00 0 0 \n", "Sonoma 0.0 False False 0 0 0 0.00 0 0 \n", " 1.0 False False 0 0 0 0.00 0 0 \n", " 2.0 False False 0 0 1 0.00 0 0 \n", " 3.0 False False 0 0 0 0.00 0 0 \n", " 4.0 False False 0 0 0 0.00 0 0 \n", " 5.0 False False 0 0 0 0.00 0 0 \n", "\n", " \n", " max q75_q25 \n", "county_x bedrooms \n", "Alameda 0.0 0 0.00 \n", " 1.0 1 0.00 \n", " 2.0 1 0.00 \n", " 3.0 1 0.00 \n", " 4.0 0 0.00 \n", " 5.0 0 0.00 \n", " 8.0 0 0.00 \n", "Contra Costa 0.0 1 0.00 \n", " 1.0 1 0.00 \n", " 2.0 1 0.00 \n", " 3.0 0 0.00 \n", " 4.0 0 0.00 \n", " 5.0 0 0.00 \n", "Marin 0.0 0 0.00 \n", " 1.0 1 0.00 \n", " 2.0 1 0.00 \n", " 3.0 0 0.00 \n", " 4.0 0 0.00 \n", " 5.0 0 0.00 \n", "Napa 0.0 0 0.00 \n", " 1.0 0 0.00 \n", " 2.0 0 0.00 \n", " 3.0 1 0.75 \n", " 4.0 0 0.00 \n", " 5.0 0 0.00 \n", "San Francisco 0.0 1 0.00 \n", " 1.0 1 0.00 \n", " 2.0 0 0.00 \n", " 3.0 1 0.00 \n", " 4.0 0 0.00 \n", "San Mateo 0.0 1 0.00 \n", " 1.0 1 0.00 \n", " 2.0 1 0.00 \n", " 3.0 1 0.00 \n", " 4.0 0 0.00 \n", " 5.0 0 0.00 \n", " 6.0 0 0.00 \n", "Santa Clara 0.0 1 0.00 \n", " 1.0 1 0.00 \n", " 2.0 1 0.00 \n", " 3.0 1 0.00 \n", " 4.0 0 0.00 \n", " 5.0 1 0.00 \n", "Solano 0.0 0 0.00 \n", " 1.0 0 0.00 \n", " 2.0 1 0.00 \n", " 3.0 0 0.00 \n", " 4.0 0 0.00 \n", " 5.0 0 0.00 \n", "Sonoma 0.0 0 0.00 \n", " 1.0 1 0.00 \n", " 2.0 1 0.00 \n", " 3.0 1 0.00 \n", " 4.0 0 0.00 \n", " 5.0 0 0.00 \n", "\n", "[55 rows x 96 columns]" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f = ['min', 'median', 'max', q75_q25]\n", "gr2.agg(f)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the pivot_table syntax to create a table of max prices by county_x by bedrooms" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "rents.pivot_table(index='county_x', columns='bedrooms', values='price')" ] } ], "metadata": { "kernelspec": { "display_name": "Python [default]", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.3" } }, "nbformat": 4, "nbformat_minor": 1 }