Skip to content

Instantly share code, notes, and snippets.

@andy-esch
Last active August 29, 2015 14:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andy-esch/b2475c95a23c5e070264 to your computer and use it in GitHub Desktop.
Save andy-esch/b2475c95a23c5e070264 to your computer and use it in GitHub Desktop.
instamaps
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pecan Cookies\n",
"\n",
"### Conditions for making maps based on the content in a column\n",
"\n",
"1. **Category** -- any type of geometry\n",
"\n",
" + Is data type boolean (`true`, `false`, `null`) or string?\n",
" + If no, it's not a **category** map\n",
" + If yes, is x% of the data non-`null`?\n",
" + If yes, is x% of the data in the first 10 columns?\n",
" + Column name content scoring\n",
" + Histogram analysis (distribution shape)\n",
" + Check later if needed: Sparse versus dense (points per pixels threshold)\n",
"\n",
"2. **Torque** -- point type geometry\n",
"\n",
" + If there's a date type column, make a basic torque map\n",
" + If there's a date type column and a category with a high `w`, make a torque category map\n",
" + If there's a number column where the numbers are increasing monotonically and there is no date column, make a torque map off of this column\n",
"\n",
"3. **Choropleth** (any type of geometry) or **Bubble** (point type)\n",
"\n",
" + If number of distinct values is greater than three, then make a choropleth\n",
" + If distribution is an L or J, use a gradual color ramp and head/tails quantification\n",
" + If distribution is an A or U, use a divergent color ramp and jenks quantification\n",
" + If data is an F, use a gradual color ramp and equal interval or quantile quantification\n",
"\n",
"![in a diagram!](http://i.imgur.com/lSOJGLk.png)\n",
"\n",
"#### Methods\n",
"1. Look at the data as a histogram in seven bins of equal interval\n",
"2. Classify distributions according to [Galtung's Classification](http://en.wikipedia.org/wiki/Multimodal_distribution#Galtung.27s_classification)\n",
"\n",
"#### Ideas\n",
"\n",
"1. Based on distribution in equal interval, guess the best quantification method\n",
"2. Generate different distributions (binormal, Poisson, gamma, pareto, powerlaw)\n",
"3. Classify distributions of data into:\n",
" 1. Unimodal (A)\n",
" 2. Decay left (J)\n",
" 3. Bimodal (U)\n",
" 4. Multimodal (S)\n",
" 5. Decay right (L)\n",
" 6. Flat (F)\n",
"4. Explore how kurtosis effects the quantification methods -- is this taken care of by looking at thresholds as small as 5%?\n",
"5. Machine learning classification: classify columns by hand as suitable or unsuitable for visualization and add this as an additional column in the metrics data set. Use this as a training set to build up a decision model for test sets...\n",
"6. Normalization: looking at the columns, find one that may be population by the variations in spellings\n",
"7. Create polygon choropleths that are normalized against: the area of the polygon or some other parameters associated with that row (such as autodetecting a population column?)\n",
" + What units? $m^2$, $km^2$?\n",
" + How do you know when it is ok to normalize and not normalize? [You don't want to reflect a population map if your intention is highlighting another variable](http://en.wikipedia.org/wiki/Choropleth_map).\n",
" - Case 1: Census District Data -- most columns should be normalized by population, but normalizing by area may not make sense\n",
" - Case 2: Map Pluto -- it doesn't make sense to normalize any of it by the area of the building footprint"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: pylab import has clobbered these variables: ['sum']\n",
"`%matplotlib` prevents importing * from pylab and numpy\n"
]
}
],
"source": [
"%pylab inline\n",
"import pandas as pd\n",
"from urllib.request import urlopen\n",
"from scipy.stats import describe as desc\n",
"from pandas import DataFrame, Series\n",
"import json\n",
"\n",
"debug = False\n",
"\n",
"def getRowInfo(acct,tableName):\n",
" return 'http://' + acct + '.cartodb.com/api/v2/sql?q=SELECT%20*%20FROM%20' + tableName + '%20LIMIT%200&format=json'\n",
"\n",
"def mkUrl(acct,tableName,cols='*',limit='',fileType='csv'):\n",
" \"\"\"\n",
" acct: cartodb account name\n",
" tableName: name of table in account\n",
" geom: geometry type for normalization purposes (optional)\n",
" cols: columns of data to pull (optional, default: * (all columns))\n",
" limit: number of rows requested (optional, default: all rows)\n",
" fileType: format of returned data (optional, default: csv)\n",
" \"\"\"\n",
" stem = 'http://' + acct + '.cartodb.com/api/v2/sql?q='\n",
"\n",
" params = '&format=' + fileType + \\\n",
" '&filename=' + tableName\n",
"\n",
" query = 'SELECT%20' + cols + '%20FROM%20' + tableName + '%20' + limit\n",
" url = stem + query + params\n",
"\n",
" return url\n",
"\n",
"def normalizeCols(cols):\n",
" m = {ord(','): '/a.area,'}\n",
" updatedCols = cols.translate(m) + '/a.area'\n",
" return updatedCols\n",
"\n",
"def mkGeoUrl(acct,tableName):\n",
" return 'http://' + acct + '.cartodb.com/api/v2/sql' \\\n",
" '?q=SELECT%20ST_GeometryType(the_geom)%20geometry_type%20FROM%20' + tableName + '%20WHERE%20the_geom%20IS%20NOT%20NULL%20LIMIT%201' \\\n",
" '&format=json'\n",
"\n",
"def simplifyType(g):\n",
" return { \n",
" 'st_multipolygon': 'polygon',\n",
" 'st_polygon': 'polygon',\n",
" 'st_multilinestring': 'line',\n",
" 'st_linestring': 'line',\n",
" 'st_multipoint': 'point',\n",
" 'st_point': 'point'\n",
" }[g.lower()]"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'http://eschbacher.cartodb.com/api/v2/sql?q=SELECT%20mag,depth,place%20FROM%20all_month%20&format=json&filename=all_month'"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mkUrl('eschbacher','all_month',cols='mag,depth,place',fileType='json')"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"testUrl1 = 'http://eschbacher.cartodb.com/api/v2/sql?q=SELECT%20mag,depth,place%20FROM%20all_month%20&format=json&filename=all_month'\n",
"testUrl2 = 'http://eschbacher.cartodb.com/api/v2/sql?q=WITH%20a%20AS%20(SELECT%201e6*ST_Area(the_geom::geography)%20area%20FROM%20all_month)%20SELECT%20mag/a.area,depth/a.area,place/a.area%20FROM%20all_month,a%20&format=csv&filename=all_month'\n",
"\n",
"assert mkUrl('eschbacher','all_month',cols='mag,depth,place',fileType='json') == testUrl1\n",
"assert normalizeCols('mag,depth,place') == 'mag/a.area,depth/a.area,place/a.area'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Category Maps -- Map Pluto Manhattan\n",
"### Grab all strings and bools"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Columns (40) of type 'string' or 'boolean':\n",
" ['firecomp', 'ownername', 'taxmap', 'zonedist3', 'builtcode', 'schooldist', 'spdist2', 'ltdheight', 'lottype', 'areasource', 'appdate', 'splitzone', 'ownertype', 'address', 'borough', 'overlay2', 'irrlotcode', 'bsmtcode', 'landmark', 'overlay1', 'cb2010', 'zonedist1', 'ct2010', 'plutomapid', 'bldgclass', 'zmcode', 'zonedist2', 'allzoning2', 'proxcode', 'zonemap', 'histdist', 'edesignum', 'zonedist4', 'version', 'tract2010', 'allzoning1', 'spdist1', 'sanborn', 'landuse', 'ext']\n"
]
}
],
"source": [
"acctName = 'common-data'\n",
"tableName = 'mnmappluto'\n",
"fileName = 'mnbuildings'\n",
"\n",
"# Grab column information\n",
"url = getRowInfo(acctName,tableName)\n",
"if debug: print(url)\n",
"response = urlopen(url).readall().decode('utf-8')\n",
"column_data = json.loads(response)\n",
"\n",
"# Filter out the string and boolean columns\n",
"str_columns = []\n",
"for c in column_data['fields']:\n",
" if ( column_data['fields'][c]['type'] in ('string','boolean') ):\n",
" str_columns.append(c)\n",
"\n",
"print(\"Columns (\" + str(len(str_columns)) + \") of type 'string' or 'boolean':\\n\",str_columns)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"http://common-data.cartodb.com/api/v2/sql?q=SELECT%20firecomp,ownername,taxmap,zonedist3,builtcode,schooldist,spdist2,ltdheight,lottype,areasource,appdate,splitzone,ownertype,address,borough,overlay2,irrlotcode,bsmtcode,landmark,overlay1,cb2010,zonedist1,ct2010,plutomapid,bldgclass,zmcode,zonedist2,allzoning2,proxcode,zonemap,histdist,edesignum,zonedist4,version,tract2010,allzoning1,spdist1,sanborn,landuse,ext%20FROM%20mnmappluto%20&format=csv&filename=mnmappluto\n"
]
}
],
"source": [
"# Create API request\n",
"a = mkUrl(acctName,tableName,cols=','.join(str_columns))\n",
"print(a)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>firecomp</th>\n",
" <th>ownername</th>\n",
" <th>taxmap</th>\n",
" <th>zonedist3</th>\n",
" <th>builtcode</th>\n",
" <th>schooldist</th>\n",
" <th>spdist2</th>\n",
" <th>ltdheight</th>\n",
" <th>lottype</th>\n",
" <th>areasource</th>\n",
" <th>...</th>\n",
" <th>histdist</th>\n",
" <th>edesignum</th>\n",
" <th>zonedist4</th>\n",
" <th>version</th>\n",
" <th>tract2010</th>\n",
" <th>allzoning1</th>\n",
" <th>spdist1</th>\n",
" <th>sanborn</th>\n",
" <th>landuse</th>\n",
" <th>ext</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>E095</td>\n",
" <td>PARKS AND RECREATION</td>\n",
" <td>10803</td>\n",
" <td>NaN</td>\n",
" <td>E</td>\n",
" <td>6</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>14v1</td>\n",
" <td>287</td>\n",
" <td>PARK</td>\n",
" <td>NaN</td>\n",
" <td>112 036</td>\n",
" <td>9</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>E008</td>\n",
" <td>NEW 56-79 IG ASSOCIAT</td>\n",
" <td>10505</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>14v1</td>\n",
" <td>11203</td>\n",
" <td>C5-2/MID</td>\n",
" <td>MID</td>\n",
" <td>106E044</td>\n",
" <td>4</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>L005</td>\n",
" <td>ANDROMACHE CAPSIS</td>\n",
" <td>10210</td>\n",
" <td>NaN</td>\n",
" <td>E</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>Greenwich Village</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>14v1</td>\n",
" <td>73</td>\n",
" <td>R6</td>\n",
" <td>NaN</td>\n",
" <td>103 015</td>\n",
" <td>2</td>\n",
" <td>E</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>E074</td>\n",
" <td>WILKEY, WAYNE C.</td>\n",
" <td>10408</td>\n",
" <td>NaN</td>\n",
" <td>E</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>Upper West Side/Central Park West</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>14v1</td>\n",
" <td>165</td>\n",
" <td>R8B</td>\n",
" <td>NaN</td>\n",
" <td>107S012</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>E053</td>\n",
" <td>169-175 OPERATING LLC</td>\n",
" <td>10603</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>4</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>14v1</td>\n",
" <td>166</td>\n",
" <td>C1-5/R7-2</td>\n",
" <td>NaN</td>\n",
" <td>108S046</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 40 columns</p>\n",
"</div>"
],
"text/plain": [
" firecomp ownername taxmap zonedist3 builtcode schooldist \\\n",
"0 E095 PARKS AND RECREATION 10803 NaN E 6 \n",
"1 E008 NEW 56-79 IG ASSOCIAT 10505 NaN NaN 2 \n",
"2 L005 ANDROMACHE CAPSIS 10210 NaN E 2 \n",
"3 E074 WILKEY, WAYNE C. 10408 NaN E 3 \n",
"4 E053 169-175 OPERATING LLC 10603 NaN NaN 4 \n",
"\n",
" spdist2 ltdheight lottype areasource ... \\\n",
"0 NaN NaN 5 7 ... \n",
"1 NaN NaN 5 7 ... \n",
"2 NaN NaN 5 7 ... \n",
"3 NaN NaN 5 7 ... \n",
"4 NaN NaN 5 7 ... \n",
"\n",
" histdist edesignum zonedist4 version tract2010 \\\n",
"0 NaN NaN NaN 14v1 287 \n",
"1 NaN NaN NaN 14v1 11203 \n",
"2 Greenwich Village NaN NaN 14v1 73 \n",
"3 Upper West Side/Central Park West NaN NaN 14v1 165 \n",
"4 NaN NaN NaN 14v1 166 \n",
"\n",
" allzoning1 spdist1 sanborn landuse ext \n",
"0 PARK NaN 112 036 9 NaN \n",
"1 C5-2/MID MID 106E044 4 NaN \n",
"2 R6 NaN 103 015 2 E \n",
"3 R8B NaN 107S012 1 NaN \n",
"4 C1-5/R7-2 NaN 108S046 2 NaN \n",
"\n",
"[5 rows x 40 columns]"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Retrieve only approved columns\n",
"ad = pd.read_csv(a)\n",
"ad.head()"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>perc_nulls</th>\n",
" <th>uniques</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>version</th>\n",
" <td>0.000000</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>borough</th>\n",
" <td>0.000000</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>builtcode</th>\n",
" <td>0.461226</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>zmcode</th>\n",
" <td>0.975402</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>plutomapid</th>\n",
" <td>0.000000</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ltdheight</th>\n",
" <td>0.979622</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>irrlotcode</th>\n",
" <td>0.001516</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>splitzone</th>\n",
" <td>0.001516</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ext</th>\n",
" <td>0.800233</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>proxcode</th>\n",
" <td>0.001516</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>areasource</th>\n",
" <td>0.000000</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>overlay2</th>\n",
" <td>0.999324</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>zonedist4</th>\n",
" <td>0.999883</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ownertype</th>\n",
" <td>0.584425</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bsmtcode</th>\n",
" <td>0.001516</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>overlay1</th>\n",
" <td>0.852600</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>schooldist</th>\n",
" <td>0.002425</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>spdist2</th>\n",
" <td>0.998881</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>lottype</th>\n",
" <td>0.001516</td>\n",
" <td>11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>landuse</th>\n",
" <td>0.003987</td>\n",
" <td>12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>zonemap</th>\n",
" <td>0.000000</td>\n",
" <td>20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>spdist1</th>\n",
" <td>0.814269</td>\n",
" <td>27</td>\n",
" </tr>\n",
" <tr>\n",
" <th>zonedist3</th>\n",
" <td>0.997832</td>\n",
" <td>39</td>\n",
" </tr>\n",
" <tr>\n",
" <th>histdist</th>\n",
" <td>0.747284</td>\n",
" <td>73</td>\n",
" </tr>\n",
" <tr>\n",
" <th>firecomp</th>\n",
" <td>0.003357</td>\n",
" <td>77</td>\n",
" </tr>\n",
" <tr>\n",
" <th>taxmap</th>\n",
" <td>0.001212</td>\n",
" <td>79</td>\n",
" </tr>\n",
" <tr>\n",
" <th>zonedist2</th>\n",
" <td>0.913896</td>\n",
" <td>85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>zonedist1</th>\n",
" <td>0.001329</td>\n",
" <td>96</td>\n",
" </tr>\n",
" <tr>\n",
" <th>allzoning2</th>\n",
" <td>0.913896</td>\n",
" <td>119</td>\n",
" </tr>\n",
" <tr>\n",
" <th>edesignum</th>\n",
" <td>0.960084</td>\n",
" <td>126</td>\n",
" </tr>\n",
" <tr>\n",
" <th>cb2010</th>\n",
" <td>0.008837</td>\n",
" <td>141</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bldgclass</th>\n",
" <td>0.001516</td>\n",
" <td>196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ct2010</th>\n",
" <td>0.003987</td>\n",
" <td>289</td>\n",
" </tr>\n",
" <tr>\n",
" <th>tract2010</th>\n",
" <td>0.000000</td>\n",
" <td>289</td>\n",
" </tr>\n",
" <tr>\n",
" <th>allzoning1</th>\n",
" <td>0.001329</td>\n",
" <td>325</td>\n",
" </tr>\n",
" <tr>\n",
" <th>landmark</th>\n",
" <td>0.979855</td>\n",
" <td>767</td>\n",
" </tr>\n",
" <tr>\n",
" <th>sanborn</th>\n",
" <td>0.001212</td>\n",
" <td>1077</td>\n",
" </tr>\n",
" <tr>\n",
" <th>appdate</th>\n",
" <td>0.898088</td>\n",
" <td>1396</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ownername</th>\n",
" <td>0.034111</td>\n",
" <td>33355</td>\n",
" </tr>\n",
" <tr>\n",
" <th>address</th>\n",
" <td>0.001539</td>\n",
" <td>42276</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" perc_nulls uniques\n",
"version 0.000000 1\n",
"borough 0.000000 1\n",
"builtcode 0.461226 2\n",
"zmcode 0.975402 2\n",
"plutomapid 0.000000 2\n",
"ltdheight 0.979622 3\n",
"irrlotcode 0.001516 3\n",
"splitzone 0.001516 3\n",
"ext 0.800233 4\n",
"proxcode 0.001516 5\n",
"areasource 0.000000 5\n",
"overlay2 0.999324 5\n",
"zonedist4 0.999883 6\n",
"ownertype 0.584425 6\n",
"bsmtcode 0.001516 7\n",
"overlay1 0.852600 8\n",
"schooldist 0.002425 8\n",
"spdist2 0.998881 10\n",
"lottype 0.001516 11\n",
"landuse 0.003987 12\n",
"zonemap 0.000000 20\n",
"spdist1 0.814269 27\n",
"zonedist3 0.997832 39\n",
"histdist 0.747284 73\n",
"firecomp 0.003357 77\n",
"taxmap 0.001212 79\n",
"zonedist2 0.913896 85\n",
"zonedist1 0.001329 96\n",
"allzoning2 0.913896 119\n",
"edesignum 0.960084 126\n",
"cb2010 0.008837 141\n",
"bldgclass 0.001516 196\n",
"ct2010 0.003987 289\n",
"tract2010 0.000000 289\n",
"allzoning1 0.001329 325\n",
"landmark 0.979855 767\n",
"sanborn 0.001212 1077\n",
"appdate 0.898088 1396\n",
"ownername 0.034111 33355\n",
"address 0.001539 42276"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"metrics = DataFrame({'uniques': [len(ad[c].unique()) for c in ad],\n",
" 'perc_nulls': [ad[c].isnull().sum() / len(ad) for c in ad]\n",
" },\n",
" index=ad.columns)\n",
"\n",
"metrics.sort('uniques')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Making the cut\n",
"\n",
"Making the cut means:\n",
"1. The number of `nan`\\\\`null`s is smaller than 80%\n",
"2. Number of unique entries is greater than one and less than eleven"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>perc_nulls</th>\n",
" <th>uniques</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>builtcode</th>\n",
" <td>0.461226</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>plutomapid</th>\n",
" <td>0.000000</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>splitzone</th>\n",
" <td>0.001516</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>irrlotcode</th>\n",
" <td>0.001516</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>areasource</th>\n",
" <td>0.000000</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>proxcode</th>\n",
" <td>0.001516</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ownertype</th>\n",
" <td>0.584425</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bsmtcode</th>\n",
" <td>0.001516</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>schooldist</th>\n",
" <td>0.002425</td>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" perc_nulls uniques\n",
"builtcode 0.461226 2\n",
"plutomapid 0.000000 2\n",
"splitzone 0.001516 3\n",
"irrlotcode 0.001516 3\n",
"areasource 0.000000 5\n",
"proxcode 0.001516 5\n",
"ownertype 0.584425 6\n",
"bsmtcode 0.001516 7\n",
"schooldist 0.002425 8"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"decision = (metrics['uniques'] >= 2) & (metrics['uniques'] <= 10) & (metrics['perc_nulls'] < 0.8)\n",
"winners = [c for c in metrics[decision].index]\n",
"metrics[decision].sort('uniques')"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['areasource', 'bsmtcode', 'builtcode', 'irrlotcode', 'ownertype', 'plutomapid', 'proxcode', 'schooldist', 'splitzone']\n"
]
}
],
"source": [
"print(sorted(winners))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"These Maps are here:\n",
" \n",
"<table style=\"width: 900px; height: 900px;\">\n",
"<tr>\n",
"<td><img src=\"http://i.imgur.com/xTTaAUx.png\" /></td><td><img src=\"http://i.imgur.com/wYvbw5p.png\" /></td><td><img src=\"http://i.imgur.com/XXtINJq.png\" /></td></tr>\n",
"<tr><td><img src=\"http://i.imgur.com/ak5DLQJ.png\" /></td><td><img src=\"http://i.imgur.com/YUHpVgb.png\" /></td><td><img src=\"http://i.imgur.com/2iNk9R9.png\" /></td></tr>\n",
"<tr><td><img src=\"http://i.imgur.com/DcKcLCC.png\" /></td><td><img src=\"http://i.imgur.com/yoTO7nf.png\" /></td><td><img src=\"http://i.imgur.com/URc2QRU.png\" /></td></tr>\n",
"</table>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Who shouldn't have made it?\n",
"\n",
"1. `plutomapid`: 2 uniques and no nulls. \n",
"\n",
"**Solution:** We should next filter out data that is very strongly in one column. 95% threshold?\n",
"\n",
"## Who should've made it?\n",
"\n",
"1. `lottype`: failed because of 11 uniques -- visually interesting and the rest of the data can be accessed through infowindows\n",
"\n",
"**Solution:** See if a large proportion is in the first seven modes instead of too strongly weighting the number of unique entries. Maybe 85-90% in the first seven modes?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### How many are in each column?"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"firecomp 23.336442061086505 in 10 bins\n",
"E022 2.772208\n",
"E074 2.518069\n",
"L011 2.483096\n",
"L025 2.452786\n",
"E044 2.392166\n",
"L013 2.231289\n",
"E039 2.217300\n",
"L030 2.212637\n",
"E054 2.098391\n",
"L026 1.958498\n",
"L005 1.949172\n",
"E076 1.918862\n",
"E028 1.918862\n",
"Q018 1.918862\n",
"L022 1.834927\n",
"E053 1.806948\n",
"L040 1.797622\n",
"L012 1.718349\n",
"L014 1.713686\n",
"E008 1.655398\n",
"E024 1.641408\n",
"L028 1.552810\n",
"E058 1.543483\n",
"L035 1.527163\n",
"L016 1.527163\n",
"L018 1.527163\n",
"L023 1.517836\n",
"L007 1.445558\n",
"L034 1.424574\n",
"E005 1.417580\n",
" ... \n",
"L006 1.126137\n",
"E003 1.095827\n",
"E015 1.091163\n",
"L009 1.065516\n",
"E069 1.044533\n",
"E021 1.016554\n",
"E037 0.990907\n",
"E023 0.983912\n",
"E093 0.958265\n",
"L002 0.958265\n",
"E014 0.944276\n",
"L008 0.939613\n",
"E095 0.890651\n",
"L024 0.841688\n",
"L021 0.825367\n",
"L004 0.816041\n",
"L036 0.799720\n",
"E065 0.757752\n",
"E007 0.729774\n",
"E026 0.634180\n",
"L001 0.620191\n",
"E006 0.536256\n",
"E081 0.510609\n",
"L010 0.384705\n",
"E034 0.373047\n",
"NaN 0.335743\n",
"L015 0.303101\n",
"E010 0.265796\n",
"E004 0.263465\n",
"E260 0.034973\n",
"dtype: float64\n",
"ownername 7.318722312893448 in 10 bins\n",
"NaN 3.411052\n",
"PARKS AND RECREATION 0.965260\n",
"HOUSING PRESERVATION 0.690138\n",
"OWNER / AGENT 0.487293\n",
"NEW YORK CITY HOUSING 0.417347\n",
"NYC DEPARTMENT OF EDU 0.382374\n",
"TRUSTEES OF COLUMBIA 0.382374\n",
"DEPT OF SMALL BUSINES 0.207508\n",
"D C A S 0.205176\n",
"NEW YORK UNIVERSITY 0.170203\n",
"CITY OF NEW YORK 0.139893\n",
"FIRE DEPARTMENT 0.109583\n",
"WILLIAM GOTTLIEB REAL 0.093262\n",
"DEPT OF TRANSPORTATIO 0.093262\n",
"POLICE DEPARTMENT 0.086267\n",
"NYC TRANSIT AUTHORITY 0.076941\n",
"THE TRUSTEES OF COLUM 0.074609\n",
"ROYAL CHARTER PROPERT 0.069946\n",
"PORT AUTHORITY OF NY 0.065283\n",
"YESHIVA UNIVERSITY 0.065283\n",
"JOINTLY OWNED PLAYGRO 0.065283\n",
"NEW YORK PUBLIC LIBRA 0.062952\n",
"SANITATION 0.062952\n",
"THE CITY OF NEW YORK 0.062952\n",
"NEW YORK CITY HSG AUT 0.058289\n",
"THE MANHATTAN LAND TR 0.055957\n",
"MSMC RESIDENTIAL REAL 0.055957\n",
"NYC HOUSING AUTHORITY 0.053626\n",
"DEPT OF GENERAL SERVI 0.051294\n",
"PORT OF NY AUTH 0.048962\n",
" ... \n",
"ST BRIDGETS RC CHURCH 0.002332\n",
"729 WEST 186TH STREET 0.002332\n",
"PSA LESAGE L.L.C. 0.002332\n",
"MARIS JAMES 0.002332\n",
"ARCHIVE PRESERVATIONC 0.002332\n",
"223 FIRST AVE REALTY 0.002332\n",
"1133 5 AVE CORP 0.002332\n",
"TAI FOOK CORP 0.002332\n",
"CORFU REALTY LLC 0.002332\n",
"STREETER, CHARLES 0.002332\n",
"BICICI, GONUL 0.002332\n",
"SEICHO-NO-IE INC 0.002332\n",
"DAVDISON MONTEZ C 0.002332\n",
"153 REALTY CORP 0.002332\n",
"VORNADO LF 50 WEST 57 0.002332\n",
"425 REALTY CO 0.002332\n",
"ROBERT A HELLERMAN 0.002332\n",
"SPRICE INC 0.002332\n",
"307 EAST 77 LLC 0.002332\n",
"APOLLO REALTY CORP 0.002332\n",
"NEW YRK STUDIO SCHLET 0.002332\n",
"12 EAST 78TH STREET L 0.002332\n",
"MCBRIDE, TINA 0.002332\n",
"RIVERA, IVETTE K 0.002332\n",
"BWLOW, LLC 0.002332\n",
"GRAMERCY FIVE 0.002332\n",
"BRIDGE TOWER PLACE CO 0.002332\n",
"LOCAL 798 REALTY CORP 0.002332\n",
"BANNISTER TERRANCE 0.002332\n",
"TWO SPRING ASSOCIATES 0.002332\n",
"dtype: float64\n",
"taxmap 26.56096992305899 in 10 bins\n",
" 10206 3.177897\n",
" 10710 3.161576\n",
" 10306 2.905106\n",
" 10205 2.867801\n",
" 10105 2.595010\n",
" 10704 2.429471\n",
" 10803 2.378177\n",
" 10514 2.352530\n",
" 10207 2.350198\n",
" 10409 2.343204\n",
" 10406 2.296573\n",
" 10603 2.210305\n",
" 10703 2.154348\n",
" 10408 2.112381\n",
" 10304 2.035439\n",
" 10307 2.021450\n",
" 10607 1.956167\n",
" 10210 1.930520\n",
" 10107 1.900210\n",
" 10801 1.888552\n",
" 10804 1.830263\n",
" 10509 1.767312\n",
" 10508 1.702028\n",
" 10208 1.674050\n",
" 10203 1.669387\n",
" 10709 1.604104\n",
" 10516 1.541152\n",
" 10308 1.529494\n",
" 10705 1.517836\n",
" 10506 1.471205\n",
" ... \n",
" 10802 0.832362\n",
" 10201 0.825367\n",
" 10405 0.799720\n",
" 10309 0.778736\n",
" 10701 0.774073\n",
" 10507 0.769410\n",
" 10104 0.729774\n",
" 10604 0.708790\n",
" 10101 0.669154\n",
" 10202 0.638844\n",
" 10503 0.636512\n",
" 10611 0.608533\n",
" 10609 0.589881\n",
" 10402 0.587550\n",
" 10301 0.554908\n",
" 10606 0.550245\n",
" 10610 0.543250\n",
" 10501 0.529261\n",
" 10401 0.454651\n",
" 10102 0.405689\n",
" 10103 0.317090\n",
" 10602 0.298438\n",
" 10505 0.291443\n",
" 10504 0.275122\n",
" 10502 0.219165\n",
" 10106 0.128235\n",
" 1 0.123572\n",
"NaN 0.121240\n",
" 10601 0.116577\n",
" 10310 0.100256\n",
"dtype: float64\n",
"zonedist3 99.89974352996036 in 10 bins\n",
"NaN 99.783166\n",
"R8B 0.032642\n",
"C6-6 0.016321\n",
"R8 0.011658\n",
"C6-1 0.009326\n",
"R10 0.009326\n",
"C2-8 0.009326\n",
"R9X 0.009326\n",
"R7-2 0.009326\n",
"C1-9 0.009326\n",
"R6 0.006995\n",
"C5-2.5 0.006995\n",
"C6-2A 0.006995\n",
"C1-6 0.004663\n",
"C1-9A 0.004663\n",
"R9A 0.004663\n",
"R9 0.004663\n",
"R8A 0.004663\n",
"C1-7 0.004663\n",
"C1-6A 0.004663\n",
"C5-2 0.004663\n",
"R10A 0.002332\n",
"M1-5M 0.002332\n",
"C6-4X 0.002332\n",
"C6-4A 0.002332\n",
"C6-6.5 0.002332\n",
"C6-3X 0.002332\n",
"C6-3A 0.002332\n",
"C1-8X 0.002332\n",
"C6-4 0.002332\n",
"C6-4M 0.002332\n",
"C6-5 0.002332\n",
"M1-5A 0.002332\n",
"C4-7 0.002332\n",
"R7B 0.002332\n",
"C5-1 0.002332\n",
"C8-3 0.002332\n",
"R6A 0.002332\n",
"R7A 0.002332\n",
"dtype: float64\n",
"builtcode 100.0 in 2 bins\n",
"E 53.877361\n",
"NaN 46.122639\n",
"dtype: float64\n",
"schooldist 100.00000000000001 in 8 bins\n",
" 2 52.315225\n",
" 3 14.411285\n",
" 6 10.074609\n",
" 5 9.995337\n",
" 1 7.211471\n",
" 4 5.238983\n",
" 10 0.510609\n",
"NaN 0.242481\n",
"dtype: float64\n",
"spdist2 99.99999999999999 in 10 bins\n",
"NaN 99.888086\n",
"MID 0.039636\n",
"TA 0.023315\n",
"PI 0.018652\n",
"MP 0.016321\n",
"125 0.004663\n",
"MX-15 0.002332\n",
"HY 0.002332\n",
"EC-3 0.002332\n",
"GC 0.002332\n",
"dtype: float64\n",
"ltdheight 100.00000000000001 in 3 bins\n",
"NaN 97.962229\n",
"LH-1A 1.897878\n",
"LH-1 0.139893\n",
"dtype: float64\n",
"lottype 99.9906738167405 in 10 bins\n",
" 5 76.675216\n",
" 3 17.209140\n",
" 0 2.839823\n",
" 4 1.841921\n",
" 1 0.594544\n",
" 2 0.317090\n",
" 9 0.163208\n",
" 6 0.153882\n",
"NaN 0.151550\n",
" 8 0.044299\n",
" 7 0.009326\n",
"dtype: float64\n",
"areasource 100.0 in 5 bins\n",
"7 97.094894\n",
"4 2.692935\n",
"0 0.153882\n",
"1 0.053626\n",
"2 0.004663\n",
"dtype: float64\n",
"appdate 90.4336675215668 in 10 bins\n",
"NaN 89.808813\n",
"12/25/1986 0.102588\n",
"03/15/2001 0.100256\n",
"01/07/1987 0.069946\n",
"01/03/1995 0.067615\n",
"11/15/1990 0.065283\n",
"11/30/1987 0.060620\n",
"12/31/1987 0.053626\n",
"01/08/2003 0.053626\n",
"05/11/2004 0.051294\n",
"12/31/1988 0.051294\n",
"07/11/2013 0.048962\n",
"10/07/1988 0.046631\n",
"07/22/1998 0.046631\n",
"08/18/1998 0.046631\n",
"02/08/1988 0.044299\n",
"02/02/2001 0.044299\n",
"01/08/2008 0.041968\n",
"01/06/1986 0.039636\n",
"04/20/1987 0.039636\n",
"11/01/1988 0.032642\n",
"03/21/2000 0.032642\n",
"11/12/2008 0.032642\n",
"12/08/1988 0.032642\n",
"12/29/2006 0.032642\n",
"04/11/2000 0.032642\n",
"06/08/2007 0.032642\n",
"12/20/1999 0.030310\n",
"12/31/1985 0.030310\n",
"07/22/1989 0.030310\n",
" ... \n",
"02/07/1996 0.002332\n",
"03/07/2006 0.002332\n",
"03/05/2009 0.002332\n",
"08/03/2012 0.002332\n",
"04/19/2012 0.002332\n",
"10/28/2008 0.002332\n",
"09/24/2004 0.002332\n",
"01/27/2010 0.002332\n",
"11/12/1986 0.002332\n",
"04/14/1993 0.002332\n",
"09/17/2002 0.002332\n",
"02/20/1998 0.002332\n",
"02/05/1996 0.002332\n",
"11/22/1995 0.002332\n",
"11/09/1999 0.002332\n",
"10/07/2011 0.002332\n",
"09/20/2011 0.002332\n",
"09/05/2012 0.002332\n",
"09/06/2011 0.002332\n",
"03/26/2012 0.002332\n",
"02/25/2013 0.002332\n",
"12/12/2008 0.002332\n",
"03/18/1988 0.002332\n",
"08/14/2002 0.002332\n",
"07/23/2009 0.002332\n",
"03/31/2005 0.002332\n",
"09/07/2011 0.002332\n",
"04/30/2013 0.002332\n",
"11/05/1993 0.002332\n",
"07/29/2013 0.002332\n",
"dtype: float64\n",
"splitzone 100.0 in 3 bins\n",
"N 91.168104\n",
"Y 8.680345\n",
"NaN 0.151550\n",
"dtype: float64\n",
"ownertype 100.00000000000001 in 6 bins\n",
"NaN 58.442527\n",
"P 33.947307\n",
"C 3.359758\n",
"X 3.275822\n",
"O 0.939613\n",
"M 0.034973\n",
"dtype: float64\n",
"address 0.5362555374213103 in 10 bins\n",
"NaN 0.153882\n",
"F D R DRIVE 0.062952\n",
"MARGINAL STREET 0.062952\n",
"RIVERSIDE DRIVE 0.048962\n",
"ST NICHOLAS AVENUE 0.041968\n",
"2 AVENUE 0.037305\n",
"BROADWAY 0.034973\n",
"12 AVENUE 0.032642\n",
"HARLEM RIVER DRIVE 0.030310\n",
"7 AVENUE 0.030310\n",
"WEST 138 STREET 0.023315\n",
"EAST 8 STREET 0.023315\n",
"1 AVENUE 0.023315\n",
"EAST 5 STREET 0.023315\n",
"EAST 4 STREET 0.023315\n",
"8 AVENUE 0.020984\n",
"9 AVENUE 0.018652\n",
"AMSTERDAM AVENUE 0.018652\n",
"WEST 126 STREET 0.018652\n",
"EAST 6 STREET 0.018652\n",
"EAST 112 STREET 0.016321\n",
"RIVERVIEW TERRACE 0.016321\n",
"FT WASHINGTON AVENUE 0.016321\n",
"WEST END AVENUE 0.013989\n",
"CABRINI BOULEVARD 0.013989\n",
"WEST 135 STREET 0.013989\n",
"AVENUE C 0.013989\n",
"10 AVENUE 0.013989\n",
"3 AVENUE 0.011658\n",
"SOUTH STREET 0.011658\n",
" ... \n",
"107 EAST 7 STREET 0.002332\n",
"262 WEST 136 STREET 0.002332\n",
"132 WEST 87 STREET 0.002332\n",
"764 10 AVENUE 0.002332\n",
"419 EAST 84 STREET 0.002332\n",
"26 BEDFORD STREET 0.002332\n",
"46 WEST 111 STREET 0.002332\n",
"278 MOTT STREET 0.002332\n",
"8 WEST 38 STREET 0.002332\n",
"157 WEST 72 STREET 0.002332\n",
"47 ESSEX STREET 0.002332\n",
"259 WEST 95 STREET 0.002332\n",
"129 EAST 56 STREET 0.002332\n",
"4 ALLEN STREET 0.002332\n",
"617 WEST 168 STREET 0.002332\n",
"79 LAIGHT STREET 0.002332\n",
"23 EAST 92 STREET 0.002332\n",
"48 EAST 74 STREET 0.002332\n",
"346 LEXINGTON AVENUE 0.002332\n",
"29 EAST 2 STREET 0.002332\n",
"747 9 AVENUE 0.002332\n",
"117 WEST 96 STREET 0.002332\n",
"177 EAST HOUSTON STREET 0.002332\n",
"7 ST LUKES PLACE 0.002332\n",
"360 WEST 53 STREET 0.002332\n",
"14 EAST 77 STREET 0.002332\n",
"863 9 AVENUE 0.002332\n",
"112 WEST 78 STREET 0.002332\n",
"125 WEST 116 STREET 0.002332\n",
"108 1 AVENUE 0.002332\n",
"dtype: float64\n",
"borough 100.0 in 1 bins\n",
"MN 100\n",
"dtype: float64\n",
"overlay2 100.0 in 5 bins\n",
"NaN 99.932385\n",
"C2-5 0.025647\n",
"C1-5 0.023315\n",
"C2-4 0.016321\n",
"C1-4 0.002332\n",
"dtype: float64\n",
"irrlotcode 100.0 in 3 bins\n",
"N 76.495687\n",
"Y 23.352763\n",
"NaN 0.151550\n",
"dtype: float64\n",
"bsmtcode 100.0 in 7 bins\n",
" 2 52.830497\n",
" 5 25.483796\n",
" 1 16.775472\n",
" 0 4.593145\n",
"NaN 0.151550\n",
" 4 0.107251\n",
" 3 0.058289\n",
"dtype: float64\n",
"landmark 98.17906271858241 in 10 bins\n",
"NaN 97.985544\n",
"ASTOR ROW 0.062952\n",
"CITY AND SUBURBAN HOMES COMPANY 0.039636\n",
"437-459 WEST 24TH STREET HOUSES 0.025647\n",
"25-41 HARRISON STREET 0.018652\n",
"ROCKEFELLER CENTER VARIOUS SITES 0.013989\n",
"SIDEWALK CLOCK 0.009326\n",
"LA GRANGE TERRACE 0.009326\n",
"GEORGE F. BAKER JR., HOUSE COMPLEX 0.006995\n",
"COLUMBIA UNIV / VARIOUS SITES 0.006995\n",
"CITY COLLEGE VARIOUS SITES 0.006995\n",
"ST. CECILIA'S CH & REGINA ANGELORUM 0.004663\n",
"CHURCH OF THE INCARNATION 0.004663\n",
"CHURCH OF THE HOLY TRINITY COMPLEX 0.004663\n",
"EDWARD RIDLEY & SONS DEPARTMENT STR 0.004663\n",
"HENRY STREET SETTLEMENT 0.004663\n",
"AHRENS BLDG 0.004663\n",
"NY DAILY NEWS BLDG 0.004663\n",
"NEW YORK LIFE INSURANCE CO BUILDING 0.004663\n",
"TRINITY SCHOOL 0.004663\n",
"VILLARD HOUSES 0.004663\n",
"EAST RIVER HOUSES 0.004663\n",
"RUSSELL SAGE FOUNDATN BLDG & ANNEX 0.004663\n",
"UNIVERSITY VILLAGE 0.004663\n",
"SCRIBNER BUILDING 0.004663\n",
"UNITED STATES CUSTOM HOUSE 0.004663\n",
"JUDSON MEM CHURCH, TOWER, AND HALL 0.004663\n",
"GRACE CHURCH (EPISCOPAL) COMPLEX 0.004663\n",
"NEW YORK STOCK EXCHANGE 0.004663\n",
"BEAUX-ARTS APARTMENT 0.004663\n",
" ... \n",
"157 EAST 78 STREET HOUSE 0.002332\n",
"EMPIRE STATE BUILDING 0.002332\n",
"CHELSEA APARTMENTS 0.002332\n",
"502 CANAL STREET BLDG 0.002332\n",
"BANK OF THE METROPOLIS 0.002332\n",
"NY FREE CIRC LIB, OTTENDORFER BR 0.002332\n",
"FEDERAL RESERVE BANK OF NEW YORK 0.002332\n",
"PANHELLIC TOWER 0.002332\n",
"12 WEST 129TH STREET HOUSE 0.002332\n",
"63 NASSAU ST BLDG 0.002332\n",
"FORWARD BUILDING 0.002332\n",
"FREE PUBLIC BATHS & GYM AT E 54 ST 0.002332\n",
"GEORGE S. BOWDOIN STABLE 0.002332\n",
"SHUBERT THEATER 0.002332\n",
"ST. JEAN BAPTISTE R.C. CHURCH 0.002332\n",
"103 RIVERSIDE DRIVE HOUSE 0.002332\n",
"CBS BUILDING 0.002332\n",
"HORN & HARDART AUTOMAT 0.002332\n",
"RIVERSIDE PARK AND DRIVE 0.002332\n",
"SEAGRAM BUILDING 0.002332\n",
"HOTEL MANSFIELD 0.002332\n",
"ST. THOMAS CHURCH & PARISH HOUSE 0.002332\n",
"CENTURY APARTMENTS 0.002332\n",
"335 WEST 85 STREET HOUSE 0.002332\n",
"240 CENTRAL PARK SOUTH APARTMENTS 0.002332\n",
"PARAMOUNT HOTEL 0.002332\n",
"SAMUEL TREDWELL SKIDMORE HOUSE 0.002332\n",
"CONSOLIDATED EDISON BUILDING 0.002332\n",
"GENERAL ULYSSES S. GRANT TOMB 0.002332\n",
"BROWN BUILDING 0.002332\n",
"dtype: float64\n",
"overlay1 99.99999999999999 in 8 bins\n",
"NaN 85.259967\n",
"C1-5 6.267195\n",
"C1-4 4.583819\n",
"C2-5 2.464444\n",
"C2-4 1.382607\n",
"C1-3 0.037305\n",
"C2-1 0.002332\n",
"C1-2 0.002332\n",
"dtype: float64\n",
"cb2010 63.527628817906276 in 10 bins\n",
" 1000 9.580322\n",
" 2000 9.065050\n",
" 3000 7.276754\n",
" 1001 6.852413\n",
" 2001 6.717183\n",
" 4000 6.001399\n",
" 3001 5.376545\n",
" 5000 4.665423\n",
" 1002 4.404290\n",
" 4001 3.588249\n",
" 6000 2.905106\n",
" 2002 2.825834\n",
" 1003 2.357193\n",
" 3002 2.119375\n",
" 5001 1.986477\n",
" 1005 1.639077\n",
" 1004 1.620424\n",
" 2003 1.592446\n",
" 7000 1.482863\n",
" 3003 1.457216\n",
" 6001 1.345302\n",
" 4002 1.294008\n",
"NaN 0.883656\n",
" 1006 0.848683\n",
" 2004 0.713453\n",
" 1007 0.680811\n",
" 1008 0.634180\n",
" 1009 0.599207\n",
" 4003 0.573560\n",
" 2005 0.552576\n",
" ... \n",
" 3017 0.009326\n",
" 2017 0.009326\n",
" 2021 0.009326\n",
" 3012 0.006995\n",
" 1023 0.006995\n",
" 6017 0.006995\n",
" 2020 0.006995\n",
" 1031 0.004663\n",
" 8002 0.004663\n",
" 4022 0.004663\n",
" 6018 0.004663\n",
" 1024 0.004663\n",
" 2018 0.004663\n",
" 6019 0.002332\n",
" 2 0.002332\n",
" 5011 0.002332\n",
" 1027 0.002332\n",
" 1036 0.002332\n",
" 1047 0.002332\n",
" 6016 0.002332\n",
" 5010 0.002332\n",
" 2019 0.002332\n",
" 6010 0.002332\n",
" 3021 0.002332\n",
" 3023 0.002332\n",
" 4014 0.002332\n",
" 4019 0.002332\n",
" 5007 0.002332\n",
" 5009 0.002332\n",
" 8003 0.002332\n",
"dtype: float64\n",
"zonedist1 64.70739100023314 in 10 bins\n",
"R7-2 19.237585\n",
"R8B 16.971322\n",
"R7A 6.208907\n",
"R8 6.180928\n",
"C6-2A 3.084635\n",
"R6 3.068314\n",
"R8A 2.609000\n",
"R7B 2.553043\n",
"R6A 2.436465\n",
"R10 2.357193\n",
"C1-9 2.242947\n",
"R10A 1.979482\n",
"M1-6 1.678713\n",
"C6-4 1.373280\n",
"C6-2 1.359291\n",
"M1-5B 1.349965\n",
"C5-3 1.314992\n",
"C6-1 1.128468\n",
"C1-6 1.065516\n",
"C4-4A 0.953602\n",
"C6-1G 0.916298\n",
"C5-2 0.911634\n",
"C2-8 0.909303\n",
"C1-6A 0.890651\n",
"C1-8X 0.708790\n",
"C5-5 0.701795\n",
"C5-1 0.678480\n",
"C6-3A 0.666822\n",
"M1-5A 0.624854\n",
"PARK 0.620191\n",
" ... \n",
"NaN 0.132898\n",
"C6-5.5 0.128235\n",
"R9X 0.125903\n",
"C4-5A 0.123572\n",
"M1-4 0.118909\n",
"M1-6D 0.114246\n",
"C6-7 0.109583\n",
"C6-9 0.100256\n",
"BPC 0.100256\n",
"M1-2 0.100256\n",
"M1-5/R7-2 0.079273\n",
"C2-6A 0.069946\n",
"C2-7 0.069946\n",
"C4-6 0.060620\n",
"M3-1 0.058289\n",
"R7D 0.058289\n",
"C6-6.5 0.055957\n",
"C4-5X 0.051294\n",
"R10H 0.039636\n",
"M3-2 0.032642\n",
"C5-1A 0.030310\n",
"C1-8 0.027979\n",
"R7-1 0.027979\n",
"M2-1 0.025647\n",
"M1-5/R7X 0.018652\n",
"C4-2F 0.013989\n",
"M2-2 0.011658\n",
"R3-2 0.006995\n",
"R8X 0.006995\n",
"ZNA 0.002332\n",
"dtype: float64\n",
"ct2010 9.104686407087899 in 10 bins\n",
"38.00 1.058522\n",
"73.00 1.030543\n",
"228.00 0.913966\n",
"208.00 0.899977\n",
"67.00 0.892982\n",
"226.00 0.881324\n",
"220.00 0.871998\n",
"33.00 0.862672\n",
"41.00 0.853346\n",
"77.00 0.839356\n",
"173.00 0.825367\n",
"227.00 0.818373\n",
"49.00 0.804383\n",
"34.00 0.788062\n",
"169.00 0.774073\n",
"127.00 0.769410\n",
"161.00 0.760084\n",
"188.00 0.760084\n",
"138.00 0.757752\n",
"71.00 0.755421\n",
"18.00 0.755421\n",
"157.00 0.750758\n",
"89.00 0.743763\n",
"63.00 0.734437\n",
"98.00 0.732105\n",
"16.00 0.732105\n",
"200.00 0.720448\n",
"99.00 0.713453\n",
"40.00 0.704127\n",
"122.00 0.694801\n",
" ... \n",
"317.03 0.046631\n",
"156.02 0.046631\n",
"62.00 0.044299\n",
"267.00 0.041968\n",
"86.01 0.039636\n",
"214.00 0.037305\n",
"223.02 0.037305\n",
"147.00 0.034973\n",
"238.01 0.030310\n",
"217.03 0.027979\n",
"14.01 0.025647\n",
"197.01 0.020984\n",
"210.00 0.016321\n",
"10.02 0.016321\n",
"10.01 0.013989\n",
"44.00 0.013989\n",
"243.02 0.013989\n",
"297.00 0.013989\n",
"24.00 0.011658\n",
"311.00 0.011658\n",
"240.00 0.006995\n",
"20.00 0.006995\n",
"25.00 0.006995\n",
"86.02 0.006995\n",
"238.02 0.004663\n",
"60.00 0.004663\n",
"319.00 0.004663\n",
"1.00 0.004663\n",
"143.00 0.002332\n",
"5.00 0.002332\n",
"dtype: float64\n",
"plutomapid 100.0 in 2 bins\n",
"1 99.84845\n",
"3 0.15155\n",
"dtype: float64\n",
"bldgclass 47.710422009792495 in 10 bins\n",
"C7 10.538587\n",
"C1 5.954768\n",
"C4 5.791560\n",
"C5 4.968524\n",
"D4 4.383306\n",
"C0 3.499650\n",
"C6 3.413383\n",
"RM 3.397062\n",
"K9 3.044999\n",
"A4 2.718582\n",
"O9 2.606668\n",
"V1 2.508743\n",
"D1 2.403824\n",
"C3 1.846584\n",
"B1 1.806948\n",
"D7 1.790627\n",
"D9 1.669387\n",
"C2 1.454885\n",
"M1 1.450221\n",
"S9 1.433901\n",
"B9 1.368617\n",
"S5 1.242714\n",
"S3 1.224062\n",
"D6 1.191420\n",
"K2 1.123805\n",
"K1 1.100490\n",
"A9 1.077174\n",
"L8 1.025880\n",
"D3 0.995570\n",
"O3 0.941945\n",
" ... \n",
"Y9 0.009326\n",
"Z6 0.009326\n",
"E3 0.009326\n",
"J2 0.009326\n",
"RZ 0.009326\n",
"V8 0.009326\n",
"RD 0.009326\n",
"F1 0.006995\n",
"R3 0.006995\n",
"H7 0.006995\n",
"Q3 0.006995\n",
"N4 0.006995\n",
"F2 0.006995\n",
"T1 0.004663\n",
"G3 0.004663\n",
"A3 0.004663\n",
"G0 0.004663\n",
"RW 0.004663\n",
"K6 0.004663\n",
"E4 0.004663\n",
"Z2 0.004663\n",
"I2 0.004663\n",
"Z7 0.004663\n",
"N1 0.002332\n",
"Q7 0.002332\n",
"Q8 0.002332\n",
"A0 0.002332\n",
"F4 0.002332\n",
"I3 0.002332\n",
"RG 0.002332\n",
"dtype: float64\n",
"zmcode 100.0 in 2 bins\n",
"NaN 97.540219\n",
"Y 2.459781\n",
"dtype: float64\n",
"zonedist2 96.20191186756819 in 10 bins\n",
"NaN 91.389601\n",
"R8B 1.993472\n",
"R7A 0.473304\n",
"R7-2 0.445325\n",
"R6 0.415015\n",
"R8 0.401026\n",
"R10 0.303101\n",
"R8A 0.296106\n",
"C6-2A 0.249475\n",
"C5-2.5 0.235486\n",
"C1-9 0.219165\n",
"C5-3 0.209839\n",
"R10A 0.207508\n",
"C6-1 0.188855\n",
"C6-6 0.158545\n",
"C1-6 0.146887\n",
"C6-4 0.132898\n",
"M1-6 0.123572\n",
"C6-4A 0.111914\n",
"C5-1 0.111914\n",
"C6-2 0.107251\n",
"C1-8X 0.104920\n",
"R7B 0.100256\n",
"C2-6 0.095593\n",
"C2-8 0.093262\n",
"C6-3A 0.079273\n",
"C5-2 0.074609\n",
"C6-4.5 0.072278\n",
"C1-6A 0.067615\n",
"R6A 0.067615\n",
" ... \n",
"M1-5B 0.023315\n",
"R7X 0.023315\n",
"M1-4 0.023315\n",
"R9X 0.020984\n",
"C1-8A 0.020984\n",
"C8-4 0.020984\n",
"R10H 0.020984\n",
"C2-7A 0.018652\n",
"C6-7T 0.016321\n",
"C6-3X 0.016321\n",
"R8X 0.016321\n",
"C5-P 0.013989\n",
"C1-7A 0.011658\n",
"M1-5/R7-2 0.009326\n",
"C1-8 0.009326\n",
"M1-2 0.009326\n",
"C5-1A 0.009326\n",
"M1-6D 0.006995\n",
"C2-7 0.006995\n",
"R5 0.004663\n",
"C3 0.004663\n",
"C4-2F 0.004663\n",
"C6-4X 0.004663\n",
"R7D 0.004663\n",
"M3-1 0.004663\n",
"R7-1 0.002332\n",
"R6B 0.002332\n",
"M2-1 0.002332\n",
"M1-5/R7X 0.002332\n",
"C5-5 0.002332\n",
"dtype: float64\n",
"allzoning2 96.04569829797155 in 10 bins\n",
"NaN 91.389601\n",
"R8B 1.949172\n",
"R7A 0.435999\n",
"R7-2 0.433668\n",
"R6 0.415015\n",
"R8 0.391700\n",
"R10 0.291443\n",
"R8A 0.256470\n",
"C6-2A 0.249475\n",
"C5-2.5 0.233155\n",
"C1-9 0.216834\n",
"C5-3 0.209839\n",
"C6-1 0.188855\n",
"R10A 0.184192\n",
"C6-6 0.153882\n",
"C1-6 0.146887\n",
"C6-4 0.125903\n",
"M1-6 0.121240\n",
"C6-4A 0.111914\n",
"C1-8X 0.104920\n",
"C6-2 0.102588\n",
"R7B 0.100256\n",
"C5-1 0.097925\n",
"C2-6 0.095593\n",
"C2-8 0.093262\n",
"C6-3A 0.079273\n",
"C5-2 0.074609\n",
"C6-4.5 0.069946\n",
"C1-6A 0.067615\n",
"C6-1G 0.065283\n",
" ... \n",
"C1-4/R8 0.004663\n",
"C4-2F 0.004663\n",
"C6-4/MID 0.004663\n",
"C3 0.004663\n",
"C1-4/R7-2 0.004663\n",
"R8B/PI 0.004663\n",
"C6-6/MID 0.004663\n",
"M3-1 0.004663\n",
"R6B 0.002332\n",
"C2-5/R8 0.002332\n",
"C1-5/R9 0.002332\n",
"C2-4/R7D 0.002332\n",
"C1-9/TA 0.002332\n",
"C1-4/R6A 0.002332\n",
"C1-5/R8 0.002332\n",
"C2-4/R8A 0.002332\n",
"R7-1 0.002332\n",
"C4-6A/EC-3 0.002332\n",
"R10/MP 0.002332\n",
"R7D 0.002332\n",
"C5-5 0.002332\n",
"M1-5/R7X 0.002332\n",
"C6-4/HY 0.002332\n",
"M1-6/GC 0.002332\n",
"C5-2.5/MID 0.002332\n",
"R8B/TA 0.002332\n",
"M1-5/R7-2/MX-15 0.002332\n",
"C2-4/R7A 0.002332\n",
"C6-4.5/TA 0.002332\n",
"M2-1 0.002332\n",
"dtype: float64\n",
"proxcode 100.00000000000001 in 5 bins\n",
" 3 57.976218\n",
" 0 21.186757\n",
" 2 16.094661\n",
" 1 4.590814\n",
"NaN 0.151550\n",
"dtype: float64\n",
"zonemap 91.8489158311961 in 10 bins\n",
"12c 14.868268\n",
"8d 14.227093\n",
"8c 13.844719\n",
"6a 12.096060\n",
"6b 9.279552\n",
"5d 7.666123\n",
"12a 6.724178\n",
"9a 5.134064\n",
"3b 4.740033\n",
"3a 3.268827\n",
"8b 2.569363\n",
"12d 1.942178\n",
"12b 1.734670\n",
"5c 1.144789\n",
"1d 0.494288\n",
"1b 0.212171\n",
"9b 0.020984\n",
"8a 0.016321\n",
"3c 0.011658\n",
"16a 0.004663\n",
"dtype: float64\n",
"histdist 90.11890883655863 in 10 bins\n",
"NaN 74.728375\n",
"Greenwich Village 4.390301\n",
"Upper West Side/Central Park West 4.341338\n",
"Upper East Side 2.259268\n",
"SoHo-Cast Iron 1.039869\n",
"Ladies' Mile 0.823036\n",
"East Village/ Lower East Side 0.706458\n",
"Expanded Carnegie Hill 0.624854\n",
"Riverside-West End 0.606202\n",
"Mount Morris Park 0.599207\n",
"Greenwich Village Historic Dist. Ext. II 0.508277\n",
"West End-Collegiate Historic Dist. Ext. 0.496619\n",
"Hamilton Heights 0.473304\n",
"South Village 0.468641\n",
"Hamilton Heights/Sugar Hill 0.435999\n",
"Riverside-West End Historic Dist. Ext. I 0.433668\n",
"Tribeca East 0.429004\n",
"Tribeca West 0.415015\n",
"St. Nicholas 0.363721\n",
"Chelsea 0.340406\n",
"West End - Collegiate 0.335743\n",
"SoHo-Cast Iron Historic District Ext. 0.310096\n",
"Metropolitan Museum 0.305433\n",
"NoHo 0.249475\n",
"Chelsea Historic District Extension 0.249475\n",
"Hamilton Heights/Sugar Hill Northwest 0.249475\n",
"Madison Square North 0.219165\n",
"Carnegie Hill 0.214502\n",
"Treadwell Farm 0.177197\n",
"Murray Hill 0.177197\n",
" ... \n",
"Greenwich Village Historic Dist. Ext. 0.086267\n",
"Riverside Drive-West 80th-81 Street 0.083936\n",
"West 71st Street 0.079273\n",
"Hamilton Heights/Sugar Hill Northeast 0.074609\n",
"St. Mark's 0.072278\n",
"Riverside - West 105th Street 0.069946\n",
"East 10th Street 0.060620\n",
"West Chelsea 0.055957\n",
"Tribeca South Extension 0.053626\n",
"Henderson Place 0.053626\n",
"Audubon Park 0.048962\n",
"MacDougal-Sullivan Gardens 0.048962\n",
"Tudor City 0.048962\n",
"Turtle Bay Gardens 0.044299\n",
"Hamilton Heights/Sugar Hill District Ext 0.034973\n",
"Stone Street 0.034973\n",
"South Street Seaport Extension 0.027979\n",
"Murray Hill Historic District Extension 0.027979\n",
"Fraunces Tavern Block 0.025647\n",
"Lamartine Place 0.025647\n",
"African Burial Ground & The Commons 0.025647\n",
"Sniffen Court 0.023315\n",
"East 17th Street/Irving Place 0.023315\n",
"Weehawken Street 0.023315\n",
"Hardenbergh / Rhinelander 0.016321\n",
"Audubon Terrace 0.016321\n",
"St. Mark's Extension 0.004663\n",
"Gramercy Park Extension 0.002332\n",
"Ellis Island 0.002332\n",
"Governors Island 0.002332\n",
"dtype: float64\n",
"edesignum 98.878526463045 in 10 bins\n",
"NaN 96.008394\n",
"E-216 1.074843\n",
"E-137 0.596876\n",
"E-201 0.279785\n",
"E-142 0.261133\n",
"E-257 0.165540\n",
"E-288 0.139893\n",
"E-284 0.121240\n",
"E-268 0.118909\n",
"E-114 0.111914\n",
"E-116 0.083936\n",
"E-182 0.069946\n",
"E-92 0.060620\n",
"E-54 0.055957\n",
"E-276 0.053626\n",
"E-188 0.044299\n",
"E-208 0.037305\n",
"R-204 0.034973\n",
"E-50 0.032642\n",
"R-142 0.027979\n",
"E-4 0.025647\n",
"E-32 0.025647\n",
"E-131 0.020984\n",
"E-66 0.020984\n",
"E-204 0.020984\n",
"E-162 0.020984\n",
"E-120 0.018652\n",
"E-254 0.016321\n",
"R-145 0.016321\n",
"E-62 0.016321\n",
" ... \n",
"R-9 0.002332\n",
"R-43 0.002332\n",
"R-38 0.002332\n",
"R-59 0.002332\n",
"R-76 0.002332\n",
"E-88 0.002332\n",
"R-77 0.002332\n",
"R-22 0.002332\n",
"R-141 0.002332\n",
"E-325 0.002332\n",
"R-137 0.002332\n",
"E-87 0.002332\n",
"E-256 0.002332\n",
"E-333 0.002332\n",
"R-91 0.002332\n",
"E-172 0.002332\n",
"R-201 0.002332\n",
"R-124 0.002332\n",
"R-143 0.002332\n",
"E-78 0.002332\n",
"R-5 0.002332\n",
"R-87 0.002332\n",
"R-199 0.002332\n",
"R-158 0.002332\n",
"R-178 0.002332\n",
"R-11 0.002332\n",
"R-61 0.002332\n",
"E-312 0.002332\n",
"E-34 0.002332\n",
"R-36 0.002332\n",
"dtype: float64\n",
"zonedist4 99.99999999999997 in 6 bins\n",
"NaN 99.988342\n",
"C6-7 0.002332\n",
"C1-8A 0.002332\n",
"C1-9 0.002332\n",
"R8B 0.002332\n",
"R8A 0.002332\n",
"dtype: float64\n",
"version 100.0 in 1 bins\n",
"14v1 100\n",
"dtype: float64\n",
"tract2010 9.104686407087899 in 10 bins\n",
"38 1.058522\n",
"73 1.030543\n",
"228 0.913966\n",
"208 0.899977\n",
"67 0.892982\n",
"226 0.881324\n",
"220 0.871998\n",
"33 0.862672\n",
"41 0.853346\n",
"77 0.839356\n",
"173 0.825367\n",
"227 0.818373\n",
"49 0.804383\n",
"34 0.788062\n",
"169 0.774073\n",
"127 0.769410\n",
"161 0.760084\n",
"188 0.760084\n",
"138 0.757752\n",
"18 0.755421\n",
"71 0.755421\n",
"157 0.750758\n",
"89 0.743763\n",
"63 0.734437\n",
"16 0.732105\n",
"98 0.732105\n",
"200 0.720448\n",
"99 0.713453\n",
"40 0.704127\n",
"122 0.694801\n",
" ... \n",
"15602 0.046631\n",
"31703 0.046631\n",
"62 0.044299\n",
"267 0.041968\n",
"8601 0.039636\n",
"214 0.037305\n",
"22302 0.037305\n",
"147 0.034973\n",
"23801 0.030310\n",
"21703 0.027979\n",
"1401 0.025647\n",
"19701 0.020984\n",
"1002 0.016321\n",
"210 0.016321\n",
"24302 0.013989\n",
"297 0.013989\n",
"1001 0.013989\n",
"44 0.013989\n",
"24 0.011658\n",
"311 0.011658\n",
"8602 0.006995\n",
"25 0.006995\n",
"240 0.006995\n",
"20 0.006995\n",
"60 0.004663\n",
"1 0.004663\n",
"23802 0.004663\n",
"319 0.004663\n",
"143 0.002332\n",
"5 0.002332\n",
"dtype: float64\n",
"allzoning1 48.5287945908137 in 10 bins\n",
"R8B 14.304034\n",
"R7-2 13.658195\n",
"R7A 3.709489\n",
"R8 3.163908\n",
"C1-4/R7-2 2.916764\n",
"R6 2.907438\n",
"R7B 2.287246\n",
"R6A 1.932851\n",
"C6-2A 1.839590\n",
"C1-9 1.809280\n",
"R10A 1.517836\n",
"R8B/LH-1A 1.489858\n",
"C1-5/R7-2 1.473537\n",
"R8/CL 1.359291\n",
"M1-5B 1.349965\n",
"C5-3/MID 1.175099\n",
"C1-5/R7A 1.105153\n",
"C1-6 1.065516\n",
"C6-2A/TMU 1.049196\n",
"M1-6 1.021217\n",
"C2-4/R7-2 1.009559\n",
"C1-5/R8A 0.855677\n",
"R10 0.844020\n",
"C5-2 0.839356\n",
"C1-6A 0.839356\n",
"C4-4A 0.825367\n",
"C6-1 0.813709\n",
"C6-1G 0.748426\n",
"R8A 0.741432\n",
"R10/PI 0.729774\n",
" ... \n",
"C2-5/R8B/EC-2 0.002332\n",
"C1-4/R7B 0.002332\n",
"R10A/EC-3 0.002332\n",
"C6-3X/CL 0.002332\n",
"M3-2/CL 0.002332\n",
"C1-2/R7-2 0.002332\n",
"C1-5/R10/PI 0.002332\n",
"R7A/125 0.002332\n",
"C1-5/R10A/LH-1A 0.002332\n",
"C5-2.5 0.002332\n",
"R7-2/PC 0.002332\n",
"M1-6/CL 0.002332\n",
"C4-6/PI 0.002332\n",
"C1-4/R7-2/PC 0.002332\n",
"C2-5/C4-2F 0.002332\n",
"C1-3/R7-2 0.002332\n",
"C6-2/HY 0.002332\n",
"C4-5/SRI 0.002332\n",
"R8/EC-3 0.002332\n",
"C2-5/R10/TA 0.002332\n",
"ZNA 0.002332\n",
"M1-4/TA 0.002332\n",
"C2-1/R8 0.002332\n",
"C1-5/C4-4D 0.002332\n",
"C2-5/C4-7 0.002332\n",
"R3-2/GI 0.002332\n",
"R8/LM 0.002332\n",
"C6-3X/US 0.002332\n",
"R8/EC-2 0.002332\n",
"C1-9/PI 0.002332\n",
"dtype: float64\n",
"spdist1 96.0690137561203 in 10 bins\n",
"NaN 81.426906\n",
"MID 3.541618\n",
"CL 3.142924\n",
"LM 1.326650\n",
"TMU 1.314992\n",
"LI 1.298671\n",
"TA 1.245045\n",
"PI 1.058522\n",
"MP 0.858009\n",
"125 0.855677\n",
"HY 0.704127\n",
"EC-2 0.671485\n",
"WCH 0.522266\n",
"GC 0.519935\n",
"EC-3 0.391700\n",
"HSQ 0.254138\n",
"L 0.202844\n",
"LC 0.172534\n",
"MMU 0.151550\n",
"US 0.102588\n",
"BPC 0.100256\n",
"MX-15 0.086267\n",
"MX-6 0.020984\n",
"U 0.018652\n",
"SRI 0.004663\n",
"PC 0.004663\n",
"GI 0.002332\n",
"dtype: float64\n",
"sanborn 5.080438330613197 in 10 bins\n",
"103 015 0.636512\n",
"111N050 0.582886\n",
"103 016 0.561903\n",
"102 019 0.536256\n",
"111S025 0.515272\n",
"103 004 0.482630\n",
"111S007 0.456983\n",
"107N090 0.454651\n",
"108N077 0.429004\n",
"103 017 0.424341\n",
"103 005 0.424341\n",
"103 007 0.419678\n",
"102 029 0.412684\n",
"102 020 0.410352\n",
"101S029 0.410352\n",
"101S032 0.408021\n",
"107N074 0.403357\n",
"102 022 0.398694\n",
"102 018 0.391700\n",
"102 005 0.389368\n",
"101N051 0.389368\n",
"103 019 0.384705\n",
"106E046 0.380042\n",
"107S005 0.373047\n",
"111N056 0.370716\n",
"101N076 0.361390\n",
"107S024 0.361390\n",
"108N087 0.359058\n",
"103 038 0.354395\n",
"104 019 0.354395\n",
" ... \n",
"18S 018 0.002332\n",
"16W 20 0.002332\n",
"15N 043 0.002332\n",
"105 042 0.002332\n",
"11N 100 0.002332\n",
"101N/069 0.002332\n",
"102 007 0.002332\n",
"17S 031 0.002332\n",
"16E 065 0.002332\n",
"17N 092 0.002332\n",
"102 050 0.002332\n",
"111N 051 0.002332\n",
"18N 074 0.002332\n",
"15S 030 0.002332\n",
"16E 039 0.002332\n",
"18N 069 0.002332\n",
"11S 001 0.002332\n",
"17S 045 0.002332\n",
"16W 022 0.002332\n",
"107N066 0.002332\n",
"17S 018 0.002332\n",
"15N 056 0.002332\n",
"18S 026 0.002332\n",
"111N062 0.002332\n",
"16E 042 0.002332\n",
"18S 024 0.002332\n",
"18N 058 0.002332\n",
"101N 081 0.002332\n",
"16W 031 0.002332\n",
"18S 045 0.002332\n",
"dtype: float64\n",
"landuse 98.68733970622523 in 10 bins\n",
" 2 27.892283\n",
" 4 23.975286\n",
" 5 12.639310\n",
" 3 11.611098\n",
" 1 8.976451\n",
" 8 5.775239\n",
" 11 2.704593\n",
" 6 2.343204\n",
" 10 1.704360\n",
" 7 1.065516\n",
" 9 0.913966\n",
"NaN 0.398694\n",
"dtype: float64\n",
"ext 100.0 in 4 bins\n",
"NaN 80.023315\n",
"E 19.536022\n",
"G 0.268128\n",
"EG 0.172534\n",
"dtype: float64\n"
]
}
],
"source": [
"ad_win = ad[winners]\n",
"maxval = 0\n",
"for c in ad:\n",
" temp = 100.0 * ad[c].value_counts(dropna=False) / len(ad[c])\n",
" if len(temp) < 10:\n",
" maxval = len(temp)\n",
" else:\n",
" maxval = 10\n",
" sval = sum(temp.head(maxval))\n",
" print(c,sval,'in',maxval,'bins')\n",
" print(temp)\n",
" \n",
" # print(100.0 * temp / len(ad[c]))"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"10"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"temp.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "SyntaxError",
"evalue": "invalid syntax (<ipython-input-48-11790661e844>, line 3)",
"output_type": "error",
"traceback": [
"\u001b[0;36m File \u001b[0;32m\"<ipython-input-48-11790661e844>\"\u001b[0;36m, line \u001b[0;32m3\u001b[0m\n\u001b[0;31m for c in ad\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
]
}
],
"source": [
"## Number patterns\n",
"\n",
"for c in ad\n",
"i = 1\n",
"sumvals = 0\n",
"for r in ad_win[c].value_counts(dropna=False):\n",
" print('i',i)\n",
" print('sum',sumvals)\n",
" if (i > 7):\n",
" break\n",
" print(r)\n",
" sumvals = sumvals + r\n",
" i = i + 1\n",
"\n",
"print(sumvals / len(ad_win))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### What to do if distribution is _very_ lopsided to one category?\n",
"\n",
"**Options**\n",
"1. If a large percentage (95%?) is in one category, drop this column\n",
"2. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Choropleth Maps -- 2010 Census Data"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Columns (190) of type 'number':\n",
" ['dp0010038', 'dp0010025', 'dp0080003', 'shape_area', 'dp0120008', 'dp0010054', 'dp0120013', 'dp0010024', 'dp0180006', 'dp0040002', 'dp0020003', 'dp0090002', 'dp0010026', 'dp0230001', 'dp0010019', 'dp0120016', 'dp0080021', 'dp0110013', 'dp0010030', 'dp0100003', 'dp0100006', 'dp0010006', 'dp0080015', 'dp0100004', 'dp0180008', 'dp0130013', 'dp0080009', 'dp0010012', 'dp0080019', 'dp0180002', 'dp0030002', 'dp0210002', 'dp0130001', 'dp0080018', 'dp0010037', 'dp0010003', 'dp0170001', 'dp0010042', 'dp0080001', 'dp0090003', 'dp0080006', 'dp0010056', 'dp0010009', 'dp0040001', 'dp0110012', 'dp0130007', 'dp0130008', 'dp0220001', 'dp0010044', 'dp0110006', 'dp0160001', 'dp0010032', 'dp0080008', 'dp0090004', 'dp0010013', 'dp0010001', 'aland10', 'dp0090006', 'dp0010007', 'dp0120015', 'dp0080004', 'dp0130009', 'dp0010039', 'dp0110002', 'dp0010034', 'dp0110014', 'dp0080020', 'dp0120020', 'dp0110003', 'dp0120012', 'dp0130014', 'dp0010035', 'dp0130015', 'dp0120004', 'dp0110004', 'dp0010016', 'dp0100001', 'dp0080002', 'dp0110016', 'dp0100002', 'dp0010008', 'dp0080014', 'dp0130012', 'dp0110007', 'dp0010047', 'dp0010036', 'dp0120003', 'dp0010046', 'dp0180004', 'dp0120007', 'dp0010053', 'dp0050001', 'dp0010018', 'dp0130011', 'dp0120019', 'dp0120014', 'dp0010014', 'dp0130006', 'dp0070003', 'dp0010010', 'dp0130010', 'dp0060001', 'dp0060002', 'dp0010043', 'dp0010020', 'dp0080016', 'dp0080010', 'dp0010057', 'dp0110008', 'dp0080013', 'dp0010022', 'dp0130005', 'dp0080007', 'dp0010049', 'dp0230002', 'dp0180005', 'dp0110010', 'dp0080017', 'dp0110005', 'dp0010031', 'dp0070002', 'dp0190001', 'dp0010048', 'dp0120017', 'dp0130002', 'dp0150001', 'dp0120010', 'dp0030003', 'dp0010052', 'dp0010051', 'dp0010027', 'dp0010023', 'shape_leng', 'dp0080005', 'dp0010011', 'dp0010055', 'dp0220002', 'dp0120005', 'dp0200001', 'dp0180003', 'dp0010004', 'dp0080012', 'dp0120001', 'dp0010029', 'dp0030001', 'dp0180001', 'dp0010028', 'dp0020002', 'dp0070001', 'dp0110009', 'dp0010015', 'awater10', 'dp0050002', 'dp0080022', 'dp0140001', 'dp0010050', 'dp0020001', 'dp0110001', 'dp0080023', 'dp0110015', 'dp0090001', 'dp0110017', 'dp0120002', 'dp0180007', 'dp0010017', 'dp0050003', 'dp0100005', 'dp0180009', 'dp0130004', 'dp0090005', 'dp0060003', 'dp0010045', 'dp0210003', 'dp0210001', 'dp0130003', 'dp0010002', 'dp0110011', 'dp0120006', 'dp0080011', 'dp0120018', 'dp0010021', 'dp0010041', 'dp0080024', 'dp0010033', 'dp0120009', 'dp0010005', 'dp0010040', 'dp0100007', 'dp0040003', 'dp0120011']\n"
]
}
],
"source": [
"acctName = 'common-data'\n",
"tableName = 'tract_2010census_dp1' # 'all_day'\n",
"fileName = 'mnbuildings'\n",
"\n",
"# Grab column data\n",
"url = mkUrl(acctName,tableName,limit='LIMIT%200',fileType='json')\n",
"response = urlopen(url).readall().decode('utf-8')\n",
"column_data = json.loads(response)\n",
"\n",
"# Filter out the good ones, exclude bookkeeping ones\n",
"num_columns = []\n",
"banned = ['longitude','lat','latitude','long','lon','cartodb_id']\n",
"for c in column_data['fields']:\n",
" if (column_data['fields'][c]['type'] == 'number') & (c not in banned):\n",
" num_columns.append(c)\n",
"\n",
"print(\"Columns (\" + str(len(num_columns)) + \") of type 'number':\\n\",num_columns)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"http://common-data.cartodb.com/api/v2/sql?q=SELECT%20dp0010038,dp0010025,dp0080003,shape_area,dp0120008,dp0010054,dp0120013,dp0010024,dp0180006,dp0040002,dp0020003,dp0090002,dp0010026,dp0230001,dp0010019,dp0120016,dp0080021,dp0110013,dp0010030,dp0100003,dp0100006,dp0010006,dp0080015,dp0100004,dp0180008,dp0130013,dp0080009,dp0010012,dp0080019,dp0180002,dp0030002,dp0210002,dp0130001,dp0080018,dp0010037,dp0010003,dp0170001,dp0010042,dp0080001,dp0090003,dp0080006,dp0010056,dp0010009,dp0040001,dp0110012,dp0130007,dp0130008,dp0220001,dp0010044,dp0110006,dp0160001,dp0010032,dp0080008,dp0090004,dp0010013,dp0010001,aland10,dp0090006,dp0010007,dp0120015,dp0080004,dp0130009,dp0010039,dp0110002,dp0010034,dp0110014,dp0080020,dp0120020,dp0110003,dp0120012,dp0130014,dp0010035,dp0130015,dp0120004,dp0110004,dp0010016,dp0100001,dp0080002,dp0110016,dp0100002,dp0010008,dp0080014,dp0130012,dp0110007,dp0010047,dp0010036,dp0120003,dp0010046,dp0180004,dp0120007,dp0010053,dp0050001,dp0010018,dp0130011,dp0120019,dp0120014,dp0010014,dp0130006,dp0070003,dp0010010,dp0130010,dp0060001,dp0060002,dp0010043,dp0010020,dp0080016,dp0080010,dp0010057,dp0110008,dp0080013,dp0010022,dp0130005,dp0080007,dp0010049,dp0230002,dp0180005,dp0110010,dp0080017,dp0110005,dp0010031,dp0070002,dp0190001,dp0010048,dp0120017,dp0130002,dp0150001,dp0120010,dp0030003,dp0010052,dp0010051,dp0010027,dp0010023,shape_leng,dp0080005,dp0010011,dp0010055,dp0220002,dp0120005,dp0200001,dp0180003,dp0010004,dp0080012,dp0120001,dp0010029,dp0030001,dp0180001,dp0010028,dp0020002,dp0070001,dp0110009,dp0010015,awater10,dp0050002,dp0080022,dp0140001,dp0010050,dp0020001,dp0110001,dp0080023,dp0110015,dp0090001,dp0110017,dp0120002,dp0180007,dp0010017,dp0050003,dp0100005,dp0180009,dp0130004,dp0090005,dp0060003,dp0010045,dp0210003,dp0210001,dp0130003,dp0010002,dp0110011,dp0120006,dp0080011,dp0120018,dp0010021,dp0010041,dp0080024,dp0010033,dp0120009,dp0010005,dp0010040,dp0100007,dp0040003,dp0120011%20FROM%20tract_2010census_dp1%20&format=csv&filename=tract_2010census_dp1\n"
]
}
],
"source": [
"# Create API request\n",
"num_url = mkUrl(acctName,tableName,cols=','.join(num_columns))\n",
"print(num_url)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>dp0010038</th>\n",
" <th>dp0010025</th>\n",
" <th>dp0080003</th>\n",
" <th>shape_area</th>\n",
" <th>dp0120008</th>\n",
" <th>dp0010054</th>\n",
" <th>dp0120013</th>\n",
" <th>dp0010024</th>\n",
" <th>dp0180006</th>\n",
" <th>dp0040002</th>\n",
" <th>...</th>\n",
" <th>dp0010021</th>\n",
" <th>dp0010041</th>\n",
" <th>dp0080024</th>\n",
" <th>dp0010033</th>\n",
" <th>dp0120009</th>\n",
" <th>dp0010005</th>\n",
" <th>dp0010040</th>\n",
" <th>dp0100007</th>\n",
" <th>dp0040003</th>\n",
" <th>dp0120011</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>12</td>\n",
" <td>39</td>\n",
" <td>903</td>\n",
" <td>0.023157</td>\n",
" <td>50</td>\n",
" <td>24</td>\n",
" <td>28</td>\n",
" <td>43</td>\n",
" <td>16</td>\n",
" <td>494</td>\n",
" <td>...</td>\n",
" <td>47</td>\n",
" <td>42</td>\n",
" <td>14</td>\n",
" <td>45</td>\n",
" <td>15</td>\n",
" <td>91</td>\n",
" <td>41</td>\n",
" <td>760</td>\n",
" <td>452</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>12</td>\n",
" <td>58</td>\n",
" <td>1145</td>\n",
" <td>0.022899</td>\n",
" <td>84</td>\n",
" <td>39</td>\n",
" <td>32</td>\n",
" <td>80</td>\n",
" <td>5</td>\n",
" <td>696</td>\n",
" <td>...</td>\n",
" <td>48</td>\n",
" <td>68</td>\n",
" <td>1</td>\n",
" <td>54</td>\n",
" <td>8</td>\n",
" <td>162</td>\n",
" <td>64</td>\n",
" <td>1908</td>\n",
" <td>740</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>13</td>\n",
" <td>59</td>\n",
" <td>113</td>\n",
" <td>0.051102</td>\n",
" <td>129</td>\n",
" <td>34</td>\n",
" <td>36</td>\n",
" <td>72</td>\n",
" <td>5</td>\n",
" <td>644</td>\n",
" <td>...</td>\n",
" <td>49</td>\n",
" <td>50</td>\n",
" <td>0</td>\n",
" <td>76</td>\n",
" <td>25</td>\n",
" <td>130</td>\n",
" <td>36</td>\n",
" <td>1742</td>\n",
" <td>736</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>6</td>\n",
" <td>88</td>\n",
" <td>2410</td>\n",
" <td>0.022929</td>\n",
" <td>109</td>\n",
" <td>55</td>\n",
" <td>39</td>\n",
" <td>124</td>\n",
" <td>20</td>\n",
" <td>1022</td>\n",
" <td>...</td>\n",
" <td>82</td>\n",
" <td>84</td>\n",
" <td>5</td>\n",
" <td>89</td>\n",
" <td>21</td>\n",
" <td>224</td>\n",
" <td>80</td>\n",
" <td>2656</td>\n",
" <td>1004</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>13</td>\n",
" <td>87</td>\n",
" <td>3466</td>\n",
" <td>0.024620</td>\n",
" <td>91</td>\n",
" <td>66</td>\n",
" <td>55</td>\n",
" <td>127</td>\n",
" <td>21</td>\n",
" <td>1353</td>\n",
" <td>...</td>\n",
" <td>108</td>\n",
" <td>104</td>\n",
" <td>0</td>\n",
" <td>111</td>\n",
" <td>21</td>\n",
" <td>246</td>\n",
" <td>87</td>\n",
" <td>3554</td>\n",
" <td>1379</td>\n",
" <td>16</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 190 columns</p>\n",
"</div>"
],
"text/plain": [
" dp0010038 dp0010025 dp0080003 shape_area dp0120008 dp0010054 \\\n",
"0 12 39 903 0.023157 50 24 \n",
"1 12 58 1145 0.022899 84 39 \n",
"2 13 59 113 0.051102 129 34 \n",
"3 6 88 2410 0.022929 109 55 \n",
"4 13 87 3466 0.024620 91 66 \n",
"\n",
" dp0120013 dp0010024 dp0180006 dp0040002 ... dp0010021 \\\n",
"0 28 43 16 494 ... 47 \n",
"1 32 80 5 696 ... 48 \n",
"2 36 72 5 644 ... 49 \n",
"3 39 124 20 1022 ... 82 \n",
"4 55 127 21 1353 ... 108 \n",
"\n",
" dp0010041 dp0080024 dp0010033 dp0120009 dp0010005 dp0010040 \\\n",
"0 42 14 45 15 91 41 \n",
"1 68 1 54 8 162 64 \n",
"2 50 0 76 25 130 36 \n",
"3 84 5 89 21 224 80 \n",
"4 104 0 111 21 246 87 \n",
"\n",
" dp0100007 dp0040003 dp0120011 \n",
"0 760 452 3 \n",
"1 1908 740 3 \n",
"2 1742 736 3 \n",
"3 2656 1004 6 \n",
"4 3554 1379 16 \n",
"\n",
"[5 rows x 190 columns]"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Retrieve only approved columns\n",
"choro_df = pd.read_csv(num_url)\n",
"choro_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Build up some metrics on each column\n",
"\n",
"Notes about metrics:\n",
"\n",
"* **kurtosis**: a measure of the 'peakedness' of a distribution. A large value corresponds to a sharper peak, a value of zero is the normal distribution, and a negative value is flatter than a normal distribution\n",
"* **skewness**: a measure of the asymmetry of a distribution. A positive value corresponds to a 'left lean' while a negative value corresponds to a 'right lean'. For instance, `blddepth` peaks at small values and get smaller for larger values on it's histogram. It has a strong positive skewness."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>kurtosis</th>\n",
" <th>mean</th>\n",
" <th>median</th>\n",
" <th>skew</th>\n",
" <th>stddev</th>\n",
" <th>uniques</th>\n",
" <th>num_98</th>\n",
" <th>perc_nulls</th>\n",
" <th>skew_abs</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>dp0110007</th>\n",
" <td>1090.051574</td>\n",
" <td>7.936272e-01</td>\n",
" <td>0.000000</td>\n",
" <td>23.793517</td>\n",
" <td>3.249843e+00</td>\n",
" <td>80</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>23.793517</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0180005</th>\n",
" <td>373.721466</td>\n",
" <td>2.848491e+00</td>\n",
" <td>2.000000</td>\n",
" <td>11.264553</td>\n",
" <td>4.311877e+00</td>\n",
" <td>89</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>11.264553</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0080016</th>\n",
" <td>226.983745</td>\n",
" <td>1.193752e+00</td>\n",
" <td>0.000000</td>\n",
" <td>11.058767</td>\n",
" <td>4.041861e+00</td>\n",
" <td>89</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>11.058767</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0180007</th>\n",
" <td>328.919793</td>\n",
" <td>5.800303e+00</td>\n",
" <td>4.000000</td>\n",
" <td>9.501844</td>\n",
" <td>6.794094e+00</td>\n",
" <td>100</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>9.501844</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0110006</th>\n",
" <td>113.353006</td>\n",
" <td>2.878692e+00</td>\n",
" <td>1.000000</td>\n",
" <td>7.405749</td>\n",
" <td>6.370228e+00</td>\n",
" <td>116</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>7.405749</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0120012</th>\n",
" <td>81.197670</td>\n",
" <td>1.087440e+01</td>\n",
" <td>9.000000</td>\n",
" <td>5.179308</td>\n",
" <td>9.984859e+00</td>\n",
" <td>148</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>5.179308</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0120011</th>\n",
" <td>15.737702</td>\n",
" <td>1.798600e+01</td>\n",
" <td>15.000000</td>\n",
" <td>2.473861</td>\n",
" <td>1.498486e+01</td>\n",
" <td>168</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>2.473861</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0080017</th>\n",
" <td>2287.626375</td>\n",
" <td>1.481946e+00</td>\n",
" <td>0.000000</td>\n",
" <td>35.057540</td>\n",
" <td>1.086091e+01</td>\n",
" <td>185</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>35.057540</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0130007</th>\n",
" <td>3.372249</td>\n",
" <td>3.810706e+01</td>\n",
" <td>34.000000</td>\n",
" <td>1.218209</td>\n",
" <td>2.364486e+01</td>\n",
" <td>210</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.218209</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0110005</th>\n",
" <td>229.117683</td>\n",
" <td>9.522175e+00</td>\n",
" <td>3.000000</td>\n",
" <td>8.626220</td>\n",
" <td>1.852039e+01</td>\n",
" <td>224</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>8.626220</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0080018</th>\n",
" <td>1802.998144</td>\n",
" <td>2.514932e+00</td>\n",
" <td>0.000000</td>\n",
" <td>33.379875</td>\n",
" <td>1.724488e+01</td>\n",
" <td>237</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>33.379875</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0080015</th>\n",
" <td>2961.908993</td>\n",
" <td>2.111646e+00</td>\n",
" <td>0.000000</td>\n",
" <td>44.962195</td>\n",
" <td>2.687508e+01</td>\n",
" <td>248</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>44.962195</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0080023</th>\n",
" <td>30.026605</td>\n",
" <td>2.564477e+01</td>\n",
" <td>18.000000</td>\n",
" <td>3.311457</td>\n",
" <td>2.589451e+01</td>\n",
" <td>261</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>3.311457</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0010038</th>\n",
" <td>39.372412</td>\n",
" <td>2.449912e+01</td>\n",
" <td>19.000000</td>\n",
" <td>4.028911</td>\n",
" <td>2.348700e+01</td>\n",
" <td>272</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>4.028911</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0010037</th>\n",
" <td>32.778076</td>\n",
" <td>3.137694e+01</td>\n",
" <td>27.000000</td>\n",
" <td>3.428233</td>\n",
" <td>2.485339e+01</td>\n",
" <td>283</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>3.428233</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0110016</th>\n",
" <td>462.797619</td>\n",
" <td>8.179387e+00</td>\n",
" <td>4.000000</td>\n",
" <td>17.193662</td>\n",
" <td>2.029264e+01</td>\n",
" <td>288</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>17.193662</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0130013</th>\n",
" <td>20.487712</td>\n",
" <td>4.347170e+01</td>\n",
" <td>38.000000</td>\n",
" <td>2.470508</td>\n",
" <td>3.027230e+01</td>\n",
" <td>301</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>2.470508</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0180006</th>\n",
" <td>13458.623590</td>\n",
" <td>2.601251e+01</td>\n",
" <td>20.000000</td>\n",
" <td>78.464933</td>\n",
" <td>3.508246e+01</td>\n",
" <td>310</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>78.464933</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0080024</th>\n",
" <td>13.249179</td>\n",
" <td>2.385725e+01</td>\n",
" <td>11.000000</td>\n",
" <td>2.983644</td>\n",
" <td>3.404140e+01</td>\n",
" <td>314</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>2.983644</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0010036</th>\n",
" <td>67.796789</td>\n",
" <td>4.359359e+01</td>\n",
" <td>38.000000</td>\n",
" <td>4.053310</td>\n",
" <td>3.163648e+01</td>\n",
" <td>334</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>4.053310</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0130006</th>\n",
" <td>2.761241</td>\n",
" <td>7.908724e+01</td>\n",
" <td>73.000000</td>\n",
" <td>1.039986</td>\n",
" <td>4.345997e+01</td>\n",
" <td>343</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.039986</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0120009</th>\n",
" <td>18.445596</td>\n",
" <td>4.034645e+01</td>\n",
" <td>32.000000</td>\n",
" <td>2.937590</td>\n",
" <td>3.422038e+01</td>\n",
" <td>346</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>2.937590</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0170001</th>\n",
" <td>16.000052</td>\n",
" <td>3.088786e+00</td>\n",
" <td>3.050000</td>\n",
" <td>-1.820353</td>\n",
" <td>4.879877e-01</td>\n",
" <td>347</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.820353</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0080021</th>\n",
" <td>75.050724</td>\n",
" <td>1.938075e+01</td>\n",
" <td>13.000000</td>\n",
" <td>6.513502</td>\n",
" <td>2.717276e+01</td>\n",
" <td>356</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>6.513502</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0080022</th>\n",
" <td>44.027825</td>\n",
" <td>2.195287e+01</td>\n",
" <td>11.000000</td>\n",
" <td>4.841899</td>\n",
" <td>3.284507e+01</td>\n",
" <td>372</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>4.841899</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0010056</th>\n",
" <td>22.805548</td>\n",
" <td>4.713887e+01</td>\n",
" <td>39.000000</td>\n",
" <td>2.867766</td>\n",
" <td>3.662365e+01</td>\n",
" <td>372</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>2.867766</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0010055</th>\n",
" <td>23.860877</td>\n",
" <td>5.665417e+01</td>\n",
" <td>50.000000</td>\n",
" <td>2.664802</td>\n",
" <td>3.865580e+01</td>\n",
" <td>374</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>2.664802</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0010035</th>\n",
" <td>313.775984</td>\n",
" <td>5.818360e+01</td>\n",
" <td>52.000000</td>\n",
" <td>7.175303</td>\n",
" <td>4.028918e+01</td>\n",
" <td>386</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>7.175303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0190001</th>\n",
" <td>219.448891</td>\n",
" <td>2.692885e+00</td>\n",
" <td>2.000000</td>\n",
" <td>11.203075</td>\n",
" <td>3.402280e+00</td>\n",
" <td>394</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>11.203075</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0110015</th>\n",
" <td>1326.637549</td>\n",
" <td>6.508648e+00</td>\n",
" <td>1.000000</td>\n",
" <td>29.473036</td>\n",
" <td>4.252941e+01</td>\n",
" <td>399</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>29.473036</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0030003</th>\n",
" <td>7.005388</td>\n",
" <td>1.709627e+03</td>\n",
" <td>1628.000000</td>\n",
" <td>1.217666</td>\n",
" <td>7.889298e+02</td>\n",
" <td>4347</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.217666</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0080004</th>\n",
" <td>15.326906</td>\n",
" <td>5.322940e+02</td>\n",
" <td>161.000000</td>\n",
" <td>3.148669</td>\n",
" <td>8.826150e+02</td>\n",
" <td>4384</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>3.148669</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0100003</th>\n",
" <td>22.353046</td>\n",
" <td>4.298292e+02</td>\n",
" <td>86.000000</td>\n",
" <td>3.984308</td>\n",
" <td>8.925489e+02</td>\n",
" <td>4396</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>3.984308</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0090002</th>\n",
" <td>14.946514</td>\n",
" <td>5.752683e+02</td>\n",
" <td>199.000000</td>\n",
" <td>3.082220</td>\n",
" <td>9.037400e+02</td>\n",
" <td>4440</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>3.082220</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0180001</th>\n",
" <td>11.561820</td>\n",
" <td>1.801866e+03</td>\n",
" <td>1706.000000</td>\n",
" <td>1.515716</td>\n",
" <td>8.372058e+02</td>\n",
" <td>4609</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.515716</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0010020</th>\n",
" <td>12.758546</td>\n",
" <td>2.075167e+03</td>\n",
" <td>1954.000000</td>\n",
" <td>1.664084</td>\n",
" <td>9.968753e+02</td>\n",
" <td>5269</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.664084</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0220002</th>\n",
" <td>7.215450</td>\n",
" <td>1.358132e+03</td>\n",
" <td>1092.000000</td>\n",
" <td>1.843635</td>\n",
" <td>1.057676e+03</td>\n",
" <td>5275</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.843635</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0010039</th>\n",
" <td>7.636998</td>\n",
" <td>2.147305e+03</td>\n",
" <td>2035.000000</td>\n",
" <td>1.358731</td>\n",
" <td>1.015637e+03</td>\n",
" <td>5329</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.358731</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0110002</th>\n",
" <td>12.064221</td>\n",
" <td>7.319539e+02</td>\n",
" <td>245.000000</td>\n",
" <td>3.029683</td>\n",
" <td>1.188849e+03</td>\n",
" <td>5530</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>3.029683</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0100002</th>\n",
" <td>12.064221</td>\n",
" <td>7.319539e+02</td>\n",
" <td>245.000000</td>\n",
" <td>3.029683</td>\n",
" <td>1.188849e+03</td>\n",
" <td>5530</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>3.029683</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0050001</th>\n",
" <td>7.686683</td>\n",
" <td>3.021660e+03</td>\n",
" <td>2878.000000</td>\n",
" <td>1.255534</td>\n",
" <td>1.381101e+03</td>\n",
" <td>6911</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.255534</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0040001</th>\n",
" <td>8.077503</td>\n",
" <td>3.207840e+03</td>\n",
" <td>3049.000000</td>\n",
" <td>1.291386</td>\n",
" <td>1.465524e+03</td>\n",
" <td>7230</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.291386</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0030001</th>\n",
" <td>7.756515</td>\n",
" <td>3.327093e+03</td>\n",
" <td>3163.000000</td>\n",
" <td>1.277770</td>\n",
" <td>1.519866e+03</td>\n",
" <td>7435</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.277770</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0110011</th>\n",
" <td>3.060764</td>\n",
" <td>2.659989e+03</td>\n",
" <td>2510.000000</td>\n",
" <td>0.902027</td>\n",
" <td>1.826100e+03</td>\n",
" <td>7820</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>0.902027</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0220001</th>\n",
" <td>7.249132</td>\n",
" <td>2.755892e+03</td>\n",
" <td>2528.000000</td>\n",
" <td>1.455898</td>\n",
" <td>1.733654e+03</td>\n",
" <td>7880</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.455898</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0080003</th>\n",
" <td>4.709129</td>\n",
" <td>3.059084e+03</td>\n",
" <td>2898.000000</td>\n",
" <td>1.016043</td>\n",
" <td>1.806901e+03</td>\n",
" <td>8176</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.016043</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0090001</th>\n",
" <td>4.914701</td>\n",
" <td>3.161661e+03</td>\n",
" <td>3006.000000</td>\n",
" <td>1.023439</td>\n",
" <td>1.836126e+03</td>\n",
" <td>8343</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.023439</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0110010</th>\n",
" <td>5.219241</td>\n",
" <td>3.490518e+03</td>\n",
" <td>3309.000000</td>\n",
" <td>1.087046</td>\n",
" <td>1.888966e+03</td>\n",
" <td>8791</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.087046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0100007</th>\n",
" <td>5.219241</td>\n",
" <td>3.490518e+03</td>\n",
" <td>3309.000000</td>\n",
" <td>1.087046</td>\n",
" <td>1.888966e+03</td>\n",
" <td>8791</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.087046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0080002</th>\n",
" <td>8.354084</td>\n",
" <td>4.099079e+03</td>\n",
" <td>3878.500000</td>\n",
" <td>1.416297</td>\n",
" <td>1.922690e+03</td>\n",
" <td>8940</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.416297</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0120002</th>\n",
" <td>7.616482</td>\n",
" <td>4.114025e+03</td>\n",
" <td>3897.000000</td>\n",
" <td>1.356676</td>\n",
" <td>1.972544e+03</td>\n",
" <td>9134</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.356676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0010001</th>\n",
" <td>8.521491</td>\n",
" <td>4.222471e+03</td>\n",
" <td>3993.000000</td>\n",
" <td>1.426214</td>\n",
" <td>1.982711e+03</td>\n",
" <td>9139</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.426214</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0120001</th>\n",
" <td>8.521491</td>\n",
" <td>4.222471e+03</td>\n",
" <td>3993.000000</td>\n",
" <td>1.426214</td>\n",
" <td>1.982711e+03</td>\n",
" <td>9139</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.426214</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0110001</th>\n",
" <td>8.521491</td>\n",
" <td>4.222471e+03</td>\n",
" <td>3993.000000</td>\n",
" <td>1.426214</td>\n",
" <td>1.982711e+03</td>\n",
" <td>9139</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.426214</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0080001</th>\n",
" <td>8.521491</td>\n",
" <td>4.222471e+03</td>\n",
" <td>3993.000000</td>\n",
" <td>1.426214</td>\n",
" <td>1.982711e+03</td>\n",
" <td>9139</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.426214</td>\n",
" </tr>\n",
" <tr>\n",
" <th>dp0100001</th>\n",
" <td>8.521491</td>\n",
" <td>4.222471e+03</td>\n",
" <td>3993.000000</td>\n",
" <td>1.426214</td>\n",
" <td>1.982711e+03</td>\n",
" <td>9139</td>\n",
" <td>False</td>\n",
" <td>0</td>\n",
" <td>1.426214</td>\n",
" </tr>\n",
" <tr>\n",
" <th>awater10</th>\n",
" <td>5352.079314</td>\n",
" <td>9.335530e+06</td>\n",
" <td>28094.000000</td>\n",
" <td>65.107902</td>\n",
" <td>2.224993e+08</td>\n",
" <td>43861</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>65.107902</td>\n",
" </tr>\n",
" <tr>\n",
" <th>aland10</th>\n",
" <td>10267.494460</td>\n",
" <td>1.237326e+08</td>\n",
" <td>4823677.500000</td>\n",
" <td>82.910446</td>\n",
" <td>1.394208e+09</td>\n",
" <td>73466</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>82.910446</td>\n",
" </tr>\n",
" <tr>\n",
" <th>shape_area</th>\n",
" <td>17582.803674</td>\n",
" <td>1.577478e-02</td>\n",
" <td>0.000531</td>\n",
" <td>113.082679</td>\n",
" <td>2.878312e-01</td>\n",
" <td>73986</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>113.082679</td>\n",
" </tr>\n",
" <tr>\n",
" <th>shape_leng</th>\n",
" <td>1430.414824</td>\n",
" <td>3.270051e-01</td>\n",
" <td>0.116105</td>\n",
" <td>27.084948</td>\n",
" <td>7.794102e-01</td>\n",
" <td>74002</td>\n",
" <td>True</td>\n",
" <td>0</td>\n",
" <td>27.084948</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>190 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" kurtosis mean median skew \\\n",
"dp0110007 1090.051574 7.936272e-01 0.000000 23.793517 \n",
"dp0180005 373.721466 2.848491e+00 2.000000 11.264553 \n",
"dp0080016 226.983745 1.193752e+00 0.000000 11.058767 \n",
"dp0180007 328.919793 5.800303e+00 4.000000 9.501844 \n",
"dp0110006 113.353006 2.878692e+00 1.000000 7.405749 \n",
"dp0120012 81.197670 1.087440e+01 9.000000 5.179308 \n",
"dp0120011 15.737702 1.798600e+01 15.000000 2.473861 \n",
"dp0080017 2287.626375 1.481946e+00 0.000000 35.057540 \n",
"dp0130007 3.372249 3.810706e+01 34.000000 1.218209 \n",
"dp0110005 229.117683 9.522175e+00 3.000000 8.626220 \n",
"dp0080018 1802.998144 2.514932e+00 0.000000 33.379875 \n",
"dp0080015 2961.908993 2.111646e+00 0.000000 44.962195 \n",
"dp0080023 30.026605 2.564477e+01 18.000000 3.311457 \n",
"dp0010038 39.372412 2.449912e+01 19.000000 4.028911 \n",
"dp0010037 32.778076 3.137694e+01 27.000000 3.428233 \n",
"dp0110016 462.797619 8.179387e+00 4.000000 17.193662 \n",
"dp0130013 20.487712 4.347170e+01 38.000000 2.470508 \n",
"dp0180006 13458.623590 2.601251e+01 20.000000 78.464933 \n",
"dp0080024 13.249179 2.385725e+01 11.000000 2.983644 \n",
"dp0010036 67.796789 4.359359e+01 38.000000 4.053310 \n",
"dp0130006 2.761241 7.908724e+01 73.000000 1.039986 \n",
"dp0120009 18.445596 4.034645e+01 32.000000 2.937590 \n",
"dp0170001 16.000052 3.088786e+00 3.050000 -1.820353 \n",
"dp0080021 75.050724 1.938075e+01 13.000000 6.513502 \n",
"dp0080022 44.027825 2.195287e+01 11.000000 4.841899 \n",
"dp0010056 22.805548 4.713887e+01 39.000000 2.867766 \n",
"dp0010055 23.860877 5.665417e+01 50.000000 2.664802 \n",
"dp0010035 313.775984 5.818360e+01 52.000000 7.175303 \n",
"dp0190001 219.448891 2.692885e+00 2.000000 11.203075 \n",
"dp0110015 1326.637549 6.508648e+00 1.000000 29.473036 \n",
"... ... ... ... ... \n",
"dp0030003 7.005388 1.709627e+03 1628.000000 1.217666 \n",
"dp0080004 15.326906 5.322940e+02 161.000000 3.148669 \n",
"dp0100003 22.353046 4.298292e+02 86.000000 3.984308 \n",
"dp0090002 14.946514 5.752683e+02 199.000000 3.082220 \n",
"dp0180001 11.561820 1.801866e+03 1706.000000 1.515716 \n",
"dp0010020 12.758546 2.075167e+03 1954.000000 1.664084 \n",
"dp0220002 7.215450 1.358132e+03 1092.000000 1.843635 \n",
"dp0010039 7.636998 2.147305e+03 2035.000000 1.358731 \n",
"dp0110002 12.064221 7.319539e+02 245.000000 3.029683 \n",
"dp0100002 12.064221 7.319539e+02 245.000000 3.029683 \n",
"dp0050001 7.686683 3.021660e+03 2878.000000 1.255534 \n",
"dp0040001 8.077503 3.207840e+03 3049.000000 1.291386 \n",
"dp0030001 7.756515 3.327093e+03 3163.000000 1.277770 \n",
"dp0110011 3.060764 2.659989e+03 2510.000000 0.902027 \n",
"dp0220001 7.249132 2.755892e+03 2528.000000 1.455898 \n",
"dp0080003 4.709129 3.059084e+03 2898.000000 1.016043 \n",
"dp0090001 4.914701 3.161661e+03 3006.000000 1.023439 \n",
"dp0110010 5.219241 3.490518e+03 3309.000000 1.087046 \n",
"dp0100007 5.219241 3.490518e+03 3309.000000 1.087046 \n",
"dp0080002 8.354084 4.099079e+03 3878.500000 1.416297 \n",
"dp0120002 7.616482 4.114025e+03 3897.000000 1.356676 \n",
"dp0010001 8.521491 4.222471e+03 3993.000000 1.426214 \n",
"dp0120001 8.521491 4.222471e+03 3993.000000 1.426214 \n",
"dp0110001 8.521491 4.222471e+03 3993.000000 1.426214 \n",
"dp0080001 8.521491 4.222471e+03 3993.000000 1.426214 \n",
"dp0100001 8.521491 4.222471e+03 3993.000000 1.426214 \n",
"awater10 5352.079314 9.335530e+06 28094.000000 65.107902 \n",
"aland10 10267.494460 1.237326e+08 4823677.500000 82.910446 \n",
"shape_area 17582.803674 1.577478e-02 0.000531 113.082679 \n",
"shape_leng 1430.414824 3.270051e-01 0.116105 27.084948 \n",
"\n",
" stddev uniques num_98 perc_nulls skew_abs \n",
"dp0110007 3.249843e+00 80 True 0 23.793517 \n",
"dp0180005 4.311877e+00 89 True 0 11.264553 \n",
"dp0080016 4.041861e+00 89 True 0 11.058767 \n",
"dp0180007 6.794094e+00 100 True 0 9.501844 \n",
"dp0110006 6.370228e+00 116 True 0 7.405749 \n",
"dp0120012 9.984859e+00 148 True 0 5.179308 \n",
"dp0120011 1.498486e+01 168 False 0 2.473861 \n",
"dp0080017 1.086091e+01 185 True 0 35.057540 \n",
"dp0130007 2.364486e+01 210 False 0 1.218209 \n",
"dp0110005 1.852039e+01 224 True 0 8.626220 \n",
"dp0080018 1.724488e+01 237 True 0 33.379875 \n",
"dp0080015 2.687508e+01 248 True 0 44.962195 \n",
"dp0080023 2.589451e+01 261 False 0 3.311457 \n",
"dp0010038 2.348700e+01 272 True 0 4.028911 \n",
"dp0010037 2.485339e+01 283 False 0 3.428233 \n",
"dp0110016 2.029264e+01 288 True 0 17.193662 \n",
"dp0130013 3.027230e+01 301 False 0 2.470508 \n",
"dp0180006 3.508246e+01 310 True 0 78.464933 \n",
"dp0080024 3.404140e+01 314 False 0 2.983644 \n",
"dp0010036 3.163648e+01 334 True 0 4.053310 \n",
"dp0130006 4.345997e+01 343 False 0 1.039986 \n",
"dp0120009 3.422038e+01 346 False 0 2.937590 \n",
"dp0170001 4.879877e-01 347 False 0 1.820353 \n",
"dp0080021 2.717276e+01 356 True 0 6.513502 \n",
"dp0080022 3.284507e+01 372 False 0 4.841899 \n",
"dp0010056 3.662365e+01 372 False 0 2.867766 \n",
"dp0010055 3.865580e+01 374 False 0 2.664802 \n",
"dp0010035 4.028918e+01 386 True 0 7.175303 \n",
"dp0190001 3.402280e+00 394 True 0 11.203075 \n",
"dp0110015 4.252941e+01 399 True 0 29.473036 \n",
"... ... ... ... ... ... \n",
"dp0030003 7.889298e+02 4347 False 0 1.217666 \n",
"dp0080004 8.826150e+02 4384 False 0 3.148669 \n",
"dp0100003 8.925489e+02 4396 False 0 3.984308 \n",
"dp0090002 9.037400e+02 4440 False 0 3.082220 \n",
"dp0180001 8.372058e+02 4609 False 0 1.515716 \n",
"dp0010020 9.968753e+02 5269 False 0 1.664084 \n",
"dp0220002 1.057676e+03 5275 False 0 1.843635 \n",
"dp0010039 1.015637e+03 5329 False 0 1.358731 \n",
"dp0110002 1.188849e+03 5530 False 0 3.029683 \n",
"dp0100002 1.188849e+03 5530 False 0 3.029683 \n",
"dp0050001 1.381101e+03 6911 False 0 1.255534 \n",
"dp0040001 1.465524e+03 7230 False 0 1.291386 \n",
"dp0030001 1.519866e+03 7435 False 0 1.277770 \n",
"dp0110011 1.826100e+03 7820 False 0 0.902027 \n",
"dp0220001 1.733654e+03 7880 False 0 1.455898 \n",
"dp0080003 1.806901e+03 8176 False 0 1.016043 \n",
"dp0090001 1.836126e+03 8343 False 0 1.023439 \n",
"dp0110010 1.888966e+03 8791 False 0 1.087046 \n",
"dp0100007 1.888966e+03 8791 False 0 1.087046 \n",
"dp0080002 1.922690e+03 8940 False 0 1.416297 \n",
"dp0120002 1.972544e+03 9134 False 0 1.356676 \n",
"dp0010001 1.982711e+03 9139 False 0 1.426214 \n",
"dp0120001 1.982711e+03 9139 False 0 1.426214 \n",
"dp0110001 1.982711e+03 9139 False 0 1.426214 \n",
"dp0080001 1.982711e+03 9139 False 0 1.426214 \n",
"dp0100001 1.982711e+03 9139 False 0 1.426214 \n",
"awater10 2.224993e+08 43861 True 0 65.107902 \n",
"aland10 1.394208e+09 73466 True 0 82.910446 \n",
"shape_area 2.878312e-01 73986 True 0 113.082679 \n",
"shape_leng 7.794102e-01 74002 True 0 27.084948 \n",
"\n",
"[190 rows x 9 columns]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"num_metrics = DataFrame({'uniques': [len(choro_df[c].unique()) for c in choro_df],\n",
" 'skew': [choro_df[x].skew() for x in choro_df],\n",
" 'kurtosis': [choro_df[x].kurtosis() for x in choro_df],\n",
" 'mean': [choro_df[x].mean() for x in choro_df],\n",
" 'median': [choro_df[x].median() for x in choro_df],\n",
" 'stddev': [choro_df[x].std() for x in choro_df]\n",
" },\n",
" index=choro_df.columns)\n",
"l = len(choro_df)\n",
"cols = []\n",
"vals = []\n",
"perc_nulls = []\n",
"\n",
"## Does 98% of the data lie in one column?\n",
"for c in choro_df:\n",
" cols.append(c)\n",
" perc_nulls.append(choro_df[c].isnull().sum())\n",
" v, b = np.histogram(choro_df[c],bins=7)\n",
" if (v / l > 0.98).any():\n",
" vals.append(True)\n",
" else:\n",
" vals.append(False)\n",
"\n",
"## Are there outliers?\n",
"\n",
"## Modality classes: L,J,A,U,F, etc. from:\n",
"# http://en.wikipedia.org/wiki/Multimodal_distribution#Galtung.27s_classification\n",
"\n",
"\n",
"num_metrics['num_98'] = Series(vals, index=cols)\n",
"num_metrics['perc_nulls'] = Series(perc_nulls, index=cols)\n",
"num_metrics['skew_abs'] = abs(num_metrics['skew'])\n",
"num_metrics.sort('uniques')"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"# answers = {}\n",
"# for c in cols:\n",
"# msg = \"do you like \" + c + \"'s map? \"\n",
"# ans = input(msg)\n",
"# print('you answered',ans)\n",
"# answers[c] = ans\n",
"\n",
"answers = {'aland10': 'y',\n",
" 'awater10': 'y',\n",
" 'dp0010001': 'y',\n",
" 'dp0010002': 'y',\n",
" 'dp0010003': 'y',\n",
" 'dp0010004': 'n',\n",
" 'dp0010005': 'y',\n",
" 'dp0010006': 'y',\n",
" 'dp0010007': 'y',\n",
" 'dp0010008': 'y',\n",
" 'dp0010009': 'y',\n",
" 'dp0010010': 'y',\n",
" 'dp0010011': 'y',\n",
" 'dp0010012': 'y',\n",
" 'dp0010013': 'y',\n",
" 'dp0010014': 'y',\n",
" 'dp0010015': 'y',\n",
" 'dp0010016': 'y',\n",
" 'dp0010017': 'y',\n",
" 'dp0010018': 'y',\n",
" 'dp0010019': 'n',\n",
" 'dp0010020': 'y',\n",
" 'dp0010021': 'y',\n",
" 'dp0010022': 'y',\n",
" 'dp0010023': 'y',\n",
" 'dp0010024': 'y',\n",
" 'dp0010025': 'y',\n",
" 'dp0010026': 'y',\n",
" 'dp0010027': 'y',\n",
" 'dp0010028': 'y',\n",
" 'dp0010029': 'y',\n",
" 'dp0010030': 'y',\n",
" 'dp0010031': 'y',\n",
" 'dp0010032': 'y',\n",
" 'dp0010033': 'y',\n",
" 'dp0010034': 'y',\n",
" 'dp0010035': 'n',\n",
" 'dp0010036': 'y',\n",
" 'dp0010037': 'n',\n",
" 'dp0010038': 'n',\n",
" 'dp0010039': 'y',\n",
" 'dp0010040': 'y',\n",
" 'dp0010041': 'y',\n",
" 'dp0010042': 'y',\n",
" 'dp0010043': 'y',\n",
" 'dp0010044': 'n',\n",
" 'dp0010045': 'y',\n",
" 'dp0010046': 'y',\n",
" 'dp0010047': 'y',\n",
" 'dp0010048': 'y',\n",
" 'dp0010049': 'y',\n",
" 'dp0010050': 'y',\n",
" 'dp0010051': 'y',\n",
" 'dp0010052': 'y',\n",
" 'dp0010053': 'y',\n",
" 'dp0010054': 'y',\n",
" 'dp0010055': 'y',\n",
" 'dp0010056': 'y',\n",
" 'dp0010057': 'y',\n",
" 'dp0020001': 'y',\n",
" 'dp0020002': 'y',\n",
" 'dp0020003': 'y',\n",
" 'dp0030001': 'y',\n",
" 'dp0030002': 'y',\n",
" 'dp0030003': 'y',\n",
" 'dp0040001': 'y',\n",
" 'dp0040002': 'y',\n",
" 'dp0040003': 'y',\n",
" 'dp0050001': 'y',\n",
" 'dp0050002': 'y',\n",
" 'dp0050003': 'y',\n",
" 'dp0060001': 'y',\n",
" 'dp0060002': 'y',\n",
" 'dp0060003': 'y',\n",
" 'dp0070001': 'y',\n",
" 'dp0070002': 'y',\n",
" 'dp0070003': 'y',\n",
" 'dp0080001': 'y',\n",
" 'dp0080002': 'y',\n",
" 'dp0080003': 'y',\n",
" 'dp0080004': 'y',\n",
" 'dp0080005': 'y',\n",
" 'dp0080006': 'y',\n",
" 'dp0080007': 'n',\n",
" 'dp0080008': 'n',\n",
" 'dp0080009': 'n',\n",
" 'dp0080010': 'n',\n",
" 'dp0080011': 'n',\n",
" 'dp0080012': 'n',\n",
" 'dp0080013': 'n',\n",
" 'dp0080014': 'n',\n",
" 'dp0080015': 'n',\n",
" 'dp0080016': 'n',\n",
" 'dp0080017': 'n',\n",
" 'dp0080018': 'n',\n",
" 'dp0080019': 'n',\n",
" 'dp0080020': 'n',\n",
" 'dp0080021': 'y',\n",
" 'dp0080022': 'n',\n",
" 'dp0080023': 'n',\n",
" 'dp0080024': 'n',\n",
" 'dp0090001': 'y',\n",
" 'dp0090002': 'y',\n",
" 'dp0090003': 'y',\n",
" 'dp0090004': 'n',\n",
" 'dp0090005': 'n',\n",
" 'dp0090006': 'y',\n",
" 'dp0100001': 'y',\n",
" 'dp0100002': 'y',\n",
" 'dp0100003': 'y',\n",
" 'dp0100004': 'n',\n",
" 'dp0100005': 'n',\n",
" 'dp0100006': 'n',\n",
" 'dp0100007': 'y',\n",
" 'dp0110001': 'y',\n",
" 'dp0110002': 'y',\n",
" 'dp0110003': 'y',\n",
" 'dp0110004': 'n',\n",
" 'dp0110005': 'y',\n",
" 'dp0110006': 'n',\n",
" 'dp0110007': 'n',\n",
" 'dp0110008': 'y',\n",
" 'dp0110009': 'n',\n",
" 'dp0110010': 'y',\n",
" 'dp0110011': 'y',\n",
" 'dp0110012': 'y',\n",
" 'dp0110013': 'y',\n",
" 'dp0110014': 'n',\n",
" 'dp0110015': 'n',\n",
" 'dp0110016': 'n',\n",
" 'dp0110017': 'y',\n",
" 'dp0120001': 'y',\n",
" 'dp0120002': 'y',\n",
" 'dp0120003': 'y',\n",
" 'dp0120004': 'y',\n",
" 'dp0120005': 'y',\n",
" 'dp0120006': 'y',\n",
" 'dp0120007': 'y',\n",
" 'dp0120008': 'y',\n",
" 'dp0120009': 'y',\n",
" 'dp0120010': 'y',\n",
" 'dp0120011': 'y',\n",
" 'dp0120012': 'y',\n",
" 'dp0120013': 'y',\n",
" 'dp0120014': 'y',\n",
" 'dp0120015': 'y',\n",
" 'dp0120016': 'y',\n",
" 'dp0120017': 'y',\n",
" 'dp0120018': 'n',\n",
" 'dp0120019': 'n',\n",
" 'dp0120020': 'n',\n",
" 'dp0130001': 'y',\n",
" 'dp0130002': 'y',\n",
" 'dp0130003': 'y',\n",
" 'dp0130004': 'y',\n",
" 'dp0130005': 'y',\n",
" 'dp0130006': 'n',\n",
" 'dp0130007': 'y',\n",
" 'dp0130008': 'y',\n",
" 'dp0130009': 'y',\n",
" 'dp0130010': 'y',\n",
" 'dp0130011': 'y',\n",
" 'dp0130012': 'y',\n",
" 'dp0130013': 'y',\n",
" 'dp0130014': 'y',\n",
" 'dp0130015': 'y',\n",
" 'dp0140001': 'n',\n",
" 'dp0150001': 'y',\n",
" 'dp0160001': 'y',\n",
" 'dp0170001': 'y',\n",
" 'dp0180001': 'y',\n",
" 'dp0180002': 'y',\n",
" 'dp0180003': 'y',\n",
" 'dp0180004': 'n',\n",
" 'dp0180005': 'n',\n",
" 'dp0180006': 'y',\n",
" 'dp0180007': 'y',\n",
" 'dp0180008': 'y',\n",
" 'dp0180009': 'y',\n",
" 'dp0190001': 'n',\n",
" 'dp0200001': 'y',\n",
" 'dp0210001': 'y',\n",
" 'dp0210002': 'y',\n",
" 'dp0210003': 'y',\n",
" 'dp0220001': 'y',\n",
" 'dp0220002': 'y',\n",
" 'dp0230001': 'y',\n",
" 'dp0230002': 'y',\n",
" 'shape_area': 'y',\n",
" 'shape_leng': 'y'}"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"190"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"num_metrics['approve'] = Series(answers)\n",
"len(num_metrics['approve'])"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x105e5ccf8>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x105e60780>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"colors = {'y': 'b', 'n': 'r'}\n",
"df = num_metrics.copy()\n",
"df[\"Color\"] = df['approve'].apply(lambda x: colors[x])\n",
"df\n",
"df.plot(x='kurtosis',y='skew',kind='scatter',c=df.Color,figsize=(12,12),logx=True)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"approve\n",
"n 461.306406\n",
"y 409.846145\n",
"Name: kurtosis, dtype: float64"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby('approve')['kurtosis'].mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Collecting columns by kurtosis"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"kurtosis ranges\n",
"-------- ------\n",
"(2.667, 22.667] : dp0080003, dp0120008, dp0120013, dp0040002, dp0020003, dp0090002, dp0230001, dp0010030, dp0100003, dp0130013, dp0010012, dp0080019, dp0180002, dp0030002, dp0210002, dp0130001, dp0010003, dp0170001, dp0010042, dp0080001, dp0010009, dp0040001, dp0110012, dp0130007, dp0130008, dp0220001, dp0160001, dp0010013, dp0010001, dp0090006, dp0010007, dp0080004, dp0130009, dp0010039, dp0110002, dp0130014, dp0120004, dp0100001, dp0080002, dp0100002, dp0010008, dp0130012, dp0010047, dp0120003, dp0010046, dp0120007, dp0050001, dp0130011, dp0130006, dp0010010, dp0130010, dp0010020, dp0110008, dp0010022, dp0130005, dp0010049, dp0230002, dp0110010, dp0010031, dp0010048, dp0130002, dp0030003, dp0010051, dp0010027, dp0010023, dp0010011, dp0220002, dp0120005, dp0010004, dp0120001, dp0010029, dp0030001, dp0180001, dp0010028, dp0020002, dp0110009, dp0050002, dp0140001, dp0010050, dp0020001, dp0110001, dp0090001, dp0120002, dp0050003, dp0180009, dp0130004, dp0010045, dp0210003, dp0210001, dp0130003, dp0010002, dp0110011, dp0120006, dp0010021, dp0010041, dp0080024, dp0120009, dp0010040, dp0100007, dp0040003, dp0120011 \n",
"\n",
"(22.667, 42.667] : dp0010038, dp0010026, dp0010019, dp0010037, dp0010056, dp0110003, dp0130015, dp0010018, dp0010057, dp0120010, dp0010055, dp0200001, dp0080023, dp0010017 \n",
"\n",
"(42.667, 62.667] : dp0080006, dp0090004, dp0110014, dp0070003, dp0080022 \n",
"\n",
"(62.667, 82.667] : dp0080021, dp0100006, dp0010044, dp0120012, dp0010036, dp0180004, dp0150001, dp0060003, dp0010033 \n",
"\n",
"(82.667, 102.667] : dp0070001 \n",
"\n",
"(102.667, 122.667] : dp0010054, dp0010024, dp0100004, dp0110006, dp0080020, dp0060001, dp0010005 \n",
"\n",
"(122.667, 142.667] : dp0010014, dp0010043 \n",
"\n",
"(142.667, 162.667] : dp0070002, dp0110017 \n",
"\n",
"(162.667, 182.667] : dp0060002, dp0080013, dp0010052, dp0180003 \n",
"\n",
"(182.667, 202.667] : dp0010006, dp0080007 \n",
"\n",
"(202.667, 222.667] : dp0180008, dp0010016, dp0120014, dp0190001 \n",
"\n",
"(222.667, 242.667] : dp0110004, dp0080016, dp0110005 \n",
"\n",
"(262.667, 282.667] : dp0120020 \n",
"\n",
"(302.667, 322.667] : dp0080008, dp0010035 \n",
"\n",
"(322.667, 342.667] : dp0180007 \n",
"\n",
"(362.667, 382.667] : dp0120015, dp0180005 \n",
"\n",
"(382.667, 402.667] : dp0080009 \n",
"\n",
"(402.667, 422.667] : dp0090003, dp0010053, dp0100005 \n",
"\n",
"(422.667, 442.667] : dp0120016 \n",
"\n",
"(462.667, 482.667] : dp0110016, dp0010015, dp0120018 \n",
"\n",
"(482.667, 502.667] : dp0080011 \n",
"\n",
"(502.667, 522.667] : dp0010034, dp0080012 \n",
"\n",
"(522.667, 542.667] : dp0080010, dp0080005 \n",
"\n",
"(562.667, 582.667] : dp0110013 \n",
"\n",
"(722.667, 742.667] : dp0010025 \n",
"\n",
"(982.667, 1002.667] : dp0090005 \n",
"\n",
"(1082.667, 1102.667] : dp0110007 \n",
"\n",
"(1302.667, 1322.667] : dp0080014 \n",
"\n",
"(1322.667, 1342.667] : dp0110015 \n",
"\n",
"(1422.667, 1442.667] : shape_leng \n",
"\n",
"(1562.667, 1582.667] : dp0120019 \n",
"\n",
"(1802.667, 1822.667] : dp0080018 \n",
"\n",
"(2282.667, 2302.667] : dp0080017 \n",
"\n",
"(2842.667, 2862.667] : dp0120017 \n",
"\n",
"(2942.667, 2962.667] : dp0080015 \n",
"\n",
"(5342.667, 5362.667] : awater10 \n",
"\n",
"(10262.667, 10282.667] : aland10 \n",
"\n",
"(13442.667, 13462.667] : dp0180006 \n",
"\n"
]
}
],
"source": [
"k_max = num_metrics['kurtosis'].max() - 0.05 * abs(num_metrics['kurtosis'].max()) ## make it a little smaller\n",
"k_min = 1.05 * num_metrics['kurtosis'].min() ## make it a little larger\n",
"t = num_metrics['kurtosis'].groupby(pd.cut(num_metrics[\"kurtosis\"], np.arange(k_min, k_max, 20)))\n",
"\n",
"print('kurtosis ranges\\n-------- ------')\n",
"for a in t.grouper.levels[0].values:\n",
" if a in t.indices:\n",
" print(a,': ',', '.join(t.get_group(a).index.values),'\\n')"
]
},
{
"cell_type": "code",
"execution_count": 185,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"ename": "TypeError",
"evalue": "unorderable types: bool() <= str()",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-185-a73e470ef1e0>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msubplots\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mbins\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m7\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlayout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m9\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mfigsize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m21\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m21\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'hist'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlogy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlegend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/tools/plotting.py\u001b[0m in \u001b[0;36mplot_frame\u001b[0;34m(data, x, y, kind, ax, subplots, sharex, sharey, layout, figsize, use_index, title, grid, legend, style, logx, logy, loglog, xticks, yticks, xlim, ylim, rot, fontsize, colormap, table, yerr, xerr, secondary_y, sort_columns, **kwds)\u001b[0m\n\u001b[1;32m 2483\u001b[0m \u001b[0myerr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0myerr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxerr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mxerr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2484\u001b[0m \u001b[0msecondary_y\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msecondary_y\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msort_columns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msort_columns\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2485\u001b[0;31m **kwds)\n\u001b[0m\u001b[1;32m 2486\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2487\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/tools/plotting.py\u001b[0m in \u001b[0;36m_plot\u001b[0;34m(data, x, y, subplots, ax, kind, **kwds)\u001b[0m\n\u001b[1;32m 2323\u001b[0m \u001b[0mplot_obj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mklass\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubplots\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msubplots\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkind\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2324\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2325\u001b[0;31m \u001b[0mplot_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgenerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2326\u001b[0m \u001b[0mplot_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2327\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mplot_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/tools/plotting.py\u001b[0m in \u001b[0;36mgenerate\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 918\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 919\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgenerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 920\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_args_adjust\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 921\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compute_plot_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 922\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_setup_subplots\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/tools/plotting.py\u001b[0m in \u001b[0;36m_args_adjust\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1941\u001b[0m hist, self.bins = np.histogram(values, bins=self.bins,\n\u001b[1;32m 1942\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'range'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1943\u001b[0;31m weights=self.kwds.get('weights', None))\n\u001b[0m\u001b[1;32m 1944\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1945\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcom\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_list_like\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbottom\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/numpy/lib/function_base.py\u001b[0m in \u001b[0;36mhistogram\u001b[0;34m(a, bins, range, normed, weights, density)\u001b[0m\n\u001b[1;32m 185\u001b[0m \u001b[0mrange\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 186\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 187\u001b[0;31m \u001b[0mrange\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 188\u001b[0m \u001b[0mmn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mmi\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m0.0\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mmi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 189\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmn\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mmx\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/numpy/core/_methods.py\u001b[0m in \u001b[0;36m_amin\u001b[0;34m(a, axis, out, keepdims)\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 28\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_amin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeepdims\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 29\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mumr_minimum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeepdims\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 30\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_sum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeepdims\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mTypeError\u001b[0m: unorderable types: bool() <= str()"
]
}
],
"source": [
"df.plot(subplots=True,bins=7,layout=(9,5),figsize=(21,21),kind='hist',logy=True,legend=False);"
]
},
{
"cell_type": "code",
"execution_count": 354,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"http://common-data.cartodb.com/api/v2/sql?q=SELECT%20*%20FROM%20all_day%20LIMIT%200&format=csv&filename=all_day\n",
"\n"
]
}
],
"source": [
"column_names = mkUrl(acctName,tableName,limit='LIMIT%200')\n",
"print(column_names)\n",
"t = pd.read_csv(column_names)\n",
"banned = ['the_geom','the_geom_webmercator','cartodb_id','created_at','updated_at']\n",
"cols = []\n",
"for c in t:\n",
" if (c not in banned) & (t[c].dtype != 'object'):\n",
" cols.append(c)\n",
"\n",
"print(','.join(cols))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get more indepth stats using [scipy.stats.desc](http://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.stats.describe.html)"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"clmn\tnum\tminmax\tmean\tvar\tskew\tkurtosis\n",
"depth \t 222\t(0.0, 208.62)\t17.0649261261\t798.823978299\t3.5681803892920207\t16.147488224314706\n",
"mag \t 222\t(-0.10000000000000001, 5.5999999999999996)\t1.81531531532\t1.58595713995\t1.246953727971373\t1.192239989861104\n",
"nst \t 153\t(3.0, 82.0)\t21.0849673203\t242.565101479\t1.5853127360965464\t2.669515568094612\n",
"gap \t 183\t(23.0, 319.0)\t107.90704918\t3858.77095168\t1.3178788032001225\t1.2217761865370296\n",
"dmin \t 183\t(0.00059239999999999998, 11.324000000000002)\t0.402881441694\t1.59172067029\t5.736046566233354\t37.96420844347665\n",
"rms \t 219\t(0.01, 2.6800000000000002)\t0.31820456621\t0.120610742548\t2.3009398871390228\t9.156679301879363\n"
]
}
],
"source": [
"## Give back the stats of each column (via scipy.stats)\n",
"print('\\t'.join(['clmn','num','minmax','mean','var','skew','kurtosis']))\n",
"for c in df:\n",
" n, mm, mu, s, sk, k = desc(df[c].replace([np.inf, -np.inf], np.nan).dropna())\n",
" print(c,'\\t','\\t'.join(str(x) for x in [n,mm,mu,s,sk,k]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Poisson Distribution (with seven bins)\n",
"More [here](http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.poisson.html)"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\nAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x104195e48>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"s = np.random.poisson(20,100000)\n",
"count, bins, ignored = plt.hist(s, bins=44, normed=True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pareto Distribution\n",
"More [here](http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.pareto.html)"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x108d50fd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"a, m = 3., 1. # shape and mode\n",
"s = np.random.pareto(a,100000) + m\n",
"count, bins, ignored = plt.hist(s, 100, normed=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Power \n",
"More [here]()"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x108ddd7f0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"a = 5. # shape\n",
"samples = 100000\n",
"s = np.random.power(a, samples)\n",
"count, bins, ignored = plt.hist(s, bins=75)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Normal Dist\n",
"More [here]()"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x108c7d780>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mu, sigma = 0, 0.1 # mean and standard deviation\n",
"s = np.random.normal(mu, sigma, 100000)\n",
"count, bins, ignored = plt.hist(np.pi + s, bins=100, normed=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zipf/power law"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nU4TxHQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x108c63fd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"a = 2. # parameter\n",
"s = np.random.zipf(a, 100000)\n",
"count, bins, ignored = plt.hist(s[s<50], bins=75, normed=True)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Classify Data by Distribution\n",
"\n",
"How to identify distributions of data?\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment