From 01269c6fb5fea7c1d0369bb4c09c6aa382044fa3 Mon Sep 17 00:00:00 2001 From: Matt Bowen Date: Wed, 22 Dec 2021 10:12:43 -0500 Subject: [PATCH] Add Broward Co, FL data and refactor to slightly more generality --- notebooks/broward-fl-zcta.ipynb | 1277 +++++++++++++++++++++++++++++++ 1 file changed, 1277 insertions(+) create mode 100644 notebooks/broward-fl-zcta.ipynb diff --git a/notebooks/broward-fl-zcta.ipynb b/notebooks/broward-fl-zcta.ipynb new file mode 100644 index 0000000..2cb788e --- /dev/null +++ b/notebooks/broward-fl-zcta.ipynb @@ -0,0 +1,1277 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "371051ea-393a-49c8-93fd-004062c806bf", + "metadata": {}, + "source": [ + "# ZCTA Proxy for Broward County, FL\n", + "\n", + "This is an adaptation of the Dept. of Treasury [Guidelines for fact-specific proxies](https://home.treasury.gov/policy-issues/coronavirus/assistance-for-state-local-and-tribal-governments/emergency-rental-assistance-program/service-design/fact-specific-proxies) using ZIP Code Tabulation Areas for Lackawanna County, PA. Because the main [Data Pipeline for Emergency Rental Assistance](https://github.com/usds/erap/tree/main/arp_pipeline) is tract/address-based, this is a one-off. However, it follows the same basic conceptual outlines as the main pipeline, and so should be possible to integrate as an additonal output for states and counties if there's greater demand.\n", + "\n", + "The steps are as follows:\n", + "\n", + "- Lookup FL's FIPS code and Broward County's code as well\n", + "- Grab the census variables we use in the analysis (median income, median renter income) and do a little cleaning on the census data\n", + "- Use the [Census ZCTA-County mapping](https://www2.census.gov/geo/docs/maps-data/data/rel/zcta_county_rel_10.txt) to figure out which ZCTAs are in Lackawanna County, PA, and filter down the census data to just those ZCTAs\n", + "- Add in the HUD income limit for the county\n", + "- Backfill any missing renter incomes with median incomes for the ZCTA\n", + "- Do a comparison of the income-data we have with the income limit to determine our facts for each ZCTA\n", + "- Export" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "747d3afc", + "metadata": {}, + "outputs": [], + "source": [ + "import censusdata\n", + "import numpy as np\n", + "import pandas as pd\n", + "from scipy import stats\n", + "import enum" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "2cff6613-8120-4000-9090-d41a58747468", + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext sql" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "b6c22b58-d289-4d8a-addb-d8323521445f", + "metadata": {}, + "outputs": [], + "source": [ + "state = 'Florida'\n", + "county = 'Broward'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "365f41fb-b8f0-4c6f-9bfd-27b41a2fe32b", + "metadata": {}, + "outputs": [], + "source": [ + "state_geos = censusdata.geographies(\n", + " censusdata.censusgeo([(\"state\", \"*\")]), \"acs5\", 2019\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5e57cc10-ce67-4951-8920-d339b91d3e4a", + "metadata": {}, + "outputs": [], + "source": [ + "statefp = [val for name, val in state_geos.items() if name==state][0].params()[0][-1]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "2d6041bc-4124-4932-85e1-0046abc86e23", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'12'" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "statefp" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "039f45c7-ee78-4043-881d-7e668df1c093", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 rows affected.\n" + ] + }, + { + "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", + "
gidstatefpcountyfpcountynscntyidfpnamenamelsadlsadclassfpmtfcccsafpcbsafpmetdivfpfuncstatalandawaterintptlatintptlonthe_geom
284120110029575312011BrowardBroward County06H1G40203703310022744A3115289087310801098.0+26.1935353-080.47668340106000020AD1000000100000001030000000100000050050000AB5791D1011354C0AC38D55A98553A40E2CCAFE6001354C004392861A6553A40BEF6CC92001354C081EB8A19E1553A40DAA7E331031354C0CB457C2766593A403F6D54A7031354C07B8505F7035A3A400A12DBDD031354C010B1C1C2495A3A40F2CF0CE2031354C0AF40F4A44C5A3A40F2CF0CE2031354C0E90AB6114F5A3A40BC749318041354C0EBA529029C5A3A406FD74B53041354C053060E68E95A3A4099B85510031354C05E9D6340F65A3A40E6559DD5021354C0DF30D120055B3A4071732A19001354C00DFCA886FD5A3A406AD95A5F241254C0030473F4F8593A408235CEA6231254C06A317898F6593A409F3D97A9491154C073D87DC7F0583A40834F73F2221154C0B45373B9C1583A4017299485AF1054C0853FC39B35583A4001BC0512141054C05C74B2D47A573A40D9429083121054C0C85EEFFE78573A4067614F3BFC0F54C01A4B581B63573A4067614F3BFC0F54C0D3BB783F6E573A4024EB7074950F54C09B374E0AF3563A40BE2F2E55690F54C0FE9B1727BE563A40AE2990D9590F54C055DD239BAB563A40505260014C0F54C0997FF44D9A563A4012D90759160F54C0A3E36A6457563A40C6866EF6070F54C0A1D9756F45563A409E279EB3050F54C0A2410A9E42563A4094D8B5BDDD0E54C0E52494BE10563A40AA27F38FBE0E54C0FF91E9D0E9553A40C0594A96930E54C0D95A5F24B4553A406A12BC218D0E54C0253FE257AC553A40D6E253008C0E54C042588D25AC553A40F415A4198B0E54C00169FF03AC553A405B43A9BD880E54C00169FF03AC553A40670B08AD870E54C00169FF03AC553A4033182312850E54C0DFFAB0DEA8553A4066868DB27E0E54C00CC68844A1553A40389ECF807A0E54C0564277499C553A4062F71DC3630E54C011C4793881553A406072A3C85A0E54C05E10919A76553A40A12AA6D24F0E54C07092E68F69553A40DFDBF4673F0E54C05D514A0856553A40F243A511330E54C040834D9D47553A4035CF11F92E0E54C02BF702B342553A404703780B240E54C03E7958A835553A402CEE3F321D0E54C0C58F31772D553A402157EA59100E54C0DE3653211E553A4096E82CB3080E54C09CC24A0515553A406FF1F09E030E54C0DAC4C9FD0E553A404C4F58E2010E54C0C3D0EAE40C553A401F813FFCFC0D54C044C2F7FE06553A4080D4264EEE0D54C00586AC6EF5543A403BC43F6CE90D54C0266F8099EF543A403F8EE6C8CA0D54C0F7C77BD5CA543A405D19541B9C0D54C0D8B5BDDD92543A40AC014A438D0D54C02FF7C95180543A4046E867EA750D54C03E07962364543A405987A3AB740D54C050A6D1E462543A40BB5F05F86E0D54C0651536035C543A40F46DC1525D0D54C05EB69DB646543A40D788601C5C0D54C0AD872F1345543A4077634161500D54C0B48F15FC36543A40156EF9484A0D54C00531D0B52F543A40280D350A490D54C077D844662E543A405CC98E8D400D54C088F2052D24543A40446ADAC5340D54C04E0B5EF415543A40AD16D863220D54C0FA42C879FF533A4080457EFD100D54C057410C74ED533A40DAAA24B20F0D54C0C8E88024EC533A40D09849D40B0D54C0B7B1D991EA533A40A7052FFA0A0D54C0F9A067B3EA533A40BEF6CC92000D54C0C8E88024EC533A4047C66AF3FF0C54C069E04735EC533A40ADBF2500FF0C54C0AACFD556EC533A40FB761211FE0C54C0ECBE6378EC533A406C04E275FD0C54C02DAEF199EC533A407E8978EBFC0C54C0CEA5B8AAEC533A40AE27BA2EFC0C54C06F9D7FBBEC533A407FBDC282FB0C54C04BC79C67EC533A40AF5B04C6FA0C54C05184D4EDEC533A40D93C0E83F90C54C0336B2920ED533A40030473F4F80C54C0D462F030ED533A4075914259F80C54C015527E52ED533A40C22E8A1EF80C54C015527E52ED533A4016A3AEB5F70C54C0B6494563ED533A4093C49272F70C54C098309A95ED533A40C91F0C3CF70C54C07A17EFC7ED533A402842EA76F60C54C0E59997C3EE533A40350A4966F50C54C057410C74ED533A408F6FEF1AF40C54C00F9546CCEC533A40AED689CBF10C54C0450A65E1EB533A40672AC423F10C54C0A5129ED0EB533A40026553AEF00C54C0450A65E1EB533A40DCEF5014E80C54C0D462F030ED533A40B62C5F97E10C54C0B08C0DDDEC533A406F8099EFE00C54C0F27B9BFEEC533A40C442AD69DE0C54C0EA56CF49EF533A4035D07CCEDD0C54C04A5F0839EF533A40FAD170CADC0C54C003B34291EE533A401805C1E3DB0C54C05CFE43FAED533A40852348A5D80C54C098309A95ED533A40AA61BF27D60C54C0392861A6ED533A4096236420CF0C54C07A17EFC7ED533A40ED9BFBABC70C54C05CFE43FAED533A40BC92E4B9BE0C54C0DFDC5F3DEE533A4016F88A6EBD0C54C09EEDD11BEE533A40CAC2D7D7BA0C54C080D4264EEE533A4029E5B512BA0C54C03EE5982CEE533A4024287E8CB90C54C09EEDD11BEE533A40FD648C0FB30C54C0FDF50A0BEE533A402AFC19DEAC0C54C0BC067DE9ED533A40813D26529A0C54C0D91F28B7ED533A405489B2B7940C54C0D91F28B7ED533A409692E524940C54C098309A95ED533A40AEEE586C930C54C057410C74ED533A400854FF20920C54C098309A95ED533A40D3DB9F8B860C54C05184D4EDEC533A402D414640850C54C09273620FED533A4077D7D9907F0C54C06F9D7FBBEC533A40DDB06D51660C54C0404D2D5BEB533A4037161406650C54C0813CBB7CEB533A4014234BE6580C54C07C7F83F6EA533A4065AA6054520C54C099982EC4EA533A40D1C8E7154F0C54C0F9A067B3EA533A408A1C226E4E0C54C0DB87BCE5EA533A407A336ABE4A0C54C0F9A067B3EA533A40D2DF4BE1410C54C0B7B1D991EA533A40D8B628B3410C54C0B7B1D991EA533A40321CCF67400C54C034D3BD4EEA533A409BE271512D0C54C094DBF63DEA533A40977329AE2A0C54C0F3E32F2DEA533A40CE6A813D260C54C0F3E32F2DEA533A40213D450E110C54C0B2F4A10BEA533A403C8386FE090C54C0B2F4A10BEA533A4026A94C31070C54C011FDDAFAE9533A40E31A9FC9FE0B54C011FDDAFAE9533A40B4FE9600FC0B54C011FDDAFAE9533A4027C0B0FCF90B54C0700514EAE9533A407D04FEF0F30B54C0700514EAE9533A40EFC517EDF10B54C0700514EAE9533A404FE8F527F10B54C0700514EAE9533A4091F12895F00B54C0700514EAE9533A40560DC2DCEE0B54C0700514EAE9533A409EEDD11BEE0B54C0700514EAE9533A40392861A6ED0B54C0700514EAE9533A40E144F46BEB0B54C0CF0D4DD9E9533A40E42EC214E50B54C0CF0D4DD9E9533A40CD3AE3FBE20B54C0CF0D4DD9E9533A409ED0EB4FE20B54C0CF0D4DD9E9533A40F84F3750E00B54C0CF0D4DD9E9533A40B1A371A8DF0B54C0CF0D4DD9E9533A400518963FDF0B54C0CF0D4DD9E9533A40E7323509DE0B54C02F1686C8E9533A4023658BA4DD0B54C02F1686C8E9533A40122EE411DC0B54C08E1EBFB7E9533A40C746205ED70B54C0AC376A85E9533A409ECDAACFD50B54C0AC376A85E9533A40F38FBE49D30B54C06A48DC63E9533A408BDD3EABCC0B54C088618731E9533A40A9108FC4CB0B54C088618731E9533A40E690D442C90B54C029594E42E9533A40BC92E4B9BE0B54C0AC376A85E9533A403D98141F9F0B54C0D5CA845FEA533A40FB57569A940B54C0F9A067B3EA533A407C6308008E0B54C03A90F5D4EA533A400664AF777F0B54C0FE5D9F39EB533A40CD0182397A0B54C0BD6E1118EB533A4036CB65A3730B54C01C774A07EB533A40CC7C073F710B54C07C7F83F6EA533A408E91EC116A0B54C099982EC4EA533A400C01C0B1670B54C099982EC4EA533A4013F241CF660B54C099982EC4EA533A409604A8A9650B54C0B7B1D991EA533A40D9756F45620B54C0F3E32F2DEA533A407A87DBA1610B54C04D2F3196E9533A402E1EDE73600B54C0D732198EE7533A409FABADD85F0B54C04E97C5C4E6533A4023D8B8FE5D0B54C0DCEF5014E8533A40B83B6BB75D0B54C09B00C3F2E7533A4005D9B27C5D0B54C07DE71725E8533A4023F25D4A5D0B54C05FCE6C57E8533A40EEB089CC5C0B54C0A1BDFA78E8533A403C4ED1915C0B54C041B5C189E8533A40D7BCAAB35A0B54C04772F90FE9533A40EA5BE674590B54C0FA08FCE1E7533A40338AE596560B54C0BED6A546E8533A4076DEC666470B54C05FCE6C57E8533A40A25BAFE9410B54C000C63368E8533A40EDBAB722310B54C0AC376A85E9533A4047205ED72F0B54C02F1686C8E9533A408CF678211D0B54C01C774A07EB533A409CD9AED0070B54C011FDDAFAE9533A40EFAB72A1F20A54C0A67A32FFE8533A40D78349F1F10A54C006836BEEE8533A4054A52DAEF10A54C006836BEEE8533A40618731E9EF0A54C0A67A32FFE8533A40501C40BFEF0A54C04772F90FE9533A40321D3A3DEF0A54C029594E42E9533A40965D30B8E60A54C0AC376A85E9533A40F699B33EE50A54C00B40A374E9533A40BA8102EFE40A54C06A48DC63E9533A40616A4B1DE40A54C06A48DC63E9533A409D9CA1B8E30A54C00B40A374E9533A40FDBE7FF3E20A54C04D2F3196E9533A40E6B0FB8EE10A54C0B7B1D991EA533A40ECA17DACE00A54C03A90F5D4EA533A4034828DEBDF0A54C0BD6E1118EB533A4046072461DF0A54C0FE5D9F39EB533A409A7B48F8DE0A54C0E144F46BEB533A407C96E7C1DD0A54C0404D2D5BEB533A4077D9AF3BDD0A54C0404D2D5BEB533A40A1A014ADDC0A54C09F55664AEB533A40EF71A609DB0A54C05E66D828EB533A4001F73C7FDA0A54C05E66D828EB533A40BA641C23D90A54C0BD6E1118EB533A405B76887FD80A54C0813CBB7CEB533A40E54526E0D70A54C00AD80E46EC533A407AC37DE4D60A54C0404D2D5BEB533A4060C8EA56CF0A54C09F55664AEB533A403B3602F1BA0A54C0FE5D9F39EB533A400B7BDAE1AF0A54C0ED26F8A6E9533A40548F34B8AD0A54C0700514EAE9533A40E2E47E87A20A54C0E144F46BEB533A400018CFA0A10A54C02234828DEB533A40A8FDD64E940A54C0041BD7BFEB533A403EAF78EA910A54C0A5129ED0EB533A40D74AE82E890A54C087F9F202EC533A40BE2F2E55690A54C058A9A0A2EA533A403ACC9717600A54C017BA1281EA533A407E54C37E4F0A54C0D5CA845FEA533A40DCD440F3390A54C052EC681CEA533A404DDA54DD230A54C0AC376A85E9533A4026C632FD120A54C0ED26F8A6E9533A406D01A1F5F00954C0C493DDCCE8533A407B4B395FEC0954C0239C16BCE8533A40EACE13CFD90954C0BED6A546E8533A40C746205ED70954C0A1BDFA78E8533A4075543541D40954C0239C16BCE8533A40A626C11BD20954C0658BA4DDE8533A403411363CBD0954C0D5CA845FEA533A409B1E1494A20954C07C7F83F6EA533A40984BAAB69B0954C0DB87BCE5EA533A4011C47938810954C0DB87BCE5EA533A40FACF9A1F7F0954C0DB87BCE5EA533A40751E15FF770954C0E6012CF2EB533A409B90D618740954C05E66D828EB533A40D82AC1E2700954C05184D4EDEC533A4002D53F88640954C069E04735EC533A40DA6FED44490954C09F55664AEB533A406C5ED5592D0954C0404D2D5BEB533A40B6A0F7C6100954C0450A65E1EB533A406A6B44300E0954C0E6012CF2EB533A400FB22C98F80854C0E6012CF2EB533A40139CFA40F20854C0E6012CF2EB533A40A48AE255D60854C0B08C0DDDEC533A40EA944737C20854C080D4264EEE533A40F790F0BDBF0854C0C1C3B46FEE533A4060747973B80854C0C780ECF5EE533A40A297512CB70854C0C1C3B46FEE533A40E4BA29E5B50854C057410C74ED533A4014596B28B50854C020CCED5EEE533A40567C43E1B30854C04A5F0839EF533A40170FEF39B00854C02C465D6BEF533A40A260C614AC0854C04F1C40BFEF533A4021382EE3A60854C0CD3D247CEF533A40ED444948A40854C044A2D0B2EE533A404221020EA10854C0AF2479AEEF533A4055DAE21A9F0854C0D2FA5B02F0533A40B7B24467990854C0DE74CB0EF1533A400DDDEC0F940854C0E3310395F1533A407976F9D6870854C00E2DB29DEF533A408C63247B840854C008707A17EF533A4066A032FE7D0854C0BA9EE8BAF0533A40F9307BD9760854C0D8B79388F0533A405296218E750854C0320395F1EF533A404EF38E53740854C0C1C3B46FEE533A401900AAB8710854C020CCED5EEE533A408A8D791D710854C0268925E5EE533A4026E2ADF36F0854C09C853DEDF0533A404B2025766D0854C0FDF50A0BEE533A4004745FCE6C0854C07A17EFC7ED533A40469737876B0854C07A17EFC7ED533A409B73F04C680854C0336B2920ED533A40DD96C805670854C0E6012CF2EB533A4066666666660854C028F1B913EC533A40EA78CC40650854C062BB7B80EE533A40CC79C6BE640854C0D2FA5B02F0533A406D8B321B640854C0910BCEE0EF533A40DF180280630854C079AF5A99F0533A404AE9995E620854C0B3791C06F3533A4045460724610854C083C13577F4533A40B7ED7BD45F0854C005A051BAF4533A40C51D6FF25B0854C005A051BAF4533A40074147AB5A0854C023B9FC87F4533A40C09481035A0854C005A051BAF4533A40D34D6210580854C0C4B0C398F4533A40745FCE6C570854C0BEF38B12F4533A40CEAACFD5560854C095607138F3533A400FB40243560854C048F7730AF2533A40043A9336550854C04A5F0839EF533A4075C7629B540854C062BB7B80EE533A40C364AA60540854C0C1C3B46FEE533A4096B036C64E0854C00F9546CCEC533A4055A4C2D8420854C0BD6E1118EB533A403A8F8AFF3B0854C017BA1281EA533A40C03DCF9F360854C07E4FAC53E5533A40E595EB6D330854C0D2DD7536E4533A40ABB184B5310854C0B4C4CA68E4533A40DB4FC6F8300854C0F6B3588AE4533A4053944BE3170854C0772AE09EE7533A40F2CF0CE2030854C0363B527DE7533A405B7C0A80F10754C0307E1AF7E6533A401A67D311C00754C08AC91B60E6533A4026C45C52B50754C04D2F3196E9533A401B4AED45B40754C0ED26F8A6E9533A40B115342DB10754C0B2F4A10BEA533A40A69BC420B00754C052EC681CEA533A40E753C72AA50754C099982EC4EA533A40C79BFC169D0754C09F55664AEB533A40C8B5A1629C0754C0404D2D5BEB533A40923A014D840754C0745AB741ED533A4004C8D0B1830754C015527E52ED533A4016670C73820754C0B6494563ED533A4084B9DDCB7D0754C07A17EFC7ED533A40191D90847D0754C07A17EFC7ED533A40EAE6E26F7B0754C0D91F28B7ED533A40BCB0355B790754C0392861A6ED533A40B75B9203760754C0F738D384ED533A40DDCD531D720754C09EEDD11BEE533A40E20511A9690754C01B0FB6D8ED533A40AE4676A5650754C0BC067DE9ED533A40CEFBFF38610754C0FDF50A0BEE533A4044A165DD3F0754C0BC067DE9ED533A406DC669882A0754C080D4264EEE533A40471ADCD6160754C0E59997C3EE533A403C86C77E160754C0E59997C3EE533A40D1031F83150754C0E59997C3EE533A40AD2D3C2F150754C0E59997C3EE533A406FF4311F100754C085915ED4EE533A40D07EA4880C0754C0C780ECF5EE533A4082C476F7000754C0268925E5EE533A402C499EEBFB0654C0268925E5EE533A40496249B9FB0654C0268925E5EE533A408B6B7C26FB0654C0268925E5EE533A40914259F8FA0654C0268925E5EE533A4011346612F50654C085915ED4EE533A4032005471E30654C085915ED4EE533A409AAF928FDD0654C085915ED4EE533A40CCE9B298D80654C085915ED4EE533A400A9E42AED40654C085915ED4EE533A409D2E8B89CD0654C003B34291EE533A40331477BCC90654C0A3AA09A2EE533A404E0CC9C9C40654C085915ED4EE533A405531957EC20654C0268925E5EE533A40C5538F34B80654C03EE5982CEE533A4020ED7F80B50654C0FDF50A0BEE533A40A0C4E74EB00654C0745AB741ED533A40B22C98F8A30654C0336B2920ED533A408B69A67B9D0654C028F1B913EC533A40EA060ABC930654C05E66D828EB533A4014E81379920654C05E66D828EB533A407C9752978C0654C09F55664AEB533A4074ED0BE8850654C099982EC4EA533A40847F1134660654C06A48DC63E9533A40D95BCAF9620654C0239C16BCE8533A4099D4D006600654C08AC91B60E6533A40A7EA1ED95C0654C0C1A6CEA3E2533A40075BECF6590654C0A5F5B704E0533A40213999B8550654C0219221C7D6533A404D689258520654C0D573D2FBC6533A40662C9ACE4E0654C0EBC5504EB4533A40D8EDB3CA4C0654C0409FC893A4533A4032535A7F4B0654C0600322C495533A40B64B1B0E4B0654C06ADB300A82533A405C1ABFF04A0654C037363B527D533A402D9622F94A0654C00391459A78533A40927538BA4A0654C03719558671533A40927538BA4A0654C0FC4E93196F533A40DFF8DA334B0654C09D29745E63533A401B118C834B0654C0FD14C78157533A40CD7344BE4B0654C0C96FD1C952533A40381092054C0654C0C51A2E724F533A4038F6ECB94C0654C02E185C7347533A40A3923A014D0654C062A06B5F40533A40438A01124D0654C0F430B43A39533A4097FE25A94C0654C02FDE8FDB2F533A4002B5183C4C0654C0DE1FEF552B533A40AE0CAA0D4E0654C01210937021533A40BAA0BE654E0654C0D845D1031F533A40C821E2E6540654C051BB5F05F8523A40BB0B9414580654C0FC8A355CE4523A40562C7E53580654C0724D81CCCE523A404BCCB392560654C0FF03AC55BB523A404C1AA375540654C093FC885FB1523A40ED45B41D530654C07009C03FA5523A4030B77BB94F0654C08C9DF0129C523A40928FDD054A0654C0E9B81AD995523A4016BCE82B480654C031CD74AF93523A407D1D3867440654C069AA27F38F523A40EA211ADD410654C0B1BE81C98D523A4017D34CF73A0654C06725ADF886523A4059F624B0390654C03E92921E86523A40124A5F08390654C09D9ACB0D86523A4060E7A6CD380654C0D9CC21A985523A406C956071380654C0D30FEA2285523A40C0232A54370654C058569A9482523A4031B1F9B8360654C03580B74082523A408B16A06D350654C081E9B46E83523A40E57B4622340654C0A4BF97C283523A403FE1ECD6320654C081E9B46E83523A40ACFF73982F0654C0E0F1ED5D83523A404D11E0F42E0654C087A6ECF483523A40B9FB1C1F2D0654C02079E75086523A40545051F52B0654C0D8648D7A88523A40795A7EE02A0654C0F415A4198B523A40CCCEA2772A0654C0882B67EF8C523A408C135FED280654C09AE7887C97523A40F10C1AFA270654C05A7D7555A0523A40878A71FE260654C05D6A847EA6523A408D7BF31B260654C0423EE8D9AC523A40BE4D7FF6230654C096067E54C3523A404E2844C0210654C049D74CBED9523A405AF0A2AF200654C07D01BD70E7523A409065C1C41F0654C0DE8E705AF0523A40C6DADFD91E0654C01ADEACC1FB523A402CEE3F321D0654C06934B91803533A40FD8348861C0654C0F624B03907533A403F8D7BF31B0654C0C404357C0B533A409201A08A1B0654C07633A31F0D533A4040C1C58A1A0654C098A1F14410533A4040DB6AD6190654C07920B24813533A40A9BEF38B120654C02D76FBAC32533A403E3C4B90110654C04FE449D235533A409FAC18AE0E0654C00B2593533B533A40C3B645990D0654C027D6A9F23D533A40A6B73F170D0654C098158A743F533A4059349D9D0C0654C08B33863941533A40DC2C5E2C0C0654C03D62F4DC42533A40D66F26A60B0654C08ACBF10A44533A409B5775560B0654C04E999B6F44533A40CB290131090654C04C31074147533A40677E3507080654C0041DAD6A49533A402C802903070654C0B08EE3874A533A40EBAA402D060654C0BB0853944B533A408CBCAC89050654C0C1C58A1A4C533A406EBDA607050654C0910DA48B4D533A40A432C51C040654C0956247E350533A404C35B396020654C04529215855533A4076FC1708020654C0338AE59656533A40C9703C9F010654C0DFFB1BB457533A40BF44BC75FE0554C0C267EBE060533A403AC780ECF50554C0BB7CEBC37A533A40BEBF417BF50554C08BC404357C533A40D1782288F30554C0CFA0A17F82533A40BF417BF5F10554C014E5D2F885533A4072BED87BF10554C03E78EDD286533A40A8195245F10554C00246973787533A40D2FA5B02F00554C0D28DB0A888533A409DB98784EF0554C0193A765089533A40B615FBCBEE0554C042CD902A8A533A4056276728EE0554C0DD0720B589533A40CEA5B8AAEC0554C0897956D28A533A40B7B1D991EA0554C0F4FBFECD8B533A4024D06053E70554C0F9B836548C533A4091EEE714E40554C035EB8CEF8B533A4003965CC5E20554C09AB0FD648C533A4074232C2AE20554C0F4FBFECD8B533A40C2DA183BE10554C0B9313D6189533A40EDEF6C8FDE0554C0A60D87A581533A406B2BF697DD0554C0E3A7716F7E533A40D6E1E82ADD0554C04F92AE997C533A40B9FC87F4DB0554C0BB7CEBC37A533A404F948444DA0554C07538BA4A77533A40EACE13CFD90554C02312859675533A4091B75CFDD80554C05AEF37DA71533A404468041BD70554C012BEF73768533A4081CEA44DD50554C0732EC55565533A40CF9F36AAD30554C0691CEA7761533A402FDCB930D20554C0D66EBBD05C533A405F7AFB73D10554C04259F8FA5A533A40904C874ECF0554C0F7578FFB56533A401EA2D11DC40554C02236583849533A409481035ABA0554C091D3D7F335533A4079043752B60554C0C72B103D29533A408CBD175FB40554C0793D98141F533A401C98DC28B20554C08A3A730F09533A4092C83EC8B20554C0073F7100FD523A404B02D4D4B20554C06E6C76A4FA523A40691B7FA2B20554C0672AC423F1523A40691B7FA2B20554C0A981E673EE523A40691B7FA2B20554C0A794D74AE8523A4051D9B0A6B20554C0B8AE9811DE523A40E622BE13B30554C080B4FF01D6523A40B0C7444AB30554C0F9804067D2523A408043A852B30554C0BFB67EFACF523A40989F1B9AB20554C0D0D03FC1C5523A40B7D26BB3B10554C0C539EAE8B8523A4022895E46B10554C014731074B4523A40B7EC10FFB00554C05D876A4AB2523A405EBBB4E1B00554C005A4FD0FB0523A4081919735B10554C0A4164A26A7523A40DBC2F352B10554C005871744A4523A40AB3E575BB10554C031EA5A7B9F523A4022895E46B10554C0925A28999C523A40101E6D1CB10554C0B343FCC396523A402E3718EAB00554C05D30B8E68E523A405327A089B00554C090B8C7D287523A4058FE7C5BB00554C0D9CC21A985523A40F3380CE6AF0554C01D8CD82780523A40C4CE143AAF0554C02781CD3978523A40FA298E03AF0554C00BD0B69A75523A40DC2A8881AE0554C0FB00A43671523A40A112D731AE0554C0E50CC51D6F523A40DD787764AC0554C019FD683865523A40492F6AF7AB0554C044F8174163523A4014083BC5AA0554C088B7CEBF5D523A402B4A09C1AA0554C01E3526C45C523A40731074B4AA0554C05512D90759523A4061A5828AAA0554C0158BDF1456523A40F0315871AA0554C0226DE34F54523A409E0B23BDA80554C048F6083543523A4015562AA8A80554C0C05AB56B42523A4033897AC1A70554C0CEA44DD53D523A4004392861A60554C0012D5DC136523A404C1938A0A50554C0F71A82E332523A40E2E47E87A20554C093382BA226523A40A10F96B1A10554C070CADC7C23523A40BA85AE44A00554C0F678211D1E523A40E9094B3CA00554C0EBFEB1101D523A40CC24EA059F0554C0EBFEB1101D523A407575C7629B0554C0EBFEB1101D523A405890662C9A0554C0EBFEB1101D523A40A1F2AFE5950554C04A07EBFF1C523A403753211E890554C04A07EBFF1C523A4068739CDB840554C04A07EBFF1C523A409BC761307F0554C00ED594641D523A403E5B07077B0554C091B3B0A71D523A4033C4B12E6E0554C09D2D20B41E523A404DD6A887680554C002F390291F523A40EAAC16D8630554C0C6C03A8E1F523A40C23060C9550554C0F5108DEE20523A4047C5FF1D510554C0FACDC47421523A404356B77A4E0554C07DACE0B721523A403509DE90460554C00648348122523A401958C7F1430554C0291E17D522523A402B11A8FE410554C00C056C0723523A407C7E18213C0554C0F3A8F8BF23523A4077F52A323A0554C07687140324523A401A89D008360554C08EE3874A23523A40BB9A3C65350554C0A73FFB9122523A4092EA3BBF280554C0723271AB20523A4056D28A6F280554C0723271AB20523A405DC30C8D270554C0B321FFCC20523A40F226BF45270554C05419C6DD20523A40622F14B01D0554C0D427B9C326523A407BD976DA1A0554C0E55E605628523A404700378B170554C01A6CEA3C2A523A40EF366F9C140554C05B3E92921E523A4062D8614CFA0454C053B131AF23523A4087DF4DB7EC0454C069A510C825523A4035D3BD4EEA0454C087BEBB9525523A404D2F3196E90454C00A9DD7D825523A40795BE9B5D90454C0BCCB457C27523A40978E39CFD80454C098F5622827523A402CF2EB87D80454C04467994528523A403BA41820D10454C07974232C2A523A402766BD18CA0454C02FF834272F523A4046B3B27DC80454C07C61325530523A4072309B00C30454C08E006E162F523A40E065868DB20454C0C6DD205A2B523A40F5A0A014AD0454C07974232C2A523A4079E40F069E0454C07974232C2A523A40346612F5820454C07974232C2A523A401FF12BD6700454C07974232C2A523A408CF2CCCB610454C07974232C2A523A4092AE997CB30354C07974232C2A523A408CA03193A80154C07974232C2A523A407A1A3048FA0054C07974232C2A523A401842CEFBFF0054C061DC0DA2B54E3A40AAF23D23110154C05B035B2558443A40FBCA83F4140154C06516A1D80A423A40C6C03A8E1F0154C024EA059FE6403A40C5E061DA370154C0633F8BA5483E3A40ACFE08C3800154C0622EA9DA6E363A4094DC6113990154C0417BF5F1D0333A40D2890453CD0154C0FF3F4E98302E3A405E0D501A6A0254C01875ADBD4F1D3A408578245E9E0254C017299485AF173A40AF25E4839E0254C08A389D64AB173A4068041BD7BF0254C0DC0BCC0A45123A40E7FA3E1C240354C02CB4739A05023A40FA0AD28C450354C0F296AB1F9BFC3940DA6FED44490354C0A6B4FE9600FC3940635C7171540354C0A5F44C2F31FA39402C7FBE2D580354C0FA0967B796F93940FA7C9411170454C00584D6C397F93940647616BD530654C027F224E99AF939401A321EA5120754C0336C94F59BF93940ED80EB8A190754C01553E9279CF939401EA7E8482E0754C0BB07E8BE9CF93940D9B3E732350754C03EE603029DF93940F8A23D5E480754C00E2E1D739EF93940D39E9273620754C0423BA759A0F939404563EDEF6C0754C0CBD6FA22A1F93940DC65BFEE740754C01283C0CAA1F93940221807978E0754C0CA6E66F4A3F93940B6476FB88F0754C06A662D05A4F93940FCA5457D920754C0AC55BB26A4F939409F8D5C37A50754C0592F8672A2F939405E8429CAA50754C0592F8672A2F93940814067D2A60754C0B837BF61A2F939403F541A31B30754C06CCEC133A1F939403DEFC682C20754C03D7E6FD39FF9394032ACE28DCC0754C055DAE21A9FF939404147AB5AD20754C0910C39B69EF93940CD1DFD2FD70754C0EA573A1F9EF9394055850662D90754C044A33B889DF93940770DFAD2DB0754C0FDF675E09CF939404198DBBDDC0754C01B1021AE9CF93940D3F71A82E30754C027F224E99AF939408B170B43E40754C0A51309A69AF939402BDB87BCE50754C09F56D11F9AF93940DBA16131EA0754C02F17F19D98F93940632310AFEB0754C0CA51802898F93940D5963AC8EB0754C08B321B6492F93940C8E88024EC0754C070CCB22781F93940B1A6B228EC0754C08828266F80F93940E010AAD4EC0754C05B40683D7CF93940C8B4368DED0754C0AB798EC877F93940DA1B7C61320854C015DF50F86CF93940790261A7580854C054E1CFF066F9394050172994850854C02861A6ED5FF93940560BEC31910854C0E1B4E0455FF93940DFC0E446910854C0BBEA01F390F939402C103D29930854C0BBEA01F390F93940EFC34142940854C07AFB73D190F939406ABC7493180954C03332C85D84F939405F7CD11E2F0954C09E978A8D79F939402E90A0F8310954C039D2191879F93940FDA36FD2340954C0D40CA9A278F93940EB89AE0B3F0954C0F225547078F93940A8FE4124430954C022DE3AFF76F9394000E5EFDE510954C0E1EEACDD76F939409278793A570954C040F7E5CC76F93940A9A0A2EA570954C0FE0758AB76F939401F9DBAF2590954C0DB31755776F939401878EE3D5C0954C01764CBF275F9394095D05D12670954C0A167B3EA73F93940BAF770C9710954C06C5A290472F93940AE49B725720954C00D52F01472F939406669A7E6720954C0AD49B72572F939407686A92D750954C07217618A72F939401764CBF2750954C0B306EFAB72F939405E10919A760954C0F5F57CCD72F93940BDFE243E770954C054FEB5BC72F93940DAC9E028790954C06C5A290472F93940D9AF3BDD790954C054FEB5BC72F939406B0F7BA1800954C0E97B0DC171F9394007EC6AF2940954C02CD32F116FF939408009DCBA9B0954C062484E266EF93940BC218D0A9C0954C0C15087156EF939406E6AA0F99C0954C08061F9F36DF939409140834D9D0954C08061F9F36DF9394077483140A20954C0B6D617096DF93940F8DB9E20B10954C0DB148F8B6AF93940C6A17E17B60954C0B28174B169F939409012BBB6B70954C07092E68F69F9394030D63730B90954C0D09A1F7F69F93940990AF148BC0954C0EEB3CA4C69F93940BDE0D39CBC0954C04DBC033C69F93940048D9944BD0954C04DBC033C69F939406F0F4240BE0954C0ACC43C2B69F93940861DC6A4BF0954C06BD5AE0969F93940CB4752D2C30954C089EE59D768F93940CA13083BC50954C0E8F692C668F9394081CB63CDC80954C0A14ACD1E68F939408EB0A888D30954C06C3D433866F939402C26361FD70954C0C68844A165F93940B5A7E49CD80954C0A2B2614D65F939404D2CF015DD0954C0BA0ED59464F93940BD6BD097DE0954C03830B95164F93940BCE9961DE20954C073620FED63F93940B663EAAEEC0954C026F911BF62F93940B4E1B034F00954C0622B685A62F939407D1EA33CF30954C09E5DBEF561F93940C092AB58FC0954C033DB15FA60F93940718DCF64FF0954C0100533A660F9394065DF15C1FF0954C06F0D6C9560F93940F90E7EE2000A54C02E1EDE7360F93940D51EF642010A54C02E1EDE7360F939407A51BB5F050A54C02861A6ED5FF9394050A73CBA110A54C09A081B9E5EF93940D2510E66130A54C058198D7C5EF93940DD9733DB150A54C0D53A71395EF939407784D382170A54C0F3531C075EF939406AA2CF47190A54C0707500C45DF9394043FCC3961E0A54C06BB8C83D5DF939401FD8F15F200A54C089D1730B5DF939402782380F270A54C0A12DE7525CF9394011FC6F253B0A54C02B31CF4A5AF939400264E8D8410A54C0E48409A359F9394052D4997B480A54C05BE9B5D958F9394012A1116C5C0A54C0620E828E56F939404ACFF412630A54C07A6AF5D555F9394063963D096C0A54C0CEF8BEB854F939406725ADF8860A54C0AC8A709351F9394069AA27F38F0A54C0A110018750F9394062855B3E920A54C0A110018750F9394048C153C8950A54C0E2FF8EA850F93940F3E49A02990A54C0F6065F984CF93940630AD6389B0A54C09866BAD749F939401405FA449E0A54C03509DE9046F93940310400C79E0A54C08E54DFF945F9394079B0C56E9F0A54C0A7B0524145F93940942D9276A30A54C097E13FDD40F93940A5643909A50A54C0A4C343183FF9394098689082A70A54C087122D793CF939405ED89AADBC0A54C087122D793CF9394067614F3BFC0A54C087122D793CF93940158F8B6A110B54C0280AF4893CF939406667D13B150B54C046239F573CF939405AF0A2AF200B54C0E15D2EE23BF939403CA3AD4A220B54C0406667D13BF9394077A1B94E230B54C0406667D13BF9394094861A85240B54C0406667D13BF9394064E8D841250B54C0406667D13BF93940D40D1478270B54C0406667D13BF939408C2D0439280B54C0406667D13BF93940274EEE77280B54C0406667D13BF93940C72B103D290B54C0406667D13BF939404A0A2C80290B54C0406667D13BF939403E5C72DC290B54C0406667D13BF93940FC523F6F2A0B54C0406667D13BF93940D862B7CF2A0B54C05E7F129F3BF93940EACDA8F92A0B54C01D90847D3BF93940EF8AE07F2B0B54C0D026874F3AF93940BB5F05F86E0B54C01AA3755435F93940471CB281740B54C01AA3755435F93940C1560916870B54C01AA3755435F9394094BF7B478D0B54C01AA3755435F93940D446753A900B54C03E7958A835F93940B377465B950B54C04336902E36F93940F4328AE5960B54C0E42D573F36F939404C16F71F990B54C085251E5036F93940745B22179C0B54C0CCD1E3F736F939401ADCD6169E0B54C0EAEA8EC536F93940F31B261AA40B54C0E42D573F36F93940815A0C1EA60B54C0A23EC91D36F939405C1C959BA80B54C0D9B3E73235F93940D51F6118B00B54C01B0B0A8332F9394099D36531B10B54C0573D601E32F9394016C1FF56B20B54C0936FB6B931F93940989F1B9AB20B54C0F277EFA831F9394085984BAAB60B54C0ECBAB72231F9394019FF3EE3C20B54C0BE6A65C22FF93940EDB5A0F7C60B54C0F99CBB5D2FF93940E1ED4108C80B54C0B8AD2D3C2FF93940A453573ECB0B54C035CF11F92EF939407F492A53CC0B54C094D74AE82EF93940AE7FD767CE0B54C053E8BCC62EF9394022E010AAD40B54C02F12DA722EF9394039D4EFC2D60B54C08F1A13622EF93940A913D044D80B54C04D2B85402EF93940CA4DD4D2DC0B54C00C3CF71E2EF93940234BE658DE0B54C06B44300E2EF93940753DD175E10B54C0A77686A92DF939403A90F5D4EA0B54C0DDEBA4BE2CF93940B77D8FFAEB0B54C09BFC169D2CF93940744012F6ED0B54C0B915C26A2CF9394095607138F30B54C01361C3D32BF93940292158552F0C54C0B16B7BBB25F9394049F3C7B4360C54C02E8D5F7825F93940488B3386390C54C0C9C7EE0225F93940DEE7F868710C54C0247B849A21F9394036AAD381AC0C54C0C3EDD0B018F9394060747973B80C54C053AEF02E17F9394028B4ACFBC70C54C0DDB1D82615F939407DCA3159DC0C54C061F8889812F9394077103B53E80C54C032A8363811F9394052D2C3D0EA0C54C06EDA8CD310F93940F70489EDEE0C54C0681D554D10F93940B393C151F20C54C0A44FABE80FF9394077137CD3F40C54C08179C8940FF93940730F09DFFB0C54C0B7EEE6A90EF93940522635B4010D54C08D5BCCCF0DF93940F9F719170E0D54C07C24253D0CF93940006E162F160D54C0497F2F8507F93940274EEE77280D54C02711E15F04F93940882991442F0D54C02979758E01F9394015342DB1320D54C0718DCF64FFF839405A475513440D54C06EA0C03BF9F83940893F8A3A730D54C007EE409DF2F83940766C04E2750D54C0A228D027F2F83940868F8829910D54C0DFC2BAF1EEF8394052B9895A9A0D54C0F71E2E39EEF839404ECFBBB1A00D54C0C76647AAEFF83940C79E3D97A90D54C07E52EDD3F1F83940C4CE143AAF0D54C07E52EDD3F1F8394051D9B0A6B20D54C013D044D8F0F83940313ECC5EB60D54C0DFC2BAF1EEF839404AEB6F09C00D54C093C151F2EAF839400DA837A3E60D54C08F6CAE9AE7F83940DB12B9E00C0E54C091D442C9E4F839404339D1AE420E54C0A6608DB3E9F8394028417FA1470E54C0ED0C535BEAF8394010CEA78E550E54C00B26FE28EAF83940CAA65CE15D0E54C00B26FE28EAF83940EC2E5052600E54C0475854C4E9F8394067666666660E54C01DC539EAE8F839407956D28A6F0E54C059F78F85E8F83940E44691B5860E54C04E7D2079E7F83940E9EC6470940E54C0A7C821E2E6F8394065DD3F16A20E54C05B5F24B4E5F839401DE6CB0BB00E54C02C0FD253E4F83940A5677A89B10E54C0EA1F4432E4F839406FD8B628B30E54C08B170B43E4F839408CBD175FB40E54C0CC069964E4F83940077767EDB60E54C0674128EFE3F83940427573F1B70E54C0C74961DEE3F839400CE6AF90B90E54C026529ACDE3F83940902FA182C30E54C0DFA5D425E3F83940904C874ECF0E54C022FDF675E0F839405451BCCADA0E54C0A643A7E7DDF839402B1213D4F00E54C0950C0055DCF839405A99F04BFD0E54C0CB811E6ADBF8394047FDF50A0B0F54C0C007AF5DDAF839405E656D533C0F54C0D9CBB6D3D6F839403065E080960F54C054008C67D0F8394095B88E71C50F54C04FABE80FCDF83940ACE0B721C60F54C0AFB321FFCCF8394088D68A36C70F54C00EBC5AEECCF83940C3D4963AC80F54C06DC493DDCCF83940C3BAF1EEC80F54C06DC493DDCCF83940B01BB62DCA0F54C0CCCCCCCCCCF8394039B709F7CA0F54C02CD505BCCCF839403D26529ACD0F54C0A9F6E978CCF83940DE03745FCE0F54C008FF2268CCF839408A75AA7CCF0F54C02618CE35CCF839407DB08C0DDD0F54C0B01BB62DCAF83940CE6E2D93E10F54C0696FF085C9F8394073EFE192E30F54C045990D32C9F839400569C6A2E90F54C07B0E2C47C8F8394093A7ACA6EB0F54C0F92F1004C8F839406803B001111054C0BA10AB3FC2F83940E716BA12811054C081919735B1F83940A530EF71A61054C08461C092ABF839401F82AAD1AB1054C0FCC56CC9AAF83940C51C041DAD1054C01ADF1797AAF83940DE1AD82AC11054C0800C1D3BA8F83940E7C41EDAC71054C098689082A7F83940B14F00C5C81054C057790261A7F83940B01BB62DCA1054C0158A743FA7F83940C7293A92CB1054C0D59AE61DA7F8394079724D81CC1054C033A31F0DA7F83940793E03EACD1054C051BCCADAA6F83940471E882CD21054C08DEE2076A6F839402EA86F99D31054C04BFF9254A6F839403E05C078061154C0BF0E9C33A2F839400E1478279F1154C0B9347EE195F83940052FFA0AD21154C0CD3B4ED191F8394029EB3713D31154C08B4CC0AF91F83940B1868BDCD31154C08B4CC0AF91F839407520EBA9D51154C0A9656B7D91F839404B598638D61154C0096EA46C91F83940C189E8D7D61154C0096EA46C91F8394056D3F544D71154C06876DD5B91F83940F6B0170AD81154C026874F3A91F839401D8EAED2DD1154C021CA17B490F83940001DE6CB0B1254C070033E3F8CF8394016D9CEF7531254C08672A25D85F83940FCF9B660A91254C0CC99ED0A7DF83940A643A7E7DD1254C0D4264EEE77F839400518963FDF1254C09337C0CC77F83940C2DA183BE11254C0B1506B9A77F83940CD3AE3FBE21254C0CE69166877F8394014CD0358E41254C08D7A884677F8394026529ACDE31254C0C265153603F83940B5DE6FB4E31254C04A5F0839EFF73940C763062AE31254C0C2A1B77878F73940321AF9BCE21254C04B55DAE21AF73940922232ACE21254C0172B6A300DF7394068757286E21254C044BC75FEEDF6394080B74082E21254C038A0A52BD8F63940C77DAB75E21254C0B4E55C8AABF639403FC8B260E21254C09D9CA1B8E3F53940B64604E3E01254C0D9226937FAF43940B64604E3E01254C00F98874CF9F43940CE88D2DEE01254C09F58A7CAF7F43940164F3DD2E01254C03ECBF3E0EEF439405CE15D2EE21254C03ECBF3E0EEF439409C4EB2D5E51254C0DFC2BAF1EEF439403E59315C1D1354C0B1F7E28BF6F43940D2544FE61F1354C0D5CDC5DFF6F4394036CCD078221354C0B7B41A12F7F43940D1C8E7154F1354C00E30F31DFCF439404D689258521354C06D382C0DFCF43940DFFB1BB4571354C0CC4065FCFBF43940978E39CFD81354C0F0332E1C08F5394055850662D91354C0F0332E1C08F5394048A30227DB1354C0D21A834E08F53940EF5701BEDB1354C072124A5F08F53940CA4DD4D2DC1354C0130A117008F5394075711B0DE01354C0F5F065A208F5394039252026E11354C037E0F3C308F53940572426A8E11354C037E0F3C308F53940459F8F32E21354C078CF81E508F53940AF21382EE31354C019C748F608F53940CD203EB0E31354C05AB6D61709F5394097C5C4E6E31354C05AB6D61709F53940C62FBC92E41354C05AB6D61709F53940799274CDE41354C05AB6D61709F5394031B2648EE51354C05AB6D61709F5394066F3380CE61354C05AB6D61709F5394042CF66D5E71354C05AB6D61709F53940E2AC889AE81354C05AB6D61709F53940463EAF78EA1354C05AB6D61709F53940460A65E1EB1354C05AB6D61709F539402C2CB81FF01354C019C748F608F53940787B1002F21354C019C748F608F5394048C32973F31354C078CF81E508F539408716D9CEF71354C078CF81E508F539403F1C2444F91354C078CF81E508F53940DEAB5626FC1354C0D7D7BAD408F53940A41820D1041454C0D7D7BAD408F539402B6684B7071454C0D7D7BAD408F539404E081D74091454C037E0F3C308F539406F287CB60E1454C0F5F065A208F539407A884677101454C0F5F065A208F539408CF678211D1454C0130A117008F53940A8FE4124431454C00D4DD9E907F53940A12AA6D24F1454C0CC5D4BC807F539407FF62345641454C0A987687407F53940D19332A9A11454C020EC14AB06F53940971DE21FB61454C09D0DF96706F5394019E59997C31454C0BB26A43506F539407DCD72D9E81454C0B5696CAF05F539408E386403E91454C01572A59E05F539406A1327F73B1554C0AAEFFCA204F53940465D6BEF531554C086191A4F04F53940D0D4EB16811554C0E0641BB803F5394051BCCADAA61554C07B9FAA4203F539409E42AED4B31554C099B8551003F53940A297512CB71554C09F758D9603F5394067D0D03FC11554C0F19BC24A05F5394054E3A59BC41554C09750C1E105F539405E29CB10C71554C05C1E6B4606F5394066B96C74CE1554C0497F2F8507F5394059BDC3EDD01554C0AE44A0FA07F53940C8940F41D51554C096E82CB308F53940921FF12BD61554C078CF81E508F539405CAAD216D71554C0BABE0F0709F539408944A165DD1554C0FBAD9D2809F53940CD548847E21554C05AB6D61709F53940026553AEF01554C05AB6D61709F53940C5FEB27BF21554C0FBAD9D2809F5394006D49B51F31554C078CF81E508F539401825E82FF41554C096E82CB308F53940A67D737FF51554C055F99E9108F5394031EC3026FD1554C0F19BC24A05F5394068CC24EA051654C0E789E76C01F5394005C3B986191654C0C9703C9F01F5394090B932A8361654C03B18B14F00F539406E85B01A4B1654C0D0950854FFF43940E90DF7915B1654C0E9F17B9BFEF43940DAE044F46B1654C0FB90B75CFDF439409C1551137D1654C0677BF486FBF43940A223B9FC871654C08B51D7DAFBF4394019541B9C881654C08B51D7DAFBF43940503750E09D1654C055DCB8C5FCF4394021AF0793E21654C01742CEFBFFF4394009C1AA7AF91654C0C4B3041901F5394026A60BB1FA1654C023BC3D0801F53940AFE94141291754C082C476F700F539402446CF2D741754C0E1CCAFE600F53940174339D1AE1754C0B839950C00F5394072DF6A9DB81754C03B18B14F00F539402FDFFAB0DE1754C0E789E76C01F5394000C63368E81754C0F203577902F53940AAB5300BED1754C06A6803B001F53940914259F8FA1754C0CF2D742502F5394024F0879FFF1754C075E272BC02F53940C4B30419011854C0D5EAABAB02F53940F9DA334B021854C0D5EAABAB02F539405D86FF74031854C0D5EAABAB02F539400FB56D18051854C0D5EAABAB02F539403E05C078061854C0D5EAABAB02F539401F46088F361854C034F3E49A02F539407C4276DEC61854C093FB1D8A02F539409F724C16F71854C0718DCF64FFF43940643909A52F1954C0A0DD21C500F53940A8DF85ADD91954C0A96A82A8FBF439400B9755D80C1A54C0382BA226FAF43940D50792770E1A54C0F73B1405FAF439408C0DDDEC0F1A54C0F73B1405FAF43940AF95D05D121A54C056444DF4F9F4394098C11891281A54C0BD715298F7F439400EA14ACD1E1B54C05C01857AFAF43940A06D35EB8C1B54C0496249B9FBF43940E4637781921B54C0496249B9FBF439407CB43863981B54C0A96A82A8FBF439407575C7629B1B54C0A96A82A8FBF439409DBAF2599E1B54C0677BF486FBF43940E4F1B4FCC01B54C09F58A7CAF7F43940FCA4DAA7E31B54C0772D211FF4F43940207BBDFBE31B54C0772D211FF4F4394091628044131C54C0B35F77BAF3F43940374E0AF31E1C54C0B81CAF40F4F43940D1066003221C54C09A030473F4F43940C4758C2B2E1C54C0DCF29194F4F43940C30DF8FC301C54C05FD1ADD7F4F4394080D07AF8321C54C041B8020AF5F4394001F9122A381C54C07DEA58A5F4F43940C45E28603B1C54C03BFBCA83F4F43940B796C9703C1C54C0FA0B3D62F4F43940ABCE6A813D1C54C0FA0B3D62F4F439401E8B6D52D11C54C03ECBF3E0EEF43940AC00DF6DDE1C54C03ECBF3E0EEF4394039252026E11C54C03ECBF3E0EEF43940F7E7A221E31C54C09DD32CD0EEF43940F699B33EE51C54C09DD32CD0EEF43940546EA296E61C54C0FDDB65BFEEF43940EF8E8CD5E61C54C05CE49EAEEEF43940BFF04A92E71C54C05CE49EAEEEF43940FA08FCE1E71C54C05CE49EAEEEF439409529E620E81C54C05CE49EAEEEF4394024D3A1D3F31C54C0D905836BEEF43940D0CFD4EB161D54C0335184D4EDF43940B8AAECBB221D54C0F161F6B2EDF439404DF4F928231D54C0F161F6B2EDF439400514EAE9231D54C0516A2FA2EDF43940E6AC4F39261D54C0516A2FA2EDF43940878A71FE261D54C0516A2FA2EDF43940EC4FE273271D54C0B0726891EDF43940BCB1A030281D54C0B0726891EDF43940D3D9C9E0281D54C0B0726891EDF43940081B9E5E291D54C0B0726891EDF439402500FF942A1D54C0B0726891EDF4394099805F23491D54C09259BDC3EDF439404AB1A371A81D54C0BBECD79DEEF43940C3D4963AC81D54C0DFC2BAF1EEF43940FA07910C391E54C0EA3C2AFEEFF43940A1A17F828B1F54C00CAB7823F3F43940C092AB58FC1F54C0B81CAF40F4F43940955F0663442054C00586AC6EF5F439400EF450DB862054C0B1F7E28BF6F4394015C616821C2154C0EBC1A4F8F8F43940D250A390642154C0382BA226FAF439405C8E57207A2154C05C01857AFAF43940CAC2D7D7BA2154C0677BF486FBF439403CBEBD6BD02154C02B499EEBFBF4394053CC41D0D12154C02B499EEBFBF4394098F6CDFDD52154C02B499EEBFBF43940CE37A27BD62154C02B499EEBFBF4394097C28366D72154C0CC4065FCFBF43940D87DC7F0D82154C0F0164850FCF43940D82B2CB81F2254C0F5D37FD6FCF4394022365838492254C09C887E6DFDF43940812557B1F82254C0E9F17B9BFEF43940A94C3107412354C0EEAEB321FFF43940FB58C16F432354C0E9F17B9BFEF4394086E123624A2354C05A99F04BFDF43940F17D71A94A2354C0DD770C8FFDF43940FDF7E0B54B2354C07E6FD39FFDF439402C4833164D2354C0F5D37FD6FCF439404356B77A4E2354C0D2FD9C82FCF439405A643BDF4F2354C04F1F813FFCF43940D78349F1F12454C0DD770C8FFDF43940185E49F25C2554C0A245B6F3FDF43940B43A3943712854C06EA0C03BF9F43940DA368C82E02954C016BD5301F7F439406E30D461852B54C0DCF29194F4F43940276A696E852B54C04F745DF8C1F5394098DD9387852B54C0CAFB389A23F7394050172994852B54C08BDF14562AF83940F10EF0A4852B54C09F58A7CAF7F83940D9CC21A9852B54C01858C7F143F93940A94885B1852B54C09146054EB6F939409206B7B5852B54C0C745B58828FA394062821ABE852B54C0E23C9CC074FA394062821ABE852B54C074EACA6779FA394062821ABE852B54C0CCEA1D6E87FA394062821ABE852B54C0FF8F13268CFA394062821ABE852B54C022FE614B8FFA3940E4BA29E5B52B54C045D4449F8FFA394019C40776FC2F54C0952A51F696FA39408177F2E9B13154C0FCDCD0949DFA39401DE56036013254C088653387A4FA3940A0F99CBB5D3354C07CEBC37AA3FA3940B6D8EDB3CA3354C0FE614B8FA6FA3940F9307BD9763554C0C24CDBBFB2FA39402D58AA0B783554C0C24CDBBFB2FA3940BFD18E1B7E3554C0033C69E1B2FA3940A5BF97C2833554C0033C69E1B2FA394070E82D1EDE3754C02897C62FBCFA3940E15B5837DE3754C0999A046F48FB394005323B8BDE3754C0ECA4BE2CEDFC39405E6397A8DE3754C0FD9FC37C79FD39405E6397A8DE3754C01F2BF86D88FD39404621C9ACDE3754C026C45C52B5FD39402FDFFAB0DE3754C0E9465854C4FD3940E71890BDDE3754C069C2F69331FE394011C64FE3DE3754C0CD1B278579FF3940B1BD16F4DE3754C0EF8E8CD5E6FF3940B794F3C5DE3754C006836BEEE8FF394082531F48DE3754C08B4E965AEFFF394070E82D1EDE3754C0433A3C84F1FF3940FAB7CB7EDD3754C0565EF23FF9FF3940361E6CB1DB3754C092CA147310003A4090696D1ADB3754C047E6913F18003A40361E6CB1DB3754C089EB18575C003A40FAB7CB7EDD3754C032E202D028013A40882AFC19DE3754C015DF50F86C013A4045D3D9C9E03754C0FCDCD0949D023A40658BA4DDE83754C0B2D6506A2F063A400AF2B391EB3754C099D4D00660073A40DFC2BAF1EE3754C0F3ACA415DF083A40156F641EF93754C0003620425C0D3A40D2FD9C82FC3754C05A0EF450DB0E3A40D2FD9C82FC3754C04EB16A10E60E3A40D2FD9C82FC3754C06D895C70060F3A40D2FD9C82FC3754C003249A40110F3A4025581CCEFC3754C0F88557923C0F3A40D7A02FBDFD3754C07AA35698BE0F3A4013B9E00CFE3754C011FDDAFAE90F3A40ED461FF3013854C078B5DC9909123A40342A70B20D3854C04DD6A88768183A40DF3312A1113854C055867137881A3A402CB7B41A123854C07E8D2441B81A3A40CC7A3194133854C0DB899290481B3A4001BC0512143854C0A4880CAB781B3A4016FA60191B3854C02310AFEB17203A40A034D428243854C0588B4F0130223A40F561BD512B3854C08B14CAC2D7233A40A8C4758C2B3854C04BC79C67EC233A40E3DC26DC2B3854C09F8F32E202243A400D8AE6012C3854C01CCEFC6A0E243A40963FDF162C3854C088D51F6118243A40AD6708C72C3854C0785DBF6037243A40B33EE5982C3854C072BD6DA642243A4000A8E2C62D3854C062F3716DA8243A40C9CA2F83313854C0210038F6EC253A40E5B2D1393F3854C078793A57942A3A408AE59656433854C0D1AFAD9FFE2B3A4090A2CEDC433854C0FB1EF5D72B2C3A401958C7F1433854C004C93B87322C3A40E9D32AFA433854C096766A2E372C3A40E9D32AFA433854C0492A53CC412C3A40D1915CFE433854C0F5B86FB54E2C3A40D1915CFE433854C02409C215502C3A40D1915CFE433854C0B1F9B836542C3A40B94F8E02443854C08041D2A7552C3A40B94F8E02443854C08CBB41B4562C3A40B94F8E02443854C09010E50B5A2C3A40A10DC006443854C03C821B295B2C3A401E15FF77443854C02EAA4544312D3A404D6551D8453854C00322C495B32F3A40B22AC24D463854C0F549EEB089303A40E76B96CB463854C05ABBED4273313A4070ED4449483854C0880FECF82F343A408DEC4ACB483854C08D78B29B19353A40ABEB504D493854C0060E68E90A363A40EBA694D74A3854C0B1BD16F4DE383A40F263CC5D4B3854C0CB4A9352D0393A40153AAFB14B3854C0F56393FC883B3A40F6065F984C3854C0003ACC9717403A40CC3FFA264D3854C074AF93FAB2403A407E6E68CA4E3854C09FC893A46B423A409B53C900503854C0A4E194B9F9423A40C37E4FAC533854C0F31B261AA4443A40C821E2E6543854C0992CEE3F32453A4075ADBD4F553854C0FD65F7E461453A407A50508A563854C00DF96706F1453A404BCCB392563854C0124E0B5EF4453A4027DC2BF3563854C0132A38BC20463A40088F368E583854C04D2CF015DD463A4065E1EB6B5D3854C0DE196D5512493A405ED6C4025F3854C0E6762FF7C9493A40E78BBD175F3854C0BA13ECBFCE493A406950340F603854C0B3B27DC85B4A3A40328D2617633854C045443179034C3A40B5519D0E643854C0545227A0894C3A409D0FCF12643854C0C2C1DEC4904C3A409D0FCF12643854C0F296AB1F9B4C3A4073620FED633854C051D7DAFB544D3A40AF946588633854C042075DC2A14F3A4026DF6C73633854C0963C9E961F503A40EA92718C643854C0312592E865503A40E4BB94BA643854C0868F882991503A407FDC7EF9643854C00512143FC6503A40313F3734653854C085CE6BEC12513A40BAF42F49653854C01361C3D32B513A40791F4773643854C0069CA56439513A409D0FCF12643854C0A06EA0C03B513A40E5EFDE51633854C0166BB8C83D513A402CB64945633854C00264E8D841513A4092955F06633854C032569BFF57513A40D8F335CB653854C0DFA7AAD040543A40D8F335CB653854C0E8B985AE44543A40A86F99D3653854C048DFA46950543A40902DCBD7653854C0F2E8465854543A40A86F99D3653854C09A22C0E95D543A40A86F99D3653854C0D94125AE63543A4060A92EE0653854C0512B4CDF6B543A4019E3C3EC653854C0BF9A030473543A40E95E27F5653854C091CF2B9E7A543A40A298BC01663854C0DA006C4084543A408A56EE05663854C06876DD5B91543A407214200A663854C0DBA2CC0699543A405AD2510E663854C069183E22A6543A40D8F335CB653854C01B649291B3543A407EC2D9AD653854C0B3CEF8BEB8543A400E4FAF94653854C0AA4198DBBD543A408499B67F653854C0963AC8EBC1543A40B41D5377653854C041446ADAC5543A408499B67F653854C0EC4D0CC9C9543A409CDB847B653854C0F65FE7A6CD543A4055151A88653854C015FE0C6FD6543A4025917D90653854C042E6CAA0DA543A407EC2D9AD653854C00F98874CF9543A404F3E3DB6653854C04692205C01553A4037FC6EBA653854C07FF44D9A06553A401FBAA0BE653854C09A3DD00A0C553A40A86F99D3653854C06B274A4222553A40A298BC01663854C05794128255553A40FBC9181F663854C065355D4F74553A40EA3F6B7EFC3754C07AC1A73979553A40A4A5F276843754C0444C89247A553A40A72215C6163554C09BC761307F553A409F38807EDF3454C05F950B957F553A4048145AD6FD3354C0F3AACE6A81553A401249F4328A3354C0BD35B05582553A4070E7C2482F3254C0BCCD1B2785553A40E255D636C53154C08558FD1186553A4023DA8EA9BB3154C02650C42286553A40CBF6216FB93154C02650C42286553A40E622BE13B33154C0683F524486553A4092C83EC8B23154C0683F524486553A401004C8D0B13154C0683F524486553A4022A30392B03154C0683F524486553A4035423F53AF3154C0683F524486553A4047C7D5C8AE3154C0683F524486553A405F234910AE3154C00837195586553A406D6DE179A93154C00837195586553A407A4FE5B4A73154C0A92EE06586553A409544F641963154C044696FF085553A404948A46DFC2F54C04A09C1AA7A553A4023658BA4DD2F54C00ED76A0F7B553A4036E84B6F7F2A54C0221807978E553A4001A08A1BB72854C048DBF81395553A40DEFDF15EB52854C048DBF81395553A40C78157CB9D2854C0F6B4C35F93553A40800D8810572854C04031B2648E553A406891ED7C3F2854C08E0244C18C553A404CE0D6DD3C2854C0AC1BEF8E8C553A40EAEA8EC5362854C0E84D452A8C553A40D9B3E732352854C0A65EB7088C553A40C748F608352854C00567F0F78B553A40D9E731CA332854C0656F29E78B553A409355116E322854C0C47762D68B553A40CFBBB1A0302854C00567F0F78B553A406DACC43C2B2854C06A2C616D8C553A4091D09673292854C04D13B69F8C553A40900E0F61FC2754C02D9276A38F553A403E027FF8F92754C02D9276A38F553A40469737876B2754C0DFC0E44691553A40DB8651103C2754C08575E3DD91553A405A10CAFB382754C08575E3DD91553A408EE6C8CA2F2754C0685C381092553A4000C287122D2754C00854FF2092553A40F52D73BA2C2754C00854FF2092553A4001F6D1A92B2754C04A438D4292553A400F0C207C282754C04F00C5C892553A400392B06F272754C031E719FB92553A400586AC6EF52654C0FB71FBE593553A40F31FD26F5F2654C09B012EC896553A40DDD1FF722D2654C00584D6C397553A40A2ED98BA2B2654C00584D6C397553A40AA7AF99D262654C0477364E597553A405854C4E9242654C0E76A2BF697553A40C43E0114232654C0E76A2BF697553A40C1374D9F1D2654C0295AB91798553A4015E0BBCD1B2654C0CA51802898553A403A765089EB2554C0F3E49A0299553A4078B471C45A2554C0F17C06D49B553A40850838842A2554C0BB07E8BE9C553A40EC4FE273272554C0BB07E8BE9C553A40D85F764F1E2554C03EE603029D553A408C101E6D1C2554C0DFDDCA129D553A40276552431B2554C0DFDDCA129D553A40CF6740BD192554C0E59A02999D553A407EA99F37152554C096C9703C9F553A400D6ABFB5132554C03D7E6FD39F553A40DA1CE736E12454C0E9EFA5F0A0553A4027F38FBE492454C0CF2B9E7AA4553A40DC63E943172454C01C959BA8A5553A409BFD8172DB2354C0AAED26F8A6553A40AA46AF06282354C037DE1D19AB553A40519E7939EC2254C0662E7079AC553A40027CB779E32254C0A71DFE9AAC553A401615713AC92254C0EEC9C342AD553A40AFB0E07EC02254C071A8DF85AD553A404B1FBAA0BE2254C071A8DF85AD553A40BF620D17B92254C0B3976DA7AD553A40438F183DB72254C0538F34B8AD553A401004C8D0B12254C0F486FBC8AD553A4060200890A12254C0594C6C3EAE553A401553E9279C2254C09B3BFA5FAE553A402101A3CB9B2254C09B3BFA5FAE553A40168733BF9A2254C09B3BFA5FAE553A400AF31E679A2254C03B33C170AE553A4099999999992254C03B33C170AE553A407DCEDDAE972254C0DC2A8881AE553A4000C79E3D972254C0DC2A8881AE553A405FE97C78962254C07D224F92AE553A40840D4FAF942254C07D224F92AE553A4043520B25932254C07D224F92AE553A40280989B48D2254C05F09A4C4AE553A4090847D3B892254C030B95164AD553A4044696FF0852254C0662E7079AC553A40D9CC21A9852254C0C536A968AC553A405CC5E237852254C084471B47AC553A40E6AE25E4832254C0C07971E2AB553A4046D1031F832254C03D9B559FAB553A4046EBA86A822254C0FBABC77DAB553A4070CCB227812254C020EA3E00A9553A40931ADA006C2254C0984EEB36A8553A401CEA77616B2254C0984EEB36A8553A40ED7F80B56A2254C0984EEB36A8553A409B73F04C682254C0565F5D15A8553A40C0B167CF652254C01570CFF3A7553A4062F4DC42572254C0CEC3094CA7553A406BB587BD502254C00FB3976DA7553A40FB8F4C874E2254C00FB3976DA7553A40A3ACDF4C4C2254C0B0AA5E7EA7553A404BAFCDC64A2254C0B0AA5E7EA7553A40DA6FED44492254C0B0AA5E7EA7553A408849B890472254C0B0AA5E7EA7553A401EDE7360392254C0B0AA5E7EA7553A40EB387EA8342254C0B0AA5E7EA7553A40081B9E5E292054C0747808E3A7553A40D8D47954FC1F54C01570CFF3A7553A401AFB928D071A54C0ADBD4F55A1553A401F9BE447FC1754C055DAE21A9F553A4024F0879FFF1654C03A9160AA99553A402827DA55481554C0D446753A90553A40016BD5AE091454C0CBB9145795553A40B6DAC35E281354C0F3E49A0299553A409929ADBF251354C034D4282499553A40ED7DAA0A0D1354C0AC38D55A98553A406A9F8EC70C1354C0AC38D55A98553A40ACA8C1340C1354C0AC38D55A98553A40E8DA17D00B1354C0AC38D55A98553A403B4F3C670B1354C0AC38D55A98553A4036ACA92C0A1354C0AC38D55A98553A408A20CEC3091354C0AC38D55A98553A407FC00303081354C0AC38D55A98553A4075E272BC021354C0AC38D55A98553A40AB5791D1011354C0AC38D55A98553A40
" + ], + "text/plain": [ + "[(284, '12', '011', '00295753', '12011', 'Broward', 'Broward County', '06', 'H1', 'G4020', '370', '33100', '22744', 'A', 3115289087, 310801098.0, '+26.1935353', '-080.4766834', '0106000020AD1000000100000001030000000100000050050000AB5791D1011354C0AC38D55A98553A40E2CCAFE6001354C004392861A6553A40BEF6CC92001354C081EB8A19E1553A40D ... (43274 characters truncated) ... 354C0AC38D55A98553A408A20CEC3091354C0AC38D55A98553A407FC00303081354C0AC38D55A98553A4075E272BC021354C0AC38D55A98553A40AB5791D1011354C0AC38D55A98553A40')]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%%sql postgresql://postgres:postgres@db/geocoder\n", + "select * from county where statefp = :statefp and name = :county" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "5357af29-4d21-4a21-971b-cafe4351b925", + "metadata": {}, + "outputs": [], + "source": [ + "county_result = _" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1f57342d-b700-478c-a3ac-82bd9830135d", + "metadata": {}, + "outputs": [], + "source": [ + "countyfp = county_result.DataFrame().iloc[0].countyfp" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "7790d2eb-1a09-454d-bab7-ac126cc8165e", + "metadata": {}, + "outputs": [], + "source": [ + "class CensusVars(str, enum.Enum):\n", + " median_renter_income = 'B25119_003E'\n", + " median_income = 'B19013_001E'\n", + " households_count = 'B07013_001E'\n", + " families_count = 'B17026_001E'\n", + " homeowners_count = 'B07013_002E'\n", + " renters_count = 'B07013_003E'" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "3de16ef4-9b8e-4e7a-a99d-7b3b577d8f0f", + "metadata": {}, + "outputs": [], + "source": [ + "state_data = censusdata.download(\n", + " \"acs5\",\n", + " 2019,\n", + " censusdata.censusgeo([(\"state\", statefp), (\"zip code tabulation area\", \"*\")]),\n", + " [val.value for val in CensusVars],\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "bbb61117-941b-4a1d-84f7-59cd6cc49c5f", + "metadata": {}, + "outputs": [], + "source": [ + "NULL_SIGNALS = [-666666666, -333333333, -222222222]\n", + "state_data.replace(to_replace=NULL_SIGNALS, value=np.nan, inplace=True)\n", + "state_data.columns = [val.name for val in CensusVars]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "206d7447-e165-4fc7-a0ad-14f225d3966c", + "metadata": {}, + "outputs": [], + "source": [ + "zcta_county_map = pd.read_csv('zcta_county_rel_10.txt', dtype='str')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "d9b96b30-ace6-4884-934b-10a568fcd142", + "metadata": {}, + "outputs": [], + "source": [ + "county_zctas = set(zcta_county_map[(zcta_county_map.COUNTY==countyfp) & (zcta_county_map.STATE==statefp)].ZCTA5)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "d076bb86-5a66-42ba-8811-1100380d5d2f", + "metadata": {}, + "outputs": [], + "source": [ + "state_data['zcta'] = state_data.index.map(lambda idx: idx.params()[-1][-1])" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "dfdd76d6-cd6b-408c-b9ee-f27dd1a9ba57", + "metadata": {}, + "outputs": [], + "source": [ + "zip_data = state_data[state_data.zcta.isin(county_zctas)].copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "88df5aa1-236d-48b8-b2a6-af0eb30f5c36", + "metadata": {}, + "outputs": [], + "source": [ + "zip_data.set_index('zcta', inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "d930412b-c5e5-4634-957a-3a0e6ebe6854", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " * postgresql://postgres:***@db/geocoder\n", + "1 rows affected.\n" + ] + } + ], + "source": [ + "hud = %sql select * from hud.income_limits where state_alpha = 'FL' and county_name ilike '{county} County'" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "aa3ea897-fb5d-459b-84b8-4d9a0b7ed880", + "metadata": {}, + "outputs": [], + "source": [ + "hud = hud.DataFrame()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "1293c449-d7b1-490a-ad00-73666d661d84", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "49300" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hud.iloc[0].l80_1" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "2d80a99b-bd2a-4099-a9ab-2a39283437d9", + "metadata": {}, + "outputs": [], + "source": [ + "zip_data['hud_income_limit'] = hud.iloc[0].l80_1" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "cd93e30e-846e-42f0-b2ff-32275d24f0b1", + "metadata": {}, + "outputs": [], + "source": [ + "zip_data['comparison_income'] = zip_data.median_renter_income\n", + "zip_data.loc[zip_data.median_renter_income.isna(), 'comparison_income'] = zip_data.median_income" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "3b400b25-38d5-4ead-a4f8-97c470cc4cc0", + "metadata": {}, + "outputs": [], + "source": [ + "zip_data['does_income_qualify'] = 'False'\n", + "zip_data.loc[(~zip_data.comparison_income.isna()) & (zip_data.comparison_income < zip_data.hud_income_limit), 'does_income_qualify'] = 'True'" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "2686ed05-b0a1-41f4-b232-c580498e9cfc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
median_renter_incomemedian_incomehouseholds_countfamilies_counthomeowners_countrenters_counthud_income_limitcomparison_incomedoes_income_qualify
zcta
3330848198.064792.027027.06438.019155.07872.04930048198.0True
3331444647.051635.025795.05656.010007.015788.04930044647.0True
3331739529.067878.037733.09246.028466.09267.04930039529.0True
3332249574.048179.038665.09456.031349.07316.04930049574.0False
3332563505.082805.029206.07143.022808.06398.04930063505.0False
3307362989.077158.034891.08499.021501.013390.04930062989.0False
3330648802.071357.03113.0734.02152.0961.04930048802.0True
3331129656.036649.073924.014693.028749.045175.04930029656.0True
3332664680.093197.032745.08531.021680.011065.04930064680.0False
33330107888.0130208.015547.03945.013692.01855.049300107888.0False
3335144762.060848.034494.08346.019360.015134.04930044762.0True
3306442338.053238.059702.012794.034914.024788.04930042338.0True
3307154922.091999.038814.010070.024996.013818.04930054922.0False
3302670929.080232.031684.08130.025576.06108.04930070929.0False
3331558894.076507.013540.02811.07028.06512.04930058894.0False
3300434088.042469.015516.03645.07675.07841.04930034088.0True
3302144776.060289.048620.012095.031038.017582.04930044776.0True
3302339925.052783.072643.015826.049457.023186.04930039925.0True
3302551298.058483.071930.015758.036022.035908.04930051298.0False
3306653397.050674.016533.03899.013193.03340.04930053397.0False
3331331713.038201.061047.013135.026162.034885.04930031713.0True
3307683899.0136343.038655.010381.032010.06645.04930083899.0False
3331648783.067477.09315.02172.05591.03724.04930048783.0True
3333438020.052303.028977.06022.015466.013511.04930038020.0True
3306836177.045613.051933.011202.031177.020756.04930036177.0True
3332377886.088946.021374.05254.016188.05186.04930077886.0False
3333295484.0139984.011507.02877.010276.01231.04930095484.0False
3344140239.048778.026969.06019.013749.013220.04930040239.0True
3302744542.063414.060036.015049.047288.012748.04930044542.0True
3306338028.046450.054004.012838.037030.016974.04930038028.0True
3306768798.0103337.027080.06898.019715.07365.04930068798.0False
3306947425.049732.024461.05476.011203.013258.04930047425.0True
3330175114.099382.014126.03061.06982.07144.04930075114.0False
3330444805.058290.017911.03149.06722.011189.04930044805.0True
3344247618.049599.028251.06924.018372.09879.04930047618.0True
3301951758.080000.013509.03863.010617.02892.04930051758.0False
3302962168.0113082.047872.012042.042163.05709.04930062168.0False
3306546240.055686.057187.013360.027839.029348.04930046240.0True
3330944646.055134.039919.08226.023488.016431.04930044646.0True
3331939279.044993.045992.010819.027469.018523.04930039279.0True
3332145564.049784.046706.011136.032215.014491.04930045564.0True
3300935991.038665.041176.09603.019567.021609.04930035991.0True
3331243045.058144.054310.011367.031567.022743.04930043045.0True
3333195625.0125608.025522.06660.022089.03433.04930095625.0False
3332462537.070461.048308.012132.026508.021800.04930062537.0False
3332778189.0117906.023728.06090.017416.06312.04930078189.0False
3332847891.092227.028989.07520.022764.06225.04930047891.0True
3330547175.074095.011934.02279.08253.03681.04930047175.0True
3302036292.043494.043686.09244.015748.027938.04930036292.0True
3302443368.061470.075481.017202.050629.024852.04930043368.0True
3302880192.0104271.026641.06872.020943.05698.04930080192.0False
3306034021.044647.036386.08017.015044.021342.04930034021.0True
3306245109.064812.022382.06072.016506.05876.04930045109.0True
\n", + "
" + ], + "text/plain": [ + " median_renter_income median_income households_count families_count \\\n", + "zcta \n", + "33308 48198.0 64792.0 27027.0 6438.0 \n", + "33314 44647.0 51635.0 25795.0 5656.0 \n", + "33317 39529.0 67878.0 37733.0 9246.0 \n", + "33322 49574.0 48179.0 38665.0 9456.0 \n", + "33325 63505.0 82805.0 29206.0 7143.0 \n", + "33073 62989.0 77158.0 34891.0 8499.0 \n", + "33306 48802.0 71357.0 3113.0 734.0 \n", + "33311 29656.0 36649.0 73924.0 14693.0 \n", + "33326 64680.0 93197.0 32745.0 8531.0 \n", + "33330 107888.0 130208.0 15547.0 3945.0 \n", + "33351 44762.0 60848.0 34494.0 8346.0 \n", + "33064 42338.0 53238.0 59702.0 12794.0 \n", + "33071 54922.0 91999.0 38814.0 10070.0 \n", + "33026 70929.0 80232.0 31684.0 8130.0 \n", + "33315 58894.0 76507.0 13540.0 2811.0 \n", + "33004 34088.0 42469.0 15516.0 3645.0 \n", + "33021 44776.0 60289.0 48620.0 12095.0 \n", + "33023 39925.0 52783.0 72643.0 15826.0 \n", + "33025 51298.0 58483.0 71930.0 15758.0 \n", + "33066 53397.0 50674.0 16533.0 3899.0 \n", + "33313 31713.0 38201.0 61047.0 13135.0 \n", + "33076 83899.0 136343.0 38655.0 10381.0 \n", + "33316 48783.0 67477.0 9315.0 2172.0 \n", + "33334 38020.0 52303.0 28977.0 6022.0 \n", + "33068 36177.0 45613.0 51933.0 11202.0 \n", + "33323 77886.0 88946.0 21374.0 5254.0 \n", + "33332 95484.0 139984.0 11507.0 2877.0 \n", + "33441 40239.0 48778.0 26969.0 6019.0 \n", + "33027 44542.0 63414.0 60036.0 15049.0 \n", + "33063 38028.0 46450.0 54004.0 12838.0 \n", + "33067 68798.0 103337.0 27080.0 6898.0 \n", + "33069 47425.0 49732.0 24461.0 5476.0 \n", + "33301 75114.0 99382.0 14126.0 3061.0 \n", + "33304 44805.0 58290.0 17911.0 3149.0 \n", + "33442 47618.0 49599.0 28251.0 6924.0 \n", + "33019 51758.0 80000.0 13509.0 3863.0 \n", + "33029 62168.0 113082.0 47872.0 12042.0 \n", + "33065 46240.0 55686.0 57187.0 13360.0 \n", + "33309 44646.0 55134.0 39919.0 8226.0 \n", + "33319 39279.0 44993.0 45992.0 10819.0 \n", + "33321 45564.0 49784.0 46706.0 11136.0 \n", + "33009 35991.0 38665.0 41176.0 9603.0 \n", + "33312 43045.0 58144.0 54310.0 11367.0 \n", + "33331 95625.0 125608.0 25522.0 6660.0 \n", + "33324 62537.0 70461.0 48308.0 12132.0 \n", + "33327 78189.0 117906.0 23728.0 6090.0 \n", + "33328 47891.0 92227.0 28989.0 7520.0 \n", + "33305 47175.0 74095.0 11934.0 2279.0 \n", + "33020 36292.0 43494.0 43686.0 9244.0 \n", + "33024 43368.0 61470.0 75481.0 17202.0 \n", + "33028 80192.0 104271.0 26641.0 6872.0 \n", + "33060 34021.0 44647.0 36386.0 8017.0 \n", + "33062 45109.0 64812.0 22382.0 6072.0 \n", + "\n", + " homeowners_count renters_count hud_income_limit comparison_income \\\n", + "zcta \n", + "33308 19155.0 7872.0 49300 48198.0 \n", + "33314 10007.0 15788.0 49300 44647.0 \n", + "33317 28466.0 9267.0 49300 39529.0 \n", + "33322 31349.0 7316.0 49300 49574.0 \n", + "33325 22808.0 6398.0 49300 63505.0 \n", + "33073 21501.0 13390.0 49300 62989.0 \n", + "33306 2152.0 961.0 49300 48802.0 \n", + "33311 28749.0 45175.0 49300 29656.0 \n", + "33326 21680.0 11065.0 49300 64680.0 \n", + "33330 13692.0 1855.0 49300 107888.0 \n", + "33351 19360.0 15134.0 49300 44762.0 \n", + "33064 34914.0 24788.0 49300 42338.0 \n", + "33071 24996.0 13818.0 49300 54922.0 \n", + "33026 25576.0 6108.0 49300 70929.0 \n", + "33315 7028.0 6512.0 49300 58894.0 \n", + "33004 7675.0 7841.0 49300 34088.0 \n", + "33021 31038.0 17582.0 49300 44776.0 \n", + "33023 49457.0 23186.0 49300 39925.0 \n", + "33025 36022.0 35908.0 49300 51298.0 \n", + "33066 13193.0 3340.0 49300 53397.0 \n", + "33313 26162.0 34885.0 49300 31713.0 \n", + "33076 32010.0 6645.0 49300 83899.0 \n", + "33316 5591.0 3724.0 49300 48783.0 \n", + "33334 15466.0 13511.0 49300 38020.0 \n", + "33068 31177.0 20756.0 49300 36177.0 \n", + "33323 16188.0 5186.0 49300 77886.0 \n", + "33332 10276.0 1231.0 49300 95484.0 \n", + "33441 13749.0 13220.0 49300 40239.0 \n", + "33027 47288.0 12748.0 49300 44542.0 \n", + "33063 37030.0 16974.0 49300 38028.0 \n", + "33067 19715.0 7365.0 49300 68798.0 \n", + "33069 11203.0 13258.0 49300 47425.0 \n", + "33301 6982.0 7144.0 49300 75114.0 \n", + "33304 6722.0 11189.0 49300 44805.0 \n", + "33442 18372.0 9879.0 49300 47618.0 \n", + "33019 10617.0 2892.0 49300 51758.0 \n", + "33029 42163.0 5709.0 49300 62168.0 \n", + "33065 27839.0 29348.0 49300 46240.0 \n", + "33309 23488.0 16431.0 49300 44646.0 \n", + "33319 27469.0 18523.0 49300 39279.0 \n", + "33321 32215.0 14491.0 49300 45564.0 \n", + "33009 19567.0 21609.0 49300 35991.0 \n", + "33312 31567.0 22743.0 49300 43045.0 \n", + "33331 22089.0 3433.0 49300 95625.0 \n", + "33324 26508.0 21800.0 49300 62537.0 \n", + "33327 17416.0 6312.0 49300 78189.0 \n", + "33328 22764.0 6225.0 49300 47891.0 \n", + "33305 8253.0 3681.0 49300 47175.0 \n", + "33020 15748.0 27938.0 49300 36292.0 \n", + "33024 50629.0 24852.0 49300 43368.0 \n", + "33028 20943.0 5698.0 49300 80192.0 \n", + "33060 15044.0 21342.0 49300 34021.0 \n", + "33062 16506.0 5876.0 49300 45109.0 \n", + "\n", + " does_income_qualify \n", + "zcta \n", + "33308 True \n", + "33314 True \n", + "33317 True \n", + "33322 False \n", + "33325 False \n", + "33073 False \n", + "33306 True \n", + "33311 True \n", + "33326 False \n", + "33330 False \n", + "33351 True \n", + "33064 True \n", + "33071 False \n", + "33026 False \n", + "33315 False \n", + "33004 True \n", + "33021 True \n", + "33023 True \n", + "33025 False \n", + "33066 False \n", + "33313 True \n", + "33076 False \n", + "33316 True \n", + "33334 True \n", + "33068 True \n", + "33323 False \n", + "33332 False \n", + "33441 True \n", + "33027 True \n", + "33063 True \n", + "33067 False \n", + "33069 True \n", + "33301 False \n", + "33304 True \n", + "33442 True \n", + "33019 False \n", + "33029 False \n", + "33065 True \n", + "33309 True \n", + "33319 True \n", + "33321 True \n", + "33009 True \n", + "33312 True \n", + "33331 False \n", + "33324 False \n", + "33327 False \n", + "33328 True \n", + "33305 True \n", + "33020 True \n", + "33024 True \n", + "33028 False \n", + "33060 True \n", + "33062 True " + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "zip_data" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "304948a7-2c1b-4a73-a701-3934dbebe5d9", + "metadata": {}, + "outputs": [], + "source": [ + "zip_data[['does_income_qualify', 'hud_income_limit', 'median_renter_income', 'median_income']].to_excel(f'{county}-county-{state}.xlsx')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}