{ "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", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
B17001010B17001049B17001033B17001053B17001031B17001018B17001005B17001020B17001057B17001041...B17001052B17001035B17001008B17001024B17001042B17001014B17001059B17001055B17001017B17001037
86000US606081329166217211857500171123230122926583988...4941845102137630858021336307610976203
86000US6061517766539661157301993415437822452008...19892524948150425697522145029257
86000US9004985794671106032561001823532365...20491602051878102161825091313247
\n", "

3 rows × 59 columns

\n", "
" ], "text/plain": [ " B17001010 B17001049 B17001033 B17001053 B17001031 \\\n", "86000US60608 1329 1662 1721 1857 50017 \n", "86000US60615 1776 653 966 1157 30199 \n", "86000US90049 85 794 671 1060 32561 \n", "\n", " B17001018 B17001005 B17001020 B17001057 B17001041 \\\n", "86000US60608 1123 230 1229 2658 3988 \n", "86000US60615 341 54 378 2245 2008 \n", "86000US90049 0 0 18 2353 2365 \n", "\n", " ... B17001052 B17001035 B17001008 B17001024 \\\n", "86000US60608 ... 494 1845 102 1376 \n", "86000US60615 ... 198 925 24 948 \n", "86000US90049 ... 204 916 0 205 \n", "\n", " B17001042 B17001014 B17001059 B17001055 B17001017 B17001037 \n", "86000US60608 3085 802 1336 3076 10976 203 \n", "86000US60615 1504 256 975 2214 5029 257 \n", "86000US90049 1878 102 1618 2509 1313 247 \n", "\n", "[3 rows x 59 columns]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
B17001010B17001049B17001033B17001053B17001031B17001018B17001005B17001020B17001057B17001041...B17001052B17001035B17001008B17001024B17001042B17001014B17001059B17001055B17001017B17001037
count3.0000003.0000003.0000003.0000003.0000003.0000003.0000003.0000003.0000003.000000...3.0000003.0000003.0000003.0000003.0000003.0000003.0000003.0000003.0000003.000000
mean1063.3333331036.3333331119.3333331358.00000037592.333333488.00000094.666667541.6666672418.6666672787.000000...298.6666671228.66666742.000000843.0000002155.666667386.6666671309.6666672599.6666675772.666667235.666667
std876.244448546.410407541.533317434.85974810824.694792575.750814120.271914621.868421214.1876121055.302326...169.190228533.77929353.329167592.519198826.265292367.838733322.307824438.0939784874.23556428.728615
min85.000000653.000000671.0000001060.00000030199.0000000.0000000.00000018.0000002245.0000002008.000000...198.000000916.0000000.000000205.0000001504.000000102.000000975.0000002214.0000001313.000000203.000000
25%707.000000723.500000818.5000001108.50000031380.000000170.50000027.000000198.0000002299.0000002186.500000...201.000000920.50000012.000000576.5000001691.000000179.0000001155.5000002361.5000003171.000000225.000000
50%1329.000000794.000000966.0000001157.00000032561.000000341.00000054.000000378.0000002353.0000002365.000000...204.000000925.00000024.000000948.0000001878.000000256.0000001336.0000002509.0000005029.000000247.000000
75%1552.5000001228.0000001343.5000001507.00000041289.000000732.000000142.000000803.5000002505.5000003176.500000...349.0000001385.00000063.0000001162.0000002481.500000529.0000001477.0000002792.5000008002.500000252.000000
max1776.0000001662.0000001721.0000001857.00000050017.0000001123.000000230.0000001229.0000002658.0000003988.000000...494.0000001845.000000102.0000001376.0000003085.000000802.0000001618.0000003076.00000010976.000000257.000000
\n", "

8 rows × 59 columns

\n", "
" ], "text/plain": [ " B17001010 B17001049 B17001033 B17001053 B17001031 \\\n", "count 3.000000 3.000000 3.000000 3.000000 3.000000 \n", "mean 1063.333333 1036.333333 1119.333333 1358.000000 37592.333333 \n", "std 876.244448 546.410407 541.533317 434.859748 10824.694792 \n", "min 85.000000 653.000000 671.000000 1060.000000 30199.000000 \n", "25% 707.000000 723.500000 818.500000 1108.500000 31380.000000 \n", "50% 1329.000000 794.000000 966.000000 1157.000000 32561.000000 \n", "75% 1552.500000 1228.000000 1343.500000 1507.000000 41289.000000 \n", "max 1776.000000 1662.000000 1721.000000 1857.000000 50017.000000 \n", "\n", " B17001018 B17001005 B17001020 B17001057 B17001041 \\\n", "count 3.000000 3.000000 3.000000 3.000000 3.000000 \n", "mean 488.000000 94.666667 541.666667 2418.666667 2787.000000 \n", "std 575.750814 120.271914 621.868421 214.187612 1055.302326 \n", "min 0.000000 0.000000 18.000000 2245.000000 2008.000000 \n", "25% 170.500000 27.000000 198.000000 2299.000000 2186.500000 \n", "50% 341.000000 54.000000 378.000000 2353.000000 2365.000000 \n", "75% 732.000000 142.000000 803.500000 2505.500000 3176.500000 \n", "max 1123.000000 230.000000 1229.000000 2658.000000 3988.000000 \n", "\n", " ... B17001052 B17001035 B17001008 B17001024 \\\n", "count ... 3.000000 3.000000 3.000000 3.000000 \n", "mean ... 298.666667 1228.666667 42.000000 843.000000 \n", "std ... 169.190228 533.779293 53.329167 592.519198 \n", "min ... 198.000000 916.000000 0.000000 205.000000 \n", "25% ... 201.000000 920.500000 12.000000 576.500000 \n", "50% ... 204.000000 925.000000 24.000000 948.000000 \n", "75% ... 349.000000 1385.000000 63.000000 1162.000000 \n", "max ... 494.000000 1845.000000 102.000000 1376.000000 \n", "\n", " B17001042 B17001014 B17001059 B17001055 B17001017 \\\n", "count 3.000000 3.000000 3.000000 3.000000 3.000000 \n", "mean 2155.666667 386.666667 1309.666667 2599.666667 5772.666667 \n", "std 826.265292 367.838733 322.307824 438.093978 4874.235564 \n", "min 1504.000000 102.000000 975.000000 2214.000000 1313.000000 \n", "25% 1691.000000 179.000000 1155.500000 2361.500000 3171.000000 \n", "50% 1878.000000 256.000000 1336.000000 2509.000000 5029.000000 \n", "75% 2481.500000 529.000000 1477.000000 2792.500000 8002.500000 \n", "max 3085.000000 802.000000 1618.000000 3076.000000 10976.000000 \n", "\n", " B17001037 \n", "count 3.000000 \n", "mean 235.666667 \n", "std 28.728615 \n", "min 203.000000 \n", "25% 225.000000 \n", "50% 247.000000 \n", "75% 252.000000 \n", "max 257.000000 \n", "\n", "[8 rows x 59 columns]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "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.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }