{ "cells": [ { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import requests\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "zips = [90049, 60608, 60615]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "API_URL=\"http://api.censusreporter.org/1.0/data/show/{release}?table_ids={table_ids}&geo_ids={geoids}\"" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def get_data(tables=None, geoids=None, release='latest'):\n", " if geoids is None:\n", " geoids = ['040|01000US']\n", " if tables is None:\n", " tables = ['B01001']\n", "\n", " url = API_URL.format(table_ids=','.join(tables).upper(), \n", " geoids=','.join(geoids), \n", " release=release)\n", " response = requests.get(url)\n", " return response.json()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def prep_for_pandas(json_data,include_moe=False):\n", " \"\"\"Given a dict of dicts as they come from a Census Reporter API call, set it up to be amenable \n", " to pandas.DataFrame.from_dict\"\"\"\n", " result = {}\n", " for geoid, tables in json_data.items():\n", " flat = {}\n", " for table,values in tables.items():\n", " for kind, columns in values.items():\n", " if kind == 'estimate':\n", " flat.update(columns)\n", " elif kind == 'error' and include_moe:\n", " renamed = dict((k+\"_moe\",v) for k,v in columns.items())\n", " flat.update(renamed)\n", " result[geoid] = flat\n", " return result" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [], "source": [ "response = get_data(geoids = [\"86000US\" + str(z) for z in zips], tables = ['B17001'])\n", "df = pd.DataFrame.from_dict(prep_for_pandas(response['data']),orient='index')" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", " | B17001010 | \n", "B17001049 | \n", "B17001033 | \n", "B17001053 | \n", "B17001031 | \n", "B17001018 | \n", "B17001005 | \n", "B17001020 | \n", "B17001057 | \n", "B17001041 | \n", "... | \n", "B17001052 | \n", "B17001035 | \n", "B17001008 | \n", "B17001024 | \n", "B17001042 | \n", "B17001014 | \n", "B17001059 | \n", "B17001055 | \n", "B17001017 | \n", "B17001037 | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
86000US60608 | \n", "1329 | \n", "1662 | \n", "1721 | \n", "1857 | \n", "50017 | \n", "1123 | \n", "230 | \n", "1229 | \n", "2658 | \n", "3988 | \n", "... | \n", "494 | \n", "1845 | \n", "102 | \n", "1376 | \n", "3085 | \n", "802 | \n", "1336 | \n", "3076 | \n", "10976 | \n", "203 | \n", "
86000US60615 | \n", "1776 | \n", "653 | \n", "966 | \n", "1157 | \n", "30199 | \n", "341 | \n", "54 | \n", "378 | \n", "2245 | \n", "2008 | \n", "... | \n", "198 | \n", "925 | \n", "24 | \n", "948 | \n", "1504 | \n", "256 | \n", "975 | \n", "2214 | \n", "5029 | \n", "257 | \n", "
86000US90049 | \n", "85 | \n", "794 | \n", "671 | \n", "1060 | \n", "32561 | \n", "0 | \n", "0 | \n", "18 | \n", "2353 | \n", "2365 | \n", "... | \n", "204 | \n", "916 | \n", "0 | \n", "205 | \n", "1878 | \n", "102 | \n", "1618 | \n", "2509 | \n", "1313 | \n", "247 | \n", "
3 rows × 59 columns
\n", "\n", " | B17001010 | \n", "B17001049 | \n", "B17001033 | \n", "B17001053 | \n", "B17001031 | \n", "B17001018 | \n", "B17001005 | \n", "B17001020 | \n", "B17001057 | \n", "B17001041 | \n", "... | \n", "B17001052 | \n", "B17001035 | \n", "B17001008 | \n", "B17001024 | \n", "B17001042 | \n", "B17001014 | \n", "B17001059 | \n", "B17001055 | \n", "B17001017 | \n", "B17001037 | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "... | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "3.000000 | \n", "
mean | \n", "1063.333333 | \n", "1036.333333 | \n", "1119.333333 | \n", "1358.000000 | \n", "37592.333333 | \n", "488.000000 | \n", "94.666667 | \n", "541.666667 | \n", "2418.666667 | \n", "2787.000000 | \n", "... | \n", "298.666667 | \n", "1228.666667 | \n", "42.000000 | \n", "843.000000 | \n", "2155.666667 | \n", "386.666667 | \n", "1309.666667 | \n", "2599.666667 | \n", "5772.666667 | \n", "235.666667 | \n", "
std | \n", "876.244448 | \n", "546.410407 | \n", "541.533317 | \n", "434.859748 | \n", "10824.694792 | \n", "575.750814 | \n", "120.271914 | \n", "621.868421 | \n", "214.187612 | \n", "1055.302326 | \n", "... | \n", "169.190228 | \n", "533.779293 | \n", "53.329167 | \n", "592.519198 | \n", "826.265292 | \n", "367.838733 | \n", "322.307824 | \n", "438.093978 | \n", "4874.235564 | \n", "28.728615 | \n", "
min | \n", "85.000000 | \n", "653.000000 | \n", "671.000000 | \n", "1060.000000 | \n", "30199.000000 | \n", "0.000000 | \n", "0.000000 | \n", "18.000000 | \n", "2245.000000 | \n", "2008.000000 | \n", "... | \n", "198.000000 | \n", "916.000000 | \n", "0.000000 | \n", "205.000000 | \n", "1504.000000 | \n", "102.000000 | \n", "975.000000 | \n", "2214.000000 | \n", "1313.000000 | \n", "203.000000 | \n", "
25% | \n", "707.000000 | \n", "723.500000 | \n", "818.500000 | \n", "1108.500000 | \n", "31380.000000 | \n", "170.500000 | \n", "27.000000 | \n", "198.000000 | \n", "2299.000000 | \n", "2186.500000 | \n", "... | \n", "201.000000 | \n", "920.500000 | \n", "12.000000 | \n", "576.500000 | \n", "1691.000000 | \n", "179.000000 | \n", "1155.500000 | \n", "2361.500000 | \n", "3171.000000 | \n", "225.000000 | \n", "
50% | \n", "1329.000000 | \n", "794.000000 | \n", "966.000000 | \n", "1157.000000 | \n", "32561.000000 | \n", "341.000000 | \n", "54.000000 | \n", "378.000000 | \n", "2353.000000 | \n", "2365.000000 | \n", "... | \n", "204.000000 | \n", "925.000000 | \n", "24.000000 | \n", "948.000000 | \n", "1878.000000 | \n", "256.000000 | \n", "1336.000000 | \n", "2509.000000 | \n", "5029.000000 | \n", "247.000000 | \n", "
75% | \n", "1552.500000 | \n", "1228.000000 | \n", "1343.500000 | \n", "1507.000000 | \n", "41289.000000 | \n", "732.000000 | \n", "142.000000 | \n", "803.500000 | \n", "2505.500000 | \n", "3176.500000 | \n", "... | \n", "349.000000 | \n", "1385.000000 | \n", "63.000000 | \n", "1162.000000 | \n", "2481.500000 | \n", "529.000000 | \n", "1477.000000 | \n", "2792.500000 | \n", "8002.500000 | \n", "252.000000 | \n", "
max | \n", "1776.000000 | \n", "1662.000000 | \n", "1721.000000 | \n", "1857.000000 | \n", "50017.000000 | \n", "1123.000000 | \n", "230.000000 | \n", "1229.000000 | \n", "2658.000000 | \n", "3988.000000 | \n", "... | \n", "494.000000 | \n", "1845.000000 | \n", "102.000000 | \n", "1376.000000 | \n", "3085.000000 | \n", "802.000000 | \n", "1618.000000 | \n", "3076.000000 | \n", "10976.000000 | \n", "257.000000 | \n", "
8 rows × 59 columns
\n", "