Skip to content

Instantly share code, notes, and snippets.

@darkblue-b
Last active August 29, 2015 14:16
Show Gist options
  • Save darkblue-b/e064b542078221accc78 to your computer and use it in GitHub Desktop.
Save darkblue-b/e064b542078221accc78 to your computer and use it in GitHub Desktop.
clean geodataframe JOIN example, not solved
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:a15c442fea31302f6b75c5c7010d1c6b99011222cd1406891212158c8d5b919e"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas as pd\n",
"import geopandas as gpd\n",
"from geopandas import GeoDataFrame\n",
"\n",
"from geopandas.tools import sjoin\n",
"\n",
"## Minimal JOIN on GeoDataFrame\n",
"## 26feb15 --dbb"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import psycopg2\n",
"conn = psycopg2.connect( \"dbname=geo_datamine_f\" )\n",
"curs = conn.cursor()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#conn.rollback()"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"rpd = pd.DataFrame( \n",
" data=[ (0,'94601',3),(1,'94602',4),(2,'94603',5) ],\n",
" columns = ('id','zcta5ce10','val') \n",
")"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"t_sql = ''' SELECT gid, zcta5ce10, geom \n",
" FROM zips_2010 WHERE zcta5ce10 ~ '^946';\n",
"'''\n",
"gdf = gpd.read_postgis( t_sql, conn, crs=4326)\n",
"gdf.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"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>gid</th>\n",
" <th>zcta5ce10</th>\n",
" <th>geom</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> 23247</td>\n",
" <td> 94613</td>\n",
" <td> (POLYGON ((-122.178271 37.779933, -122.178281 ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 23248</td>\n",
" <td> 94618</td>\n",
" <td> (POLYGON ((-122.228048 37.830005, -122.228202 ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 23249</td>\n",
" <td> 94619</td>\n",
" <td> (POLYGON ((-122.193419 37.774343, -122.193507 ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> 23250</td>\n",
" <td> 94621</td>\n",
" <td> (POLYGON ((-122.20084 37.76913, -122.200178 37...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td> 23236</td>\n",
" <td> 94601</td>\n",
" <td> (POLYGON ((-122.227171 37.791969, -122.226933 ...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows \u00d7 3 columns</p>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 13,
"text": [
" gid zcta5ce10 geom\n",
"0 23247 94613 (POLYGON ((-122.178271 37.779933, -122.178281 ...\n",
"1 23248 94618 (POLYGON ((-122.228048 37.830005, -122.228202 ...\n",
"2 23249 94619 (POLYGON ((-122.193419 37.774343, -122.193507 ...\n",
"3 23250 94621 (POLYGON ((-122.20084 37.76913, -122.200178 37...\n",
"4 23236 94601 (POLYGON ((-122.227171 37.791969, -122.226933 ...\n",
"\n",
"[5 rows x 3 columns]"
]
}
],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"## calling GeoDataFrame merge does create a GeoDataFrame, of course !!\n",
"\n",
"res801 = GeoDataFrame.merge( gdf, rpd )\n",
"print type(res801)\n",
"#print res801\n",
"res801.plot( column='val')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"<class 'geopandas.geodataframe.GeoDataFrame'>\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 12,
"text": [
"<matplotlib.axes.AxesSubplot at 0x7f6d977e2510>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x7f6d9776d990>"
]
}
],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"## calling PANDAS merge does not create a GeoDataFrame, of course\n",
"\n",
"res800 = pd.merge( rpd, gdf )\n",
"print type(res800)\n",
"res800"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"gdf.plot()"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment