TO DO:

  1. ~Fix counties for unclaimed~
  2. ~Fix counties for unidentified~
  3. ~Add line to state_centroids with south pole coordinates and nonsense FIPS code~
  4. ~Re-export state-level json (now that county fields have been updated within the databases and American Samoa has been removed)~
    • ~MAKE SURE TO MAP NAS to nonsense FIPS~
  5. ~Add to county centroids:~
    • ~55 lines with south pole coordinates and nonsense county FIPS codes (state only_999)~
    • ~1 line with south pole coordinates and nonsense FIPS code (99)~
  6. ~Format county data - state name, and then name and county FIPS code, to get GEOID~
  7. ~Export county-level json~
    • ~any records with no county get pulled (to separate state FIPS with no county key and nonsense coordinates [south pole])~
    • ~make sure state name included as field with each database, not just FIPS code~
  8. ~Re-export summary count JSON (as a few cases have been deleted)~
    • ~Address 21 NAs for Unclaimed?~
  9. ~Clean null values for age and gender and sex and race / ethnicity~
  10. ~Re-export state and county JSONS~
  11. ~Make GeoJSON of state polygons~
  12. ~Make GeoJSON of county polygons~
  13. ~Make summary GeoJSON with county counts~
  14. ~See how bad city data would be~
    • ~likely need to make all city names .lower~
  15. ~re-check city nulls~
  16. ~change 'other' and 'unsure' to uncertain for race / ethnicity in all databases~
  17. ~Add new county name field to city_df based on GEOID (since county names spelled differently)~
  18. ~Re-run all steps (inc. summary county json and county polygons)~
  19. ~Map databases to state polygons~
  20. ~Map databases to county polygons~
  21. ~Map state counts to state polygons~
  22. ~Map county counts to county polygons~

In [1]:
# import necessary packages
import pandas as pd
import geopandas as gpd
import numpy as np
import json
import geojson

Notes:

  1. Edits to Missing_04182020.csv prior to import
    • Virgin Islands (to United States Virgin Islands),
    • Tennesse (to Tennessee), and
    • Northern Mariana Islands (to Commonwealth of the Northern Mariana Islands)
    • Address all county nulls
  2. Edits to Unclaimed_0418202.csv priort to import
    • Address all county nulls
  3. Edits to Unidentified_04182020.csv prior to import
    • Virgin Islands (to United States Virgin Islands)
    • Address all county nulls
  4. Edits to state_centroids_v2 prior to import
    • Add one row with south pole coordinates and nonsense FIPS code(99) - for cases w/ no city, county, or state
  5. Edits to county_centroids_v2 prior to import
    • Add one row with south pole coordinates and nonsense FIPS code(99) - for cases w/ no city, county, or state
    • Add 55 rows with south pole coordinates and nonsense county FIPS codes(999) - for cases w/ no city or county

In [2]:
# Read in csvs
city_df = pd.read_csv('cities_v3.csv', encoding='ISO-8859-1', engine='python')

In [3]:
state_centroids_df = pd.read_csv('state_centroids.csv')

In [4]:
# alternate centroids - with None option with FIPS 99
state_centroids_v2_df = pd.read_csv('state_centroids_v2.csv')

In [5]:
county_centroids_df = pd.read_csv('county_centroids.csv', encoding='Windows-1252')

In [6]:
# alternate centroids - with None options with count FIPS 999
county_centroids_v2_df = pd.read_csv('county_centroids_v2.csv', encoding='Windows-1252')

In [7]:
missing_df = pd.read_csv('Missing_04182020.csv')

In [8]:
unclaimed_df = pd.read_csv('Unclaimed_04182020.csv')

In [9]:
unidentified_df = pd.read_csv('Unidentified_04182020.csv')

In [10]:
# check dataframe
state_centroids_v2_df.head()


Out[10]:
OBJECTID STATEFP STATENS AFFGEOID GEOID STUSPS NAME LSAD ALAND AWATER ORIG_FID Lon_dd Lat_dd
0 1 28 1779790 0400000US28 28 MS Mississippi 0 1.220000e+11 3.926920e+09 1 -89.665425 32.751473
1 2 37 1027616 0400000US37 37 NC North Carolina 0 1.260000e+11 1.346607e+10 2 -79.380052 35.542238
2 3 40 1102857 0400000US40 40 OK Oklahoma 0 1.780000e+11 3.374588e+09 3 -97.508293 35.583486
3 4 51 1779803 0400000US51 51 VA Virginia 0 1.020000e+11 8.528532e+09 4 -78.883285 37.512967
4 5 54 1779805 0400000US54 54 WV West Virginia 0 6.226647e+10 4.890285e+08 5 -80.613731 38.642587

Part 1 - Prep data by replacing null attribute values [NOT CITY, COUNTY, OR STATE - Those are addressed later]

Clean Missing dataframe

Check for null values, and replace as needed

In [11]:
# check dataframe
missing_df.head()


Out[11]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019
3 MP43187 2/20/2018 johnson abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016

In [12]:
## Check if any rows with null value for DLC [NOTE: Leave as NaN]
missing_attr_df = missing_df.loc[missing_df['DLC'].isnull()]
# len(missing_attr_df)
missing_attr_df


Out[12]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
14160 MP56286 NaN DELAHAY Glenora NaN York York Pennsylvania Female White / Caucasian 4/8/2020
16310 MP54713 NaN Garcia Ruben NaN Austin Travis Texas Male Hispanic / Latino 4/3/2020

In [13]:
## Check if any rows with null value for Missing Age
missing_attr_1_df = missing_df.loc[missing_df['Missing Age'].isnull()]
# len(missing_attr_1_df)
missing_attr_1_df


Out[13]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
3293 MP35843 7/20/1990 Renteria Martin NaN Santa Ana Orange California Male Hispanic / Latino 11/21/2019
4756 MP59185 11/25/1970 Rindahl Baby Boy NaN Wheat Ridge Jefferson Colorado Male White / Caucasian 1/27/2020
5480 MP38301 8/13/2014 Weedon Nehemiah NaN Jacksonville Duval Florida Male Black / African American 4/13/2020
6208 MP38734 2/15/2016 Richardson Baby NaN Orlando Orange Florida Female Black / African American 4/9/2020
6883 MP566 7/7/1999 Murphy Sarah NaN Columbus Muscogee Georgia Female Black / African American 10/4/2011
7079 MP1284 4/21/2002 Martinez Priscilla NaN Honokowai Maui Hawaii Female White / Caucasian, Hispanic / Latino 3/5/2020
7085 MP1282 7/29/2005 Amaral Robert NaN Lanai Maui Hawaii Male Other 3/5/2020
7826 MP17063 5/20/2003 Liendo Fabian NaN Wapello Louisa Iowa Male White / Caucasian, Hispanic / Latino 10/4/2017
12607 MP14033 4/1/1965 Franks Elizabeth NaN Toledo Lucas Ohio Female White / Caucasian 6/1/2018
13678 MP20168 12/4/1974 Lloyd Charles NaN Banks Washington Oregon Male White / Caucasian 3/2/2020
14160 MP56286 NaN DELAHAY Glenora NaN York York Pennsylvania Female White / Caucasian 4/8/2020
16310 MP54713 NaN Garcia Ruben NaN Austin Travis Texas Male Hispanic / Latino 4/3/2020

In [14]:
# Re-assign missing age values to be 'Unknown'
missing_df['Missing Age'] = missing_df['Missing Age'].fillna('Unknown')
missing_df.head()


Out[14]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019
3 MP43187 2/20/2018 johnson abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016

In [15]:
## Double check re-assigned values
missing_age_test_df = missing_df.loc[missing_df['Missing Age']=='Unknown']
missing_age_test_df
# len(missing_age_test_df)


Out[15]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
3293 MP35843 7/20/1990 Renteria Martin Unknown Santa Ana Orange California Male Hispanic / Latino 11/21/2019
4756 MP59185 11/25/1970 Rindahl Baby Boy Unknown Wheat Ridge Jefferson Colorado Male White / Caucasian 1/27/2020
5480 MP38301 8/13/2014 Weedon Nehemiah Unknown Jacksonville Duval Florida Male Black / African American 4/13/2020
6208 MP38734 2/15/2016 Richardson Baby Unknown Orlando Orange Florida Female Black / African American 4/9/2020
6883 MP566 7/7/1999 Murphy Sarah Unknown Columbus Muscogee Georgia Female Black / African American 10/4/2011
7079 MP1284 4/21/2002 Martinez Priscilla Unknown Honokowai Maui Hawaii Female White / Caucasian, Hispanic / Latino 3/5/2020
7085 MP1282 7/29/2005 Amaral Robert Unknown Lanai Maui Hawaii Male Other 3/5/2020
7826 MP17063 5/20/2003 Liendo Fabian Unknown Wapello Louisa Iowa Male White / Caucasian, Hispanic / Latino 10/4/2017
12607 MP14033 4/1/1965 Franks Elizabeth Unknown Toledo Lucas Ohio Female White / Caucasian 6/1/2018
13678 MP20168 12/4/1974 Lloyd Charles Unknown Banks Washington Oregon Male White / Caucasian 3/2/2020
14160 MP56286 NaN DELAHAY Glenora Unknown York York Pennsylvania Female White / Caucasian 4/8/2020
16310 MP54713 NaN Garcia Ruben Unknown Austin Travis Texas Male Hispanic / Latino 4/3/2020

In [16]:
## Check if any rows with null value for Race / Ethnicity
missing_attr_2_df = missing_df.loc[missing_df['Race / Ethnicity'].isnull()]
# len(missing_attr_2_df)
missing_attr_2_df


Out[16]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
12167 MP55602 4/1/1955 Williams James 27 Marion McDowell North Carolina Male NaN 8/1/2019

In [17]:
# Re-assign missing race / ethnicity values to be 'Uncertain'
missing_df['Race / Ethnicity'] = missing_df['Race / Ethnicity'].fillna('Uncertain')
missing_df.head()


Out[17]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019
3 MP43187 2/20/2018 johnson abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016

In [18]:
# Re-assign 'unsure' race / ethnicity values to be 'Uncertain'
missing_df['Race / Ethnicity'] = missing_df['Race / Ethnicity'].str.replace('Unsure','Uncertain')
missing_df.head()


Out[18]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019
3 MP43187 2/20/2018 johnson abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016

In [19]:
# Re-assign 'other' race / ethnicity values to be 'Uncertain'
missing_df['Race / Ethnicity'] = missing_df['Race / Ethnicity'].str.replace('Other','Uncertain')
missing_df.head()


Out[19]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019
3 MP43187 2/20/2018 johnson abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016

In [20]:
## Double check re-assigned values
missing_race_test_df = missing_df.loc[missing_df['Race / Ethnicity']=='Uncertain']
missing_race_test_df
# len(missing_race_test_df)


Out[20]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
252 MP55684 11/22/1979 Hoffman Ronald 37 Dutch Harbor Aleutians West Alaska Male Uncertain 4/14/2020
259 MP34147 7/24/2004 Flores-Mata Valeriano 32 St. Paul Aleutians West Alaska Male Uncertain 4/14/2020
302 MP24314 4/1/2013 McCormick Dashawn 5 Anchorage Anchorage Alaska Male Uncertain 4/14/2020
306 MP57385 8/27/1985 Garcia James 26 Anchorage Anchorage Alaska Male Uncertain 4/14/2020
307 MP43344 8/17/1981 Hawk Robert 34 Anchorage Anchorage Alaska Male Uncertain 2/5/2020
... ... ... ... ... ... ... ... ... ... ... ...
17399 MP2768 5/9/2009 Collins Kelsey 18 Everett Snohomish Washington Female Uncertain 1/10/2018
17657 MP35299 12/3/2015 Richardson Chaz 26 Surveyor Raleigh West Virginia Male Uncertain 11/22/2019
17684 MP41664 11/15/2017 Guyton Daniel 38 Green Bay Brown Wisconsin Male Uncertain 1/31/2018
17827 MP66297 10/14/1975 Theis Charles 76 Phelps Vilas Wisconsin Male Uncertain 3/12/2020
17842 MP50856 8/20/1999 Menger Dakota 2 Nekoosa Wood Wisconsin Male Uncertain 2/5/2019

198 rows × 11 columns

Force all names to lowercase then capitalize

In [21]:
# check dataframe
missing_df.head()


Out[21]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019
3 MP43187 2/20/2018 johnson abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016

In [22]:
missing_df['Last Name'] = missing_df['Last Name'].str.lower()
missing_df.head()


Out[22]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
0 MP2341 5/8/1999 reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020
1 MP8522 1/15/2010 walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015
2 MP50314 5/16/2018 keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019
3 MP43187 2/20/2018 johnson abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020
4 MP23019 11/5/2012 shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016

In [23]:
missing_df['Last Name'] = missing_df['Last Name'].str.capitalize()
missing_df.head()


Out[23]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019
3 MP43187 2/20/2018 Johnson abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016

In [24]:
missing_df['First Name'] = missing_df['First Name'].str.lower()
missing_df.head()


Out[24]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
0 MP2341 5/8/1999 Reynolds james 28 Opp Autauga Alabama Male Black / African American 2/14/2020
1 MP8522 1/15/2010 Walker jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015
2 MP50314 5/16/2018 Keszthelyi steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019
3 MP43187 2/20/2018 Johnson abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020
4 MP23019 11/5/2012 Shroyer james 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016

In [25]:
missing_df['First Name'] = missing_df['First Name'].str.capitalize()
missing_df.head()


Out[25]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019
3 MP43187 2/20/2018 Johnson Abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016

Clean Unclaimed dataframe

Check for null values, and replace as needed

In [26]:
# check dataframe
unclaimed_df.head()


Out[26]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

In [27]:
## Check if any rows with null value for DBF [NOTE: Leave as NaN]
unclaimed_attr_df = unclaimed_df.loc[unclaimed_df['DBF'].isnull()]
# len(unclaimed_attr_df)
unclaimed_attr_df


Out[27]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
337 UCP3089 NaN De Jesus Gomez Jose Male Uncertain Avondale Maricopa Arizona 2/7/2017
603 UCP4222 NaN Thompson Rashie Female Black / African American Boston Suffolk Massachusetts 4/23/2019
604 UCP1815 NaN Torres Angel Male Uncertain Boston Suffolk Massachusetts 12/14/2015
610 UCP3591 NaN Funez-Hernandez Fredi Male White / Caucasian, Hispanic / Latino Brentwood Williamson Tennessee 4/21/2017
1252 UCP5397 NaN Texi Salvadore Male White / Caucasian, Hispanic / Latino Bronx Bronx New York 11/21/2018
... ... ... ... ... ... ... ... ... ... ...
8330 UCP1040 NaN Snell Gerald Male NaN NaN Wayne Michigan 3/19/2020
8331 UCP341 NaN Brotherton Quilen Male NaN NaN Spokane Washington 4/14/2020
8332 UCP326 NaN Bell Phillip Male NaN NaN Spokane Washington 4/14/2020
8333 UCP345 NaN Buonantony Elena Female NaN NaN Spokane Washington 4/14/2020
8334 UCP371 NaN Callison James Male NaN NaN Adams Washington 4/14/2020

953 rows × 10 columns


In [28]:
## Check if any rows with null value for last name
unclaimed_attr_1_df = unclaimed_df.loc[unclaimed_df['Last Name'].isnull()]
# len(unclaimed_attr_1_df)
unclaimed_attr_1_df


Out[28]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
7979 UCP62756 NaN NaN NaN NaN NaN NaN San Bernardino California 12/19/2019
8292 UCP62750 NaN NaN NaN NaN NaN NaN San Bernardino California 12/19/2019

In [29]:
# Re-assign missing last name values to be 'Unknown'
unclaimed_df['Last Name'] = unclaimed_df['Last Name'].fillna('Unknown')
unclaimed_df.head()


Out[29]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

In [30]:
## Double check re-assigned values
unclaimed_lname_test_df = unclaimed_df.loc[unclaimed_df['Last Name']=='Unknown']
unclaimed_lname_test_df
# len(unclaimed_lname_test_df)


Out[30]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
7979 UCP62756 NaN Unknown NaN NaN NaN NaN San Bernardino California 12/19/2019
8292 UCP62750 NaN Unknown NaN NaN NaN NaN San Bernardino California 12/19/2019

In [31]:
## Check if any rows with null value for first name
unclaimed_attr_2_df = unclaimed_df.loc[unclaimed_df['First Name'].isnull()]
# len(unclaimed_attr_2_df)
unclaimed_attr_2_df


Out[31]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
7979 UCP62756 NaN Unknown NaN NaN NaN NaN San Bernardino California 12/19/2019
8195 UCP66063 NaN Goldstein NaN NaN NaN NaN Yakima Washington 3/26/2020
8292 UCP62750 NaN Unknown NaN NaN NaN NaN San Bernardino California 12/19/2019

In [32]:
# Re-assign missing first name values to be 'Unknown'
unclaimed_df['First Name'] = unclaimed_df['First Name'].fillna('Unknown')
unclaimed_df.head()


Out[32]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

In [33]:
## Double check re-assigned values
unclaimed_fname_test_df = unclaimed_df.loc[unclaimed_df['First Name']=='Unknown']
unclaimed_fname_test_df
# len(unclaimed_fname_test_df)


Out[33]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
7979 UCP62756 NaN Unknown Unknown NaN NaN NaN San Bernardino California 12/19/2019
8195 UCP66063 NaN Goldstein Unknown NaN NaN NaN Yakima Washington 3/26/2020
8292 UCP62750 NaN Unknown Unknown NaN NaN NaN San Bernardino California 12/19/2019

In [34]:
## Check if any rows with null value for sex
unclaimed_attr_3_df = unclaimed_df.loc[unclaimed_df['Sex'].isnull()]
# len(unclaimed_attr_3_df)
unclaimed_attr_3_df


Out[34]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
1247 UCP1185 10/23/2014 Sanchez Egberto NaN NaN Bronx Bronx New York 5/30/2017
2372 UCP3178 NaN Lang Thanh NaN NaN Highland San Bernardino California 3/2/2017
4404 UCP1177 3/20/2015 Etienne Luzanne NaN NaN Queens Queens New York 5/7/2015
4809 UCP379 10/27/2001 Chapman Andees NaN NaN Spokane Spokane Washington 4/14/2020
6587 UCP63503 1/22/2016 Vanderbeck Robert NaN NaN NaN San Bernardino California 12/19/2019
... ... ... ... ... ... ... ... ... ... ...
8315 UCP62761 NaN Sepulveda Raymond NaN NaN NaN San Bernardino California 12/19/2019
8316 UCP62762 NaN Cruz Sergio NaN NaN NaN San Bernardino California 12/19/2019
8317 UCP62738 NaN Hartman William NaN NaN NaN San Bernardino California 12/19/2019
8321 UCP1027 NaN Miah Mashuk NaN NaN NaN Wayne Michigan 3/19/2020
8329 UCP1048 NaN Haraszkiewicz Kazimierz NaN NaN NaN Wayne Michigan 3/19/2020

1063 rows × 10 columns


In [35]:
# Re-assign missing sex values to be 'Unknown'
unclaimed_df['Sex'] = unclaimed_df['Sex'].fillna('Unknown')
unclaimed_df.head()


Out[35]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

In [36]:
## Double check re-assigned values
unclaimed_sex_test_df = unclaimed_df.loc[unclaimed_df['Sex']=='Unknown']
unclaimed_sex_test_df
# len(unclaimed_sex_test_df)


Out[36]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
1247 UCP1185 10/23/2014 Sanchez Egberto Unknown NaN Bronx Bronx New York 5/30/2017
2372 UCP3178 NaN Lang Thanh Unknown NaN Highland San Bernardino California 3/2/2017
4404 UCP1177 3/20/2015 Etienne Luzanne Unknown NaN Queens Queens New York 5/7/2015
4809 UCP379 10/27/2001 Chapman Andees Unknown NaN Spokane Spokane Washington 4/14/2020
6587 UCP63503 1/22/2016 Vanderbeck Robert Unknown NaN NaN San Bernardino California 12/19/2019
... ... ... ... ... ... ... ... ... ... ...
8315 UCP62761 NaN Sepulveda Raymond Unknown NaN NaN San Bernardino California 12/19/2019
8316 UCP62762 NaN Cruz Sergio Unknown NaN NaN San Bernardino California 12/19/2019
8317 UCP62738 NaN Hartman William Unknown NaN NaN San Bernardino California 12/19/2019
8321 UCP1027 NaN Miah Mashuk Unknown NaN NaN Wayne Michigan 3/19/2020
8329 UCP1048 NaN Haraszkiewicz Kazimierz Unknown NaN NaN Wayne Michigan 3/19/2020

1063 rows × 10 columns


In [37]:
## Check if any rows with null value for race / ethnicity
unclaimed_attr_4_df = unclaimed_df.loc[unclaimed_df['Race / Ethnicity'].isnull()]
# len(unclaimed_attr_4_df)
unclaimed_attr_4_df


Out[37]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
22 UCP5386 4/7/2016 Abusaiba Helal Male NaN Albuquerque Union New Mexico 5/5/2018
324 UCP146 6/18/2010 Martinez Jose Male NaN Atlanta Fulton Georgia 4/19/2019
346 UCP3430 8/16/2016 Busang Harry Male NaN Bellvue Blaine Idaho 4/5/2017
478 UCP3395 11/26/2014 Kennedy Bobbie Female NaN Boise Ada Idaho 4/3/2017
479 UCP3391 8/16/2014 Flint-Higgins Quade Male NaN Boise Ada Idaho 4/3/2017
... ... ... ... ... ... ... ... ... ... ...
8330 UCP1040 NaN Snell Gerald Male NaN NaN Wayne Michigan 3/19/2020
8331 UCP341 NaN Brotherton Quilen Male NaN NaN Spokane Washington 4/14/2020
8332 UCP326 NaN Bell Phillip Male NaN NaN Spokane Washington 4/14/2020
8333 UCP345 NaN Buonantony Elena Female NaN NaN Spokane Washington 4/14/2020
8334 UCP371 NaN Callison James Male NaN NaN Adams Washington 4/14/2020

1556 rows × 10 columns


In [38]:
# Re-assign missing race / ethnicity values to be 'Uncertain'
unclaimed_df['Race / Ethnicity'] = unclaimed_df['Race / Ethnicity'].fillna('Uncertain')
unclaimed_df.head()


Out[38]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

In [39]:
# Re-assign 'unsure' race / ethnicity values to be 'Uncertain'
unclaimed_df['Race / Ethnicity'] = unclaimed_df['Race / Ethnicity'].str.replace('Unsure','Uncertain')
unclaimed_df.head()


Out[39]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

In [40]:
# Re-assign 'other' race / ethnicity values to be 'Uncertain'
unclaimed_df['Race / Ethnicity'] = unclaimed_df['Race / Ethnicity'].str.replace('Other','Uncertain')
unclaimed_df.head()


Out[40]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

In [41]:
## Double check re-assigned values
unclaimed_race_test_df = unclaimed_df.loc[unclaimed_df['Race / Ethnicity']=='Uncertain']
unclaimed_race_test_df
# len(unclaimed_race_test_df)


Out[41]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
22 UCP5386 4/7/2016 Abusaiba Helal Male Uncertain Albuquerque Union New Mexico 5/5/2018
61 UCP3909 2/3/2009 Herlem Ronald Male Uncertain Anaheim Orange California 5/11/2017
110 UCP3670 9/1/2006 Jackson Elias Male Uncertain Anaheim Orange California 5/2/2017
127 UCP3545 2/28/2005 Adams Donald Male Uncertain Anaheim Orange California 4/20/2017
129 UCP3352 11/14/2004 Nunez Benjamin Male Uncertain Anaheim Orange California 3/30/2017
... ... ... ... ... ... ... ... ... ... ...
8330 UCP1040 NaN Snell Gerald Male Uncertain NaN Wayne Michigan 3/19/2020
8331 UCP341 NaN Brotherton Quilen Male Uncertain NaN Spokane Washington 4/14/2020
8332 UCP326 NaN Bell Phillip Male Uncertain NaN Spokane Washington 4/14/2020
8333 UCP345 NaN Buonantony Elena Female Uncertain NaN Spokane Washington 4/14/2020
8334 UCP371 NaN Callison James Male Uncertain NaN Adams Washington 4/14/2020

2177 rows × 10 columns

Force all names to lowercase, then capitalize

In [42]:
# check dataframe
unclaimed_df.head()


Out[42]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

In [43]:
unclaimed_df['Last Name'] = unclaimed_df['Last Name'].str.lower()
unclaimed_df.head()


Out[43]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

In [44]:
unclaimed_df['Last Name'] = unclaimed_df['Last Name'].str.capitalize()
unclaimed_df.head()


Out[44]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

In [45]:
unclaimed_df['First Name'] = unclaimed_df['First Name'].str.lower()
unclaimed_df.head()


Out[45]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 Gray steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 Serquinia decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 Elliott daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 Nielsen selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 Anderson michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

In [46]:
unclaimed_df['First Name'] = unclaimed_df['First Name'].str.capitalize()
unclaimed_df.head()


Out[46]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

Clean Unidentified dataframe

Check for null values, and replace as needed

In [47]:
# check dataframe
unidentified_df.head()


Out[47]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
0 UP51903 3/30/1986 NaN NaN Marbury Autauga Alabama Female White / Caucasian 1/28/2020
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018
3 UP55409 3/26/2000 NaN NaN NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019

In [48]:
## Check if any rows with null value for DBF [NOTE: Leave as NaN]
unidentified_attr_df = unidentified_df.loc[unidentified_df['DBF'].isnull()]
# len(unidentified_attr_df)
unidentified_attr_df


Out[48]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
1621 UP54136 NaN NaN NaN NaN Pima Arizona NaN Uncertain 1/16/2020
3718 UP17837 NaN 65.0 70.0 NaN Orange California Male White / Caucasian 11/1/2018

In [49]:
## Check if any rows with null value for Age From
unidentified_attr_1_df = unidentified_df.loc[unidentified_df['Age From'].isnull()]
# len(unidentified_attr_1_df)
unidentified_attr_1_df


Out[49]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
0 UP51903 3/30/1986 NaN NaN Marbury Autauga Alabama Female White / Caucasian 1/28/2020
3 UP55409 3/26/2000 NaN NaN NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020
34 UP51245 11/29/2017 NaN NaN Huntsville Madison Alabama Male Uncertain 12/27/2019
35 UP11867 12/8/2013 NaN NaN Huntsville Madison Alabama Male White / Caucasian 11/9/2018
36 UP51243 11/29/2017 NaN NaN Huntsville Madison Alabama Female Uncertain 12/27/2019
... ... ... ... ... ... ... ... ... ... ...
13206 UP52045 6/14/2018 NaN NaN Cyclone Wyoming West Virginia Male Uncertain 1/15/2020
13216 UP13695 11/9/1989 NaN NaN Paris Kenosha Wisconsin Male White / Caucasian 4/11/2017
13240 UP11611 6/5/2008 NaN NaN Baraboo Sauk Wisconsin Male Uncertain 11/22/2013
13248 UP7631 7/10/1973 NaN NaN Waukesha Waukesha Wisconsin Male White / Caucasian 11/9/2013
13251 UP58757 12/16/1970 NaN NaN Neenah Winnebago Wisconsin Female White / Caucasian 1/10/2020

1602 rows × 10 columns


In [50]:
# Re-assign missing age from values to be 0
unidentified_df['Age From'] = unidentified_df['Age From'].fillna(0)
unidentified_df.head()


Out[50]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
0 UP51903 3/30/1986 0.0 NaN Marbury Autauga Alabama Female White / Caucasian 1/28/2020
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018
3 UP55409 3/26/2000 0.0 NaN NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019

In [51]:
## Double check re-assigned values
unidentified_agefrom_test_df = unidentified_df.loc[unidentified_df['Age From']==0]
unidentified_agefrom_test_df
# len(unidentified_agefrom_test_df)


Out[51]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
0 UP51903 3/30/1986 0.0 NaN Marbury Autauga Alabama Female White / Caucasian 1/28/2020
3 UP55409 3/26/2000 0.0 NaN NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020
34 UP51245 11/29/2017 0.0 NaN Huntsville Madison Alabama Male Uncertain 12/27/2019
35 UP11867 12/8/2013 0.0 NaN Huntsville Madison Alabama Male White / Caucasian 11/9/2018
36 UP51243 11/29/2017 0.0 NaN Huntsville Madison Alabama Female Uncertain 12/27/2019
... ... ... ... ... ... ... ... ... ... ...
13236 UP13617 11/14/2014 0.0 1.0 West Allis Milwaukee Wisconsin Male Uncertain 4/20/2016
13240 UP11611 6/5/2008 0.0 NaN Baraboo Sauk Wisconsin Male Uncertain 11/22/2013
13248 UP7631 7/10/1973 0.0 NaN Waukesha Waukesha Wisconsin Male White / Caucasian 11/9/2013
13251 UP58757 12/16/1970 0.0 NaN Neenah Winnebago Wisconsin Female White / Caucasian 1/10/2020
13256 UP10781 2/28/1988 0.0 0.0 Cheyenne Laramie Wyoming Male White / Caucasian 1/24/2020

1972 rows × 10 columns


In [52]:
## Check if any rows with null value for Age To
unidentified_attr_2_df = unidentified_df.loc[unidentified_df['Age To'].isnull()]
# len(unidentified_attr_2_df)
unidentified_attr_2_df


Out[52]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
0 UP51903 3/30/1986 0.0 NaN Marbury Autauga Alabama Female White / Caucasian 1/28/2020
3 UP55409 3/26/2000 0.0 NaN NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020
34 UP51245 11/29/2017 0.0 NaN Huntsville Madison Alabama Male Uncertain 12/27/2019
35 UP11867 12/8/2013 0.0 NaN Huntsville Madison Alabama Male White / Caucasian 11/9/2018
36 UP51243 11/29/2017 0.0 NaN Huntsville Madison Alabama Female Uncertain 12/27/2019
... ... ... ... ... ... ... ... ... ... ...
13206 UP52045 6/14/2018 0.0 NaN Cyclone Wyoming West Virginia Male Uncertain 1/15/2020
13216 UP13695 11/9/1989 0.0 NaN Paris Kenosha Wisconsin Male White / Caucasian 4/11/2017
13240 UP11611 6/5/2008 0.0 NaN Baraboo Sauk Wisconsin Male Uncertain 11/22/2013
13248 UP7631 7/10/1973 0.0 NaN Waukesha Waukesha Wisconsin Male White / Caucasian 11/9/2013
13251 UP58757 12/16/1970 0.0 NaN Neenah Winnebago Wisconsin Female White / Caucasian 1/10/2020

1602 rows × 10 columns


In [53]:
# Re-assign missing age to values to be 120
unidentified_df['Age To'] = unidentified_df['Age To'].fillna(120)
unidentified_df.head()


Out[53]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019

In [54]:
## Double check re-assigned values
unidentified_ageto_test_df = unidentified_df.loc[unidentified_df['Age To']==120]
unidentified_ageto_test_df
# len(unidentified_ageto_test_df)


Out[54]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020
34 UP51245 11/29/2017 0.0 120.0 Huntsville Madison Alabama Male Uncertain 12/27/2019
35 UP11867 12/8/2013 0.0 120.0 Huntsville Madison Alabama Male White / Caucasian 11/9/2018
36 UP51243 11/29/2017 0.0 120.0 Huntsville Madison Alabama Female Uncertain 12/27/2019
... ... ... ... ... ... ... ... ... ... ...
13206 UP52045 6/14/2018 0.0 120.0 Cyclone Wyoming West Virginia Male Uncertain 1/15/2020
13216 UP13695 11/9/1989 0.0 120.0 Paris Kenosha Wisconsin Male White / Caucasian 4/11/2017
13240 UP11611 6/5/2008 0.0 120.0 Baraboo Sauk Wisconsin Male Uncertain 11/22/2013
13248 UP7631 7/10/1973 0.0 120.0 Waukesha Waukesha Wisconsin Male White / Caucasian 11/9/2013
13251 UP58757 12/16/1970 0.0 120.0 Neenah Winnebago Wisconsin Female White / Caucasian 1/10/2020

1602 rows × 10 columns


In [55]:
## Check if any rows with null value for sex
unidentified_attr_3_df = unidentified_df.loc[unidentified_df['Sex'].isnull()]
# len(unidentified_attr_3_df)
unidentified_attr_3_df


Out[55]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
1621 UP54136 NaN 0.0 120.0 NaN Pima Arizona NaN Uncertain 1/16/2020

In [56]:
# Re-assign missing sex values to be 'Unknown'
unidentified_df['Sex'] = unidentified_df['Sex'].fillna('Unknown')
unidentified_df.head()


Out[56]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019

In [57]:
## Double check re-assigned values
unidentified_sex_test_df = unidentified_df.loc[unidentified_df['Sex']=='Unknown']
unidentified_sex_test_df
# len(unidentified_sex_test_df)


Out[57]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
1621 UP54136 NaN 0.0 120.0 NaN Pima Arizona Unknown Uncertain 1/16/2020

In [58]:
## Check if any rows with null value for race / ethnicity
unidentified_attr_4_df = unidentified_df.loc[unidentified_df['Race / Ethnicity'].isnull()]
# len(unidentified_attr_4_df)
unidentified_attr_4_df


Out[58]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
369 UP1978 11/10/2001 0.0 0.0 Gila Bend Maricopa Arizona Female NaN 7/26/2018
484 UP2024 12/1/2003 17.0 24.0 NaN Maricopa Arizona Male NaN 6/4/2014
499 UP1938 5/27/1996 22.0 43.0 NaN Maricopa Arizona Male NaN 6/4/2014
500 UP1936 2/27/1996 19.0 35.0 NaN Maricopa Arizona Male NaN 6/4/2014
506 UP1927 12/7/1991 45.0 60.0 NaN Maricopa Arizona Male NaN 4/4/2019
511 UP1914 9/23/1987 25.0 35.0 NaN Maricopa Arizona Male NaN 6/4/2014
4527 UP5903 5/9/1984 0.0 0.0 NaN San Francisco California Male NaN 7/23/2019
4528 UP5874 11/27/1981 0.0 0.0 NaN San Francisco California Male NaN 7/23/2019
4529 UP5841 3/7/1975 0.0 0.0 NaN San Francisco California Male NaN 7/23/2019
4656 UP53055 4/27/1986 0.0 120.0 Porterville Tulare California Male NaN 11/29/2018

In [59]:
# Re-assign missing race / ethnicity values to be 'Uncertain'
unidentified_df['Race / Ethnicity'] = unidentified_df['Race / Ethnicity'].fillna('Uncertain')
unidentified_df.head()


Out[59]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019

In [60]:
# Re-assign 'unsure' race / ethnicity values to be 'Uncertain'
unidentified_df['Race / Ethnicity'] = unidentified_df['Race / Ethnicity'].str.replace('Unsure','Uncertain')
unidentified_df.head()


Out[60]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019

In [61]:
# Re-assign 'other' race / ethnicity values to be 'Uncertain'
unidentified_df['Race / Ethnicity'] = unidentified_df['Race / Ethnicity'].str.replace('Other','Uncertain')
unidentified_df.head()


Out[61]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019

In [62]:
## Double check re-assigned values
unidentified_race_test_df = unidentified_df.loc[unidentified_df['Race / Ethnicity']=='Uncertain']
unidentified_race_test_df
# len(unidentified_race_test_df)


Out[62]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
6 UP5011 7/22/2007 30.0 40.0 Titus Elmore Alabama Female Uncertain 4/13/2020
7 UP15338 4/12/2002 18.0 99.0 Adger Jefferson Alabama Unsure Uncertain 3/18/2020
11 UP14991 4/8/2016 20.0 60.0 Birmingham Jefferson Alabama Male Uncertain 3/18/2020
12 UP13987 12/23/2012 18.0 99.0 Birmingham Jefferson Alabama Male Uncertain 3/18/2020
15 UP14466 6/22/2004 17.0 30.0 Birmingham Jefferson Alabama Male Uncertain 3/18/2020
... ... ... ... ... ... ... ... ... ... ...
13243 UP12012 10/11/1979 20.0 35.0 East Troy Walworth Wisconsin Male Uncertain 7/18/2019
13245 UP7405 11/18/1984 30.0 55.0 Town of Mukwonago Waukesha Wisconsin Female Uncertain 10/11/2019
13246 UP7634 9/28/1975 18.0 99.0 Town of Oconomowoc Waukesha Wisconsin Male Uncertain 1/27/2012
13249 UP7548 4/3/1976 25.0 50.0 Waukesha Waukesha Wisconsin Female Uncertain 10/3/2019
13252 UP12361 7/26/1985 30.0 65.0 Winneconne Winnebago Wisconsin Female Uncertain 10/30/2019

2884 rows × 10 columns

Part 2 - Prep data for state-level GeoJSON with data from all 3 databases

2a: Add in State FIPS column to each database dataframe


In [63]:
# make dictionary of states and state FIPS code
state_dict = dict(zip(state_centroids_df.NAME, state_centroids_df.STATEFP))
# state_dict
# state_dict['Alaska']
len(state_dict)


Out[63]:
55

1/3: add state FIPS codes to missing persons dataframe


In [64]:
missing_df.head()


Out[64]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019
3 MP43187 2/20/2018 Johnson Abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016

In [65]:
# Add new column to dataframe, using the state name field as a key in the state_dict, to pull the correct FIPS code for each row
missing_df['State_FIPS'] = missing_df['State'].map(state_dict)
missing_df.head()


Out[65]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020 1
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015 1
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019 1
3 MP43187 2/20/2018 Johnson Abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020 1
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016 1

In [66]:
# Check unique values in new dataframe field
missing_df['State_FIPS'].unique()


Out[66]:
array([ 1,  2,  4,  5,  6,  8, 69,  9, 10, 11, 12, 13, 66, 15, 16, 17, 18,
       19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
       36, 37, 38, 39, 40, 41, 42, 72, 44, 45, 46, 47, 48, 78, 49, 50, 51,
       53, 54, 55, 56], dtype=int64)

In [67]:
## If any nulls, check to see what is producing null values [NOTE: fixed by making changes to csv fields, as noted where csvs are imported]
mis_test_df = missing_df.loc[missing_df['State_FIPS'].isnull()]
mis_test_df.head()


Out[67]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS

In [68]:
# check missing df
missing_df.head()
# len(missing_df)


Out[68]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020 1
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015 1
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019 1
3 MP43187 2/20/2018 Johnson Abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020 1
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016 1

2/3: add state FIPS codes to unclaimed persons dataframe


In [69]:
unclaimed_df.head()
# len(unclaimed_df)


Out[69]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019

In [70]:
# Add new column to dataframe, using the state name field as a key in the state_dict, to pull the correct FIPS code for each row
unclaimed_df['State_FIPS'] = unclaimed_df['State'].map(state_dict)
unclaimed_df.head()


Out[70]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020 53.0
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020 53.0
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53.0
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53.0
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53.0

In [71]:
# Check unique values in new dataframe field
unclaimed_df['State_FIPS'].unique()


Out[71]:
array([53., 48.,  1., 40., 25., 15., 36., 35., 22.,  6., 45., 12.,  4.,
       13., 34., 54., 26., 16., 37.,  9., 10., 38., 17., 47.,  8., 39.,
       51., 29., 19., 55.,  2., 42.,  5., 21., 32., 28., 18., 33., 23.,
       41., 56., 49., 11., nan])

In [72]:
## If any nulls, check to see what is producing null values [NOTE: cannot be addressed, as these cases do not have a state or county assigned]
unc_test_df = unclaimed_df.loc[unclaimed_df['State_FIPS'].isnull()]
# len(unc_test_df)
unc_test_df


Out[72]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS
6215 UCP5339 12/3/2016 Williams Barbara Female Asian NaN NaN NaN 5/3/2018 NaN
6684 UCP2489 3/26/2015 Lupien Daryl Male Uncertain NaN NaN NaN 8/18/2016 NaN
6713 UCP4001 11/2/2014 Brown David Male White / Caucasian NaN NaN NaN 5/11/2017 NaN
6945 UCP3962 3/22/2010 Gonzalez David Male Hispanic / Latino NaN NaN NaN 5/11/2017 NaN
6978 UCP3937 12/7/2009 Togovnick Bernice Female White / Caucasian NaN NaN NaN 5/11/2017 NaN
7076 UCP3901 1/21/2009 Carney John Male White / Caucasian NaN NaN NaN 5/11/2017 NaN
7132 UCP3689 6/5/2008 Guzman Ralph Male Hispanic / Latino NaN NaN NaN 5/2/2017 NaN
7221 UCP3824 7/2/2007 Vasquez Rafael Male Hispanic / Latino NaN NaN NaN 5/4/2017 NaN
7270 UCP3672 9/22/2006 Barajas Epifanio Male Hispanic / Latino NaN NaN NaN 5/2/2017 NaN
7275 UCP3668 8/5/2006 Huff Paul Male White / Caucasian NaN NaN NaN 5/2/2017 NaN
7277 UCP3661 7/15/2006 Williams Michael Male White / Caucasian NaN NaN NaN 5/2/2017 NaN
7334 UCP3543 3/21/2005 Russell Carlos Male Hispanic / Latino NaN NaN NaN 4/20/2017 NaN
7360 UCP3500 5/5/2004 Knox Michael Male White / Caucasian NaN NaN NaN 4/18/2017 NaN
7366 UCP4032 2/11/2004 Butler Donald Male White / Caucasian NaN NaN NaN 5/16/2017 NaN
7377 UCP3332 10/15/2003 Sanchez Ricardo Male Hispanic / Latino NaN NaN NaN 3/30/2017 NaN
7379 UCP3326 10/9/2003 Shand Steven Male White / Caucasian NaN NaN NaN 3/30/2017 NaN
7380 UCP4497 10/8/2003 Gonzalez enriquez Pedro Male White / Caucasian, Hispanic / Latino NaN NaN NaN 8/28/2017 NaN
7385 UCP3315 9/8/2003 Siguenza Dagoberto Male Hispanic / Latino NaN NaN NaN 3/30/2017 NaN
7410 UCP3252 11/24/2002 Hickey William Male White / Caucasian NaN NaN NaN 3/28/2017 NaN
7451 UCP992 7/30/1999 Pruit Frank Male White / Caucasian NaN NaN NaN 4/14/2020 NaN
8173 UCP771 NaN Garcia Richard Male Uncertain NaN NaN NaN 4/19/2019 NaN

In [73]:
# # change NaN FIPS codes (for cases with no city, county or state) to 99 (none option in state_centroids_v2.csv)
unclaimed_df['State_FIPS'] = unclaimed_df['State_FIPS'].fillna(99)
unclaimed_df['State_FIPS'] = unclaimed_df['State_FIPS'].astype(int)
unclaimed_df.head()


Out[73]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020 53
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020 53
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53

In [74]:
## Double check re-assigned values
unc_test_df2 = unclaimed_df.loc[unclaimed_df['State_FIPS']==99]
unc_test_df2
# len(unc_test_df2)


Out[74]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS
6215 UCP5339 12/3/2016 Williams Barbara Female Asian NaN NaN NaN 5/3/2018 99
6684 UCP2489 3/26/2015 Lupien Daryl Male Uncertain NaN NaN NaN 8/18/2016 99
6713 UCP4001 11/2/2014 Brown David Male White / Caucasian NaN NaN NaN 5/11/2017 99
6945 UCP3962 3/22/2010 Gonzalez David Male Hispanic / Latino NaN NaN NaN 5/11/2017 99
6978 UCP3937 12/7/2009 Togovnick Bernice Female White / Caucasian NaN NaN NaN 5/11/2017 99
7076 UCP3901 1/21/2009 Carney John Male White / Caucasian NaN NaN NaN 5/11/2017 99
7132 UCP3689 6/5/2008 Guzman Ralph Male Hispanic / Latino NaN NaN NaN 5/2/2017 99
7221 UCP3824 7/2/2007 Vasquez Rafael Male Hispanic / Latino NaN NaN NaN 5/4/2017 99
7270 UCP3672 9/22/2006 Barajas Epifanio Male Hispanic / Latino NaN NaN NaN 5/2/2017 99
7275 UCP3668 8/5/2006 Huff Paul Male White / Caucasian NaN NaN NaN 5/2/2017 99
7277 UCP3661 7/15/2006 Williams Michael Male White / Caucasian NaN NaN NaN 5/2/2017 99
7334 UCP3543 3/21/2005 Russell Carlos Male Hispanic / Latino NaN NaN NaN 4/20/2017 99
7360 UCP3500 5/5/2004 Knox Michael Male White / Caucasian NaN NaN NaN 4/18/2017 99
7366 UCP4032 2/11/2004 Butler Donald Male White / Caucasian NaN NaN NaN 5/16/2017 99
7377 UCP3332 10/15/2003 Sanchez Ricardo Male Hispanic / Latino NaN NaN NaN 3/30/2017 99
7379 UCP3326 10/9/2003 Shand Steven Male White / Caucasian NaN NaN NaN 3/30/2017 99
7380 UCP4497 10/8/2003 Gonzalez enriquez Pedro Male White / Caucasian, Hispanic / Latino NaN NaN NaN 8/28/2017 99
7385 UCP3315 9/8/2003 Siguenza Dagoberto Male Hispanic / Latino NaN NaN NaN 3/30/2017 99
7410 UCP3252 11/24/2002 Hickey William Male White / Caucasian NaN NaN NaN 3/28/2017 99
7451 UCP992 7/30/1999 Pruit Frank Male White / Caucasian NaN NaN NaN 4/14/2020 99
8173 UCP771 NaN Garcia Richard Male Uncertain NaN NaN NaN 4/19/2019 99

In [75]:
# check full dataframe
len(unclaimed_df)


Out[75]:
8335

3/3: add state FIPS codes to unidentified persons dataframe


In [76]:
unidentified_df.head()


Out[76]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019

In [77]:
# Add new column to dataframe, using the state name field as a key in the state_dict, to pull the correct FIPS code for each row
unidentified_df['State_FIPS'] = unidentified_df['State'].map(state_dict)
unidentified_df.head()


Out[77]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1

In [78]:
# Check unique values in new dataframe field
unidentified_df['State_FIPS'].unique()


Out[78]:
array([ 1,  2,  4,  5,  6,  8,  9, 10, 11, 12, 13, 66, 15, 16, 17, 18, 19,
       20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
       37, 38, 39, 40, 41, 42, 72, 44, 45, 46, 47, 48, 78, 49, 50, 51, 53,
       54, 55, 56], dtype=int64)

In [79]:
## If any nulls, check to see what is producing null values [NOTE: fixed by making changes to csv fields, as noted where csvs are imported]
uni_test_df = unidentified_df.loc[unidentified_df['State_FIPS'].isnull()]
uni_test_df.head()


Out[79]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS

Part 3: Prep data for county-level JSONs for all 3 databases

Add in State name and County_Key columns to county centroid v2 dataframe


In [80]:
# make dictionary of state FIPS codes and state names
state_FIPS_dict = dict(zip(state_centroids_v2_df.STATEFP, state_centroids_v2_df.NAME))
# state_FIPS_dict
# state_FIPS_dict['Alaska']
len(state_FIPS_dict)


Out[80]:
56

In [81]:
# check county centroids v2 df
county_centroids_v2_df.head()


Out[81]:
OBJECTID STATEFP COUNTYFP COUNTYNS AFFGEOID GEOID NAME LSAD ALAND AWATER ORIG_FID Lon_dd Lat_dd
0 17 1 1 161526 0500000US01001 1001 Autauga 6 1.539602e+09 25706961 17 -86.642735 32.534929
1 2755 1 3 161527 0500000US01003 1003 Baldwin 6 4.117547e+09 1133055836 2759 -87.722569 30.727484
2 18 1 5 161528 0500000US01005 1005 Barbour 6 2.292145e+09 50538698 18 -85.393214 31.869587
3 2337 1 7 161529 0500000US01007 1007 Bibb 6 1.612167e+09 9602089 2340 -87.126480 32.998634
4 1021 1 9 161530 0500000US01009 1009 Blount 6 1.670104e+09 15015423 1021 -86.567385 33.980875

In [82]:
# Add new column to dataframe, using the state name field as a key in the state_dict, to pull the correct FIPS code for each row
county_centroids_v2_df['STATE_NAME'] = county_centroids_v2_df['STATEFP'].map(state_FIPS_dict)
# check dataframe
county_centroids_v2_df.head()
# Check unique values in new dataframe field
# county_centroids_v2_df['STATE_NAME'].unique()


Out[82]:
OBJECTID STATEFP COUNTYFP COUNTYNS AFFGEOID GEOID NAME LSAD ALAND AWATER ORIG_FID Lon_dd Lat_dd STATE_NAME
0 17 1 1 161526 0500000US01001 1001 Autauga 6 1.539602e+09 25706961 17 -86.642735 32.534929 Alabama
1 2755 1 3 161527 0500000US01003 1003 Baldwin 6 4.117547e+09 1133055836 2759 -87.722569 30.727484 Alabama
2 18 1 5 161528 0500000US01005 1005 Barbour 6 2.292145e+09 50538698 18 -85.393214 31.869587 Alabama
3 2337 1 7 161529 0500000US01007 1007 Bibb 6 1.612167e+09 9602089 2340 -87.126480 32.998634 Alabama
4 1021 1 9 161530 0500000US01009 1009 Blount 6 1.670104e+09 15015423 1021 -86.567385 33.980875 Alabama

In [83]:
# sort county centroids by state FIPS
county_centroids_v2_df = county_centroids_v2_df.sort_values(by=['STATEFP'])
county_centroids_v2_df.head()


Out[83]:
OBJECTID STATEFP COUNTYFP COUNTYNS AFFGEOID GEOID NAME LSAD ALAND AWATER ORIG_FID Lon_dd Lat_dd STATE_NAME
0 17 1 1 161526 0500000US01001 1001 Autauga 6 1.539602e+09 25706961 17 -86.642735 32.534929 Alabama
36 1074 1 73 161562 0500000US01073 1073 Jefferson 6 2.878465e+09 32885044 1074 -86.896413 33.554341 Alabama
37 1045 1 75 161563 0500000US01075 1075 Lamar 6 1.566545e+09 1600679 1045 -88.096963 33.779142 Alabama
38 2068 1 77 161564 0500000US01077 1077 Lauderdale 6 1.730146e+09 133608930 2070 -87.654015 34.901414 Alabama
39 3025 1 79 161565 0500000US01079 1079 Lawrence 6 1.788864e+09 68682382 3031 -87.310996 34.521684 Alabama

In [84]:
# Add column with compound field key
county_centroids_v2_df['County_Key'] = county_centroids_v2_df['STATEFP'].astype(str) + "_" + county_centroids_v2_df['NAME']
county_centroids_v2_df.head()


Out[84]:
OBJECTID STATEFP COUNTYFP COUNTYNS AFFGEOID GEOID NAME LSAD ALAND AWATER ORIG_FID Lon_dd Lat_dd STATE_NAME County_Key
0 17 1 1 161526 0500000US01001 1001 Autauga 6 1.539602e+09 25706961 17 -86.642735 32.534929 Alabama 1_Autauga
36 1074 1 73 161562 0500000US01073 1073 Jefferson 6 2.878465e+09 32885044 1074 -86.896413 33.554341 Alabama 1_Jefferson
37 1045 1 75 161563 0500000US01075 1075 Lamar 6 1.566545e+09 1600679 1045 -88.096963 33.779142 Alabama 1_Lamar
38 2068 1 77 161564 0500000US01077 1077 Lauderdale 6 1.730146e+09 133608930 2070 -87.654015 34.901414 Alabama 1_Lauderdale
39 3025 1 79 161565 0500000US01079 1079 Lawrence 6 1.788864e+09 68682382 3031 -87.310996 34.521684 Alabama 1_Lawrence

In [85]:
# check unique values and length
county_key_v2_list = county_centroids_v2_df['County_Key'].unique()
len(county_key_v2_list)


Out[85]:
3284

In [86]:
# make dictionary of counties and county FIPS code (GEOID field)
county_v2_dict = dict(zip(county_centroids_v2_df.County_Key, county_centroids_v2_df.GEOID))
len(county_v2_dict)


Out[86]:
3284

In [87]:
# make dictionary of counties FIPS codes (GEOID field) and county names 
countynames_v2_dict = dict(zip(county_centroids_v2_df.GEOID, county_centroids_v2_df.NAME))
len(countynames_v2_dict)
# countynames_v2_dict


Out[87]:
3284

In [88]:
type(county_centroids_v2_df['GEOID'][0])


Out[88]:
numpy.int64

Add in County_key column to county centroids dataframe


In [89]:
# sort county centroids by state FIPS
county_centroids_df = county_centroids_df.sort_values(by=['STATEFP'])
county_centroids_df.head()


Out[89]:
OBJECTID STATEFP COUNTYFP COUNTYNS AFFGEOID GEOID NAME LSAD ALAND AWATER ORIG_FID Lon_dd Lat_dd
0 17 1 1 161526 0500000US01001 1001 Autauga 6 1.539602e+09 25706961 17 -86.642735 32.534929
36 1074 1 73 161562 0500000US01073 1073 Jefferson 6 2.878465e+09 32885044 1074 -86.896413 33.554341
37 1045 1 75 161563 0500000US01075 1075 Lamar 6 1.566545e+09 1600679 1045 -88.096963 33.779142
38 2068 1 77 161564 0500000US01077 1077 Lauderdale 6 1.730146e+09 133608930 2070 -87.654015 34.901414
39 3025 1 79 161565 0500000US01079 1079 Lawrence 6 1.788864e+09 68682382 3031 -87.310996 34.521684

In [90]:
# Add column with compound field key
county_centroids_df['County_Key'] = county_centroids_df['STATEFP'].astype(str) + "_" + county_centroids_df['NAME']
county_centroids_df.head()


Out[90]:
OBJECTID STATEFP COUNTYFP COUNTYNS AFFGEOID GEOID NAME LSAD ALAND AWATER ORIG_FID Lon_dd Lat_dd County_Key
0 17 1 1 161526 0500000US01001 1001 Autauga 6 1.539602e+09 25706961 17 -86.642735 32.534929 1_Autauga
36 1074 1 73 161562 0500000US01073 1073 Jefferson 6 2.878465e+09 32885044 1074 -86.896413 33.554341 1_Jefferson
37 1045 1 75 161563 0500000US01075 1075 Lamar 6 1.566545e+09 1600679 1045 -88.096963 33.779142 1_Lamar
38 2068 1 77 161564 0500000US01077 1077 Lauderdale 6 1.730146e+09 133608930 2070 -87.654015 34.901414 1_Lauderdale
39 3025 1 79 161565 0500000US01079 1079 Lawrence 6 1.788864e+09 68682382 3031 -87.310996 34.521684 1_Lawrence

In [91]:
# check unique values and length
county_key_list = county_centroids_df['County_Key'].unique()
len(county_key_list)


Out[91]:
3228

In [92]:
# make dictionary of counties and county FIPS code (GEOID field)
county_dict = dict(zip(county_centroids_df.County_Key, county_centroids_df.GEOID))
len(county_dict)


Out[92]:
3228

Add in County FIPS column to missing dataframe

To identify null values, add in County FIPS column to missing dataframe using county_centroids_df

In [93]:
# check missing df
missing_df.head()


Out[93]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020 1
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015 1
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019 1
3 MP43187 2/20/2018 Johnson Abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020 1
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016 1

In [94]:
# Add column with compound field key
missing_df['State_County'] = missing_df['State_FIPS'].astype(str) + "_" + missing_df['County']
missing_df.head()


Out[94]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020 1 1_Autauga
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015 1 1_Autauga
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019 1 1_Baldwin
3 MP43187 2/20/2018 Johnson Abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020 1 1_Baldwin
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016 1 1_Baldwin

In [95]:
# Add new column to dataframe, using the State_County name field as a key in the county_dict, to pull the correct County FIPS code for each row
missing_df['County_FIPS'] = missing_df['State_County'].map(county_dict)
# Check unique values in new dataframe field
missing_df['County_FIPS'].unique()


Out[95]:
array([ 1001.,  1003.,  1005., ..., 56035., 56037., 56039.])

In [96]:
# check null values [NOTE: all ok - no city or county assigned]
missing_county_null_df = missing_df.loc[missing_df['County_FIPS'].isnull()]
# missing_county_null_df.shape
missing_county_null_df


Out[96]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
14181 MP4569 5/5/1974 Colonna aponte John 12 NaN NaN Puerto Rico Male White / Caucasian, Hispanic / Latino 5/15/2018 72 NaN NaN
14182 MP54374 12/15/1984 Cruz Marcos 2 NaN NaN Puerto Rico Male Black / African American 3/12/2020 72 NaN NaN
14183 MP4568 5/4/1974 Colonna aponte Giannina 11 NaN NaN Puerto Rico Female White / Caucasian, Hispanic / Latino 4/25/2018 72 NaN NaN

In [97]:
# As needed, export nulls to address [NOTE: all that can have been addressed]
# missing_county_null_df.to_csv('missing_county_nulls.csv', encoding='Windows-1252')

In [98]:
# check missing_df
missing_df.head()


Out[98]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020 1 1_Autauga 1001.0
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015 1 1_Autauga 1001.0
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019 1 1_Baldwin 1003.0
3 MP43187 2/20/2018 Johnson Abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020 1 1_Baldwin 1003.0
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016 1 1_Baldwin 1003.0
Replace null state values with 'None' and null county values with 'None', then re-write county_FIPS column using county_centroids_v2_dataframe

In [99]:
## Check if any rows with null value for 'State'
mis_state_test_df = missing_df.loc[missing_df['State'].isnull()]
# len(mis_state_test_df)
mis_state_test_df


Out[99]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS

In [100]:
## Check if any rows with null value for 'City' and County'
mis_county_test_df = missing_df.loc[missing_df['County'].isnull()]
# len(mis_county_test_df)
mis_county_test_df


Out[100]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
14181 MP4569 5/5/1974 Colonna aponte John 12 NaN NaN Puerto Rico Male White / Caucasian, Hispanic / Latino 5/15/2018 72 NaN NaN
14182 MP54374 12/15/1984 Cruz Marcos 2 NaN NaN Puerto Rico Male Black / African American 3/12/2020 72 NaN NaN
14183 MP4568 5/4/1974 Colonna aponte Giannina 11 NaN NaN Puerto Rico Female White / Caucasian, Hispanic / Latino 4/25/2018 72 NaN NaN

In [101]:
# # change NaN County name (for cases with no city or county) to 'None'
missing_df['County'] = missing_df['County'].fillna('None')
missing_df.head()


Out[101]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020 1 1_Autauga 1001.0
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015 1 1_Autauga 1001.0
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019 1 1_Baldwin 1003.0
3 MP43187 2/20/2018 Johnson Abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020 1 1_Baldwin 1003.0
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016 1 1_Baldwin 1003.0

In [102]:
## Double check re-assigned values
mis_county_test_2_df = missing_df.loc[missing_df['County']=='None']
mis_county_test_2_df
# len(mis_county_test_2_df)


Out[102]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
14181 MP4569 5/5/1974 Colonna aponte John 12 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 5/15/2018 72 NaN NaN
14182 MP54374 12/15/1984 Cruz Marcos 2 NaN None Puerto Rico Male Black / African American 3/12/2020 72 NaN NaN
14183 MP4568 5/4/1974 Colonna aponte Giannina 11 NaN None Puerto Rico Female White / Caucasian, Hispanic / Latino 4/25/2018 72 NaN NaN

In [103]:
# Re-Add column with compound field key
missing_df['State_County'] = missing_df['State_FIPS'].astype(str) + "_" + missing_df['County']
missing_df.head()


Out[103]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
0 MP2341 5/8/1999 Reynolds James 28 Opp Autauga Alabama Male Black / African American 2/14/2020 1 1_Autauga 1001.0
1 MP8522 1/15/2010 Walker Jeremy 32 Prattville Autauga Alabama Male White / Caucasian 7/27/2015 1 1_Autauga 1001.0
2 MP50314 5/16/2018 Keszthelyi Steve 79 Elberta Baldwin Alabama Male White / Caucasian 11/13/2019 1 1_Baldwin 1003.0
3 MP43187 2/20/2018 Johnson Abram 60 fairhope Baldwin Alabama Male White / Caucasian 2/13/2020 1 1_Baldwin 1003.0
4 MP23019 11/5/2012 Shroyer James 40 Fairhope Baldwin Alabama Male White / Caucasian 2/3/2016 1 1_Baldwin 1003.0

In [104]:
## Double check re-assigned values
mis_county_test_3_df = missing_df.loc[missing_df['County']=='None']
mis_county_test_3_df
# len(mis_county_test_3_df)


Out[104]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
14181 MP4569 5/5/1974 Colonna aponte John 12 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 5/15/2018 72 72_None NaN
14182 MP54374 12/15/1984 Cruz Marcos 2 NaN None Puerto Rico Male Black / African American 3/12/2020 72 72_None NaN
14183 MP4568 5/4/1974 Colonna aponte Giannina 11 NaN None Puerto Rico Female White / Caucasian, Hispanic / Latino 4/25/2018 72 72_None NaN

In [105]:
# Re-add County FIPS column to dataframe, using the State_County name field as a key in the county_v2_dict, to pull the correct County FIPS code for each row
missing_df['County_FIPS'] = missing_df['State_County'].map(county_v2_dict)
# Check unique values in new dataframe field
missing_df['County_FIPS'].unique()


Out[105]:
array([ 1001,  1003,  1005, ..., 56035, 56037, 56039], dtype=int64)

In [106]:
# check null values to make sure none are left [Note - all gone!]
missing_county_null_v2_df = missing_df.loc[missing_df['County_FIPS'].isnull()]
# missing_county_null_v2_df.shape
missing_county_null_v2_df


Out[106]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS

In [107]:
## Double check re-assigned values
mis_county_test_4_df = missing_df.loc[missing_df['County']=='None']
mis_county_test_4_df
# len(mis_county_test_4_df)


Out[107]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
14181 MP4569 5/5/1974 Colonna aponte John 12 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 5/15/2018 72 72_None 72999
14182 MP54374 12/15/1984 Cruz Marcos 2 NaN None Puerto Rico Male Black / African American 3/12/2020 72 72_None 72999
14183 MP4568 5/4/1974 Colonna aponte Giannina 11 NaN None Puerto Rico Female White / Caucasian, Hispanic / Latino 4/25/2018 72 72_None 72999

Add in County FIPS column to unclaimed dataframe

To identify null values, add in County FIPS column to unclaimed dataframe using county_centroids_df

In [108]:
# check unclaimed df
unclaimed_df.head()


Out[108]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020 53
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020 53
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53

In [109]:
# Add column with compound field key
unclaimed_df['State_County'] = unclaimed_df['State_FIPS'].astype(str) + "_" + unclaimed_df['County']
unclaimed_df.head()


Out[109]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020 53 53_Grays Harbor
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020 53 53_Grays Harbor
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor

In [110]:
# Add new column to dataframe, using the state name field as a key in the state_dict, to pull the correct FIPS code for each row
unclaimed_df['County_FIPS'] = unclaimed_df['State_County'].map(county_dict)
# Check unique values in new dataframe field
unclaimed_df['County_FIPS'].unique()


Out[110]:
array([53027., 48215.,  1073., 40115., 25013., 15003., 53063., 36001.,
       35059., 22079., 48141., 25009., 53057.,  6059., 45007., 12075.,
        4019., 53061.,  6037., 36081.,  1115., 36061., 13121., 34001.,
       25005., 25001., 53033., 25027., 54027.,  4013., 48167.,  6071.,
       40147., 26025., 48201., 16013., 25017., 37101.,  9003., 10005.,
       12087., 38001., 16001., 17197., 53053.,  6073., 25025., 53035.,
       47187., 47001.,  9001.,  9005., 40037., 25023., 40143., 36005.,
       25021., 36047., 48473., 53077.,  8087.,  6025., 39099., 12071.,
       51175., 17001.,  4021.,  8035., 54025., 54039., 45019., 37119.,
       47065., 17031., 40097., 39035., 12009., 29019., 48339., 19155.,
       37077., 47035., 55127.,  2013.,  8031., 19153., 26163., 40073.,
       42029.,  9007., 26065., 25015., 40109., 40017., 17043.,  6023.,
        5143., 53049., 40131., 34025., 26077., 35031., 54099., 21209.,
       47157., 47179., 47105., 25011.,  9011.,  6047., 51650.,  6093.,
       45031., 22051.,  6001., 54065., 47093., 32003., 42011., 54011.,
       12021., 26067., 34029., 28049., 29051., 45001., 34013., 18111.,
       18067., 12051., 47013., 22019., 35013., 33009., 32027., 47173.,
       55025., 53073.,  5035., 47009., 55057., 40121.,  9009., 12086.,
       12001.,  4015., 36105.,  6065., 54001., 17063., 40135., 26121.,
       40101., 16027., 42091., 22069., 37047.,  4007., 34023., 54029.,
       51700., 51710., 40027., 25003., 36103., 53029., 23011., 12083.,
       40107., 54107., 34031., 42101., 42001., 45045., 47155., 47007.,
       41051., 23005., 53075., 32031., 32005., 55085., 56013., 17201.,
       35035., 33005., 49035.,  6083.,  6075., 12107., 33015., 48229.,
       53001., 29189., 12109., 36085.,  9015., 39081., 40081., 40021.,
       34021.,  6099., 48469., 40035., 51810., 11001., 54069., 36119.,
          nan, 40041., 40145., 41005., 32510.,  6067., 22095., 54003.,
       28123., 12057., 18013.])

In [111]:
# check null values
unclaimed_county_null_df = unclaimed_df.loc[unclaimed_df['County_FIPS'].isnull()]
# unclaimed_county_null_df.shape
unclaimed_county_null_df


Out[111]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
5459 UCP5438 4/30/2018 Flores Victor Male Black / African American NaN NaN New York 5/14/2019 36 NaN NaN
5460 UCP5440 4/22/2018 Browne Edward Male Hispanic / Latino NaN NaN New York 5/27/2019 36 NaN NaN
5461 UCP5297 4/15/2018 Davis Thelma Female Black / African American NaN NaN New York 5/20/2019 36 NaN NaN
5462 UCP5296 4/14/2018 Fasulo Timothy Male White / Caucasian NaN NaN New York 4/25/2019 36 NaN NaN
5463 UCP5439 4/14/2018 Reyes Nivia Female Uncertain NaN NaN New York 5/27/2019 36 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ...
7468 UCP990 11/6/1997 Pope Leon Male White / Caucasian NaN NaN Washington 4/14/2020 53 NaN NaN
7487 UCP1999 10/22/1991 Robles Salvador Male Uncertain NaN NaN Tennessee 1/10/2020 47 NaN NaN
7489 UCP4522 10/18/1990 Way Kenneth Male Black / African American NaN NaN New York 5/11/2019 36 NaN NaN
7494 UCP1548 6/17/1973 Seah Tee kee Male Asian NaN NaN Nevada 5/28/2019 32 NaN NaN
8173 UCP771 NaN Garcia Richard Male Uncertain NaN NaN NaN 4/19/2019 99 NaN NaN

1241 rows × 13 columns


In [112]:
# As needed, export nulls to address [NOTE: all have been addressed. 1241 cases have no county]
# unclaimed_county_null_df.to_csv('unclaimed_county_nulls.csv', encoding='Windows-1252')

In [113]:
# check unclaimed_df
unclaimed_df.head()


Out[113]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020 53 53_Grays Harbor 53027.0
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020 53 53_Grays Harbor 53027.0
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor 53027.0
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor 53027.0
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor 53027.0
Replace null state values with 'None' and null county values with 'None', then re-write county_FIPS column using county_centroids_v2_dataframe

In [114]:
## Check if any rows with null value for 'State'
unc_state_test_df = unclaimed_df.loc[unclaimed_df['State'].isnull()]
# len(unc_state_test_df)
unc_state_test_df


Out[114]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
6215 UCP5339 12/3/2016 Williams Barbara Female Asian NaN NaN NaN 5/3/2018 99 NaN NaN
6684 UCP2489 3/26/2015 Lupien Daryl Male Uncertain NaN NaN NaN 8/18/2016 99 NaN NaN
6713 UCP4001 11/2/2014 Brown David Male White / Caucasian NaN NaN NaN 5/11/2017 99 NaN NaN
6945 UCP3962 3/22/2010 Gonzalez David Male Hispanic / Latino NaN NaN NaN 5/11/2017 99 NaN NaN
6978 UCP3937 12/7/2009 Togovnick Bernice Female White / Caucasian NaN NaN NaN 5/11/2017 99 NaN NaN
7076 UCP3901 1/21/2009 Carney John Male White / Caucasian NaN NaN NaN 5/11/2017 99 NaN NaN
7132 UCP3689 6/5/2008 Guzman Ralph Male Hispanic / Latino NaN NaN NaN 5/2/2017 99 NaN NaN
7221 UCP3824 7/2/2007 Vasquez Rafael Male Hispanic / Latino NaN NaN NaN 5/4/2017 99 NaN NaN
7270 UCP3672 9/22/2006 Barajas Epifanio Male Hispanic / Latino NaN NaN NaN 5/2/2017 99 NaN NaN
7275 UCP3668 8/5/2006 Huff Paul Male White / Caucasian NaN NaN NaN 5/2/2017 99 NaN NaN
7277 UCP3661 7/15/2006 Williams Michael Male White / Caucasian NaN NaN NaN 5/2/2017 99 NaN NaN
7334 UCP3543 3/21/2005 Russell Carlos Male Hispanic / Latino NaN NaN NaN 4/20/2017 99 NaN NaN
7360 UCP3500 5/5/2004 Knox Michael Male White / Caucasian NaN NaN NaN 4/18/2017 99 NaN NaN
7366 UCP4032 2/11/2004 Butler Donald Male White / Caucasian NaN NaN NaN 5/16/2017 99 NaN NaN
7377 UCP3332 10/15/2003 Sanchez Ricardo Male Hispanic / Latino NaN NaN NaN 3/30/2017 99 NaN NaN
7379 UCP3326 10/9/2003 Shand Steven Male White / Caucasian NaN NaN NaN 3/30/2017 99 NaN NaN
7380 UCP4497 10/8/2003 Gonzalez enriquez Pedro Male White / Caucasian, Hispanic / Latino NaN NaN NaN 8/28/2017 99 NaN NaN
7385 UCP3315 9/8/2003 Siguenza Dagoberto Male Hispanic / Latino NaN NaN NaN 3/30/2017 99 NaN NaN
7410 UCP3252 11/24/2002 Hickey William Male White / Caucasian NaN NaN NaN 3/28/2017 99 NaN NaN
7451 UCP992 7/30/1999 Pruit Frank Male White / Caucasian NaN NaN NaN 4/14/2020 99 NaN NaN
8173 UCP771 NaN Garcia Richard Male Uncertain NaN NaN NaN 4/19/2019 99 NaN NaN

In [115]:
# # change NaN State name (for cases with no city or county or state) to 'None'
unclaimed_df['State'] = unclaimed_df['State'].fillna('None')
unclaimed_df.head()


Out[115]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020 53 53_Grays Harbor 53027.0
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020 53 53_Grays Harbor 53027.0
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor 53027.0
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor 53027.0
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor 53027.0

In [116]:
## Double check re-assigned values
unc_state_test_2_df = unclaimed_df.loc[unclaimed_df['State']=='None']
unc_state_test_2_df
# len(unc_state_test_2_df)


Out[116]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
6215 UCP5339 12/3/2016 Williams Barbara Female Asian NaN NaN None 5/3/2018 99 NaN NaN
6684 UCP2489 3/26/2015 Lupien Daryl Male Uncertain NaN NaN None 8/18/2016 99 NaN NaN
6713 UCP4001 11/2/2014 Brown David Male White / Caucasian NaN NaN None 5/11/2017 99 NaN NaN
6945 UCP3962 3/22/2010 Gonzalez David Male Hispanic / Latino NaN NaN None 5/11/2017 99 NaN NaN
6978 UCP3937 12/7/2009 Togovnick Bernice Female White / Caucasian NaN NaN None 5/11/2017 99 NaN NaN
7076 UCP3901 1/21/2009 Carney John Male White / Caucasian NaN NaN None 5/11/2017 99 NaN NaN
7132 UCP3689 6/5/2008 Guzman Ralph Male Hispanic / Latino NaN NaN None 5/2/2017 99 NaN NaN
7221 UCP3824 7/2/2007 Vasquez Rafael Male Hispanic / Latino NaN NaN None 5/4/2017 99 NaN NaN
7270 UCP3672 9/22/2006 Barajas Epifanio Male Hispanic / Latino NaN NaN None 5/2/2017 99 NaN NaN
7275 UCP3668 8/5/2006 Huff Paul Male White / Caucasian NaN NaN None 5/2/2017 99 NaN NaN
7277 UCP3661 7/15/2006 Williams Michael Male White / Caucasian NaN NaN None 5/2/2017 99 NaN NaN
7334 UCP3543 3/21/2005 Russell Carlos Male Hispanic / Latino NaN NaN None 4/20/2017 99 NaN NaN
7360 UCP3500 5/5/2004 Knox Michael Male White / Caucasian NaN NaN None 4/18/2017 99 NaN NaN
7366 UCP4032 2/11/2004 Butler Donald Male White / Caucasian NaN NaN None 5/16/2017 99 NaN NaN
7377 UCP3332 10/15/2003 Sanchez Ricardo Male Hispanic / Latino NaN NaN None 3/30/2017 99 NaN NaN
7379 UCP3326 10/9/2003 Shand Steven Male White / Caucasian NaN NaN None 3/30/2017 99 NaN NaN
7380 UCP4497 10/8/2003 Gonzalez enriquez Pedro Male White / Caucasian, Hispanic / Latino NaN NaN None 8/28/2017 99 NaN NaN
7385 UCP3315 9/8/2003 Siguenza Dagoberto Male Hispanic / Latino NaN NaN None 3/30/2017 99 NaN NaN
7410 UCP3252 11/24/2002 Hickey William Male White / Caucasian NaN NaN None 3/28/2017 99 NaN NaN
7451 UCP992 7/30/1999 Pruit Frank Male White / Caucasian NaN NaN None 4/14/2020 99 NaN NaN
8173 UCP771 NaN Garcia Richard Male Uncertain NaN NaN None 4/19/2019 99 NaN NaN

In [117]:
## Check if any rows with null value for 'City' and County'
unc_county_test_df = unclaimed_df.loc[unclaimed_df['County'].isnull()]
# len(unc_county_test_df)
unc_county_test_df


Out[117]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
5459 UCP5438 4/30/2018 Flores Victor Male Black / African American NaN NaN New York 5/14/2019 36 NaN NaN
5460 UCP5440 4/22/2018 Browne Edward Male Hispanic / Latino NaN NaN New York 5/27/2019 36 NaN NaN
5461 UCP5297 4/15/2018 Davis Thelma Female Black / African American NaN NaN New York 5/20/2019 36 NaN NaN
5462 UCP5296 4/14/2018 Fasulo Timothy Male White / Caucasian NaN NaN New York 4/25/2019 36 NaN NaN
5463 UCP5439 4/14/2018 Reyes Nivia Female Uncertain NaN NaN New York 5/27/2019 36 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ...
7468 UCP990 11/6/1997 Pope Leon Male White / Caucasian NaN NaN Washington 4/14/2020 53 NaN NaN
7487 UCP1999 10/22/1991 Robles Salvador Male Uncertain NaN NaN Tennessee 1/10/2020 47 NaN NaN
7489 UCP4522 10/18/1990 Way Kenneth Male Black / African American NaN NaN New York 5/11/2019 36 NaN NaN
7494 UCP1548 6/17/1973 Seah Tee kee Male Asian NaN NaN Nevada 5/28/2019 32 NaN NaN
8173 UCP771 NaN Garcia Richard Male Uncertain NaN NaN None 4/19/2019 99 NaN NaN

1241 rows × 13 columns


In [118]:
# # change NaN County name (for cases with no city or county) to 'None'
unclaimed_df['County'] = unclaimed_df['County'].fillna('None')
unclaimed_df.head()


Out[118]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020 53 53_Grays Harbor 53027.0
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020 53 53_Grays Harbor 53027.0
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor 53027.0
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor 53027.0
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor 53027.0

In [119]:
## Double check re-assigned values
unc_county_test_2_df = unclaimed_df.loc[unclaimed_df['County']=='None']
unc_county_test_2_df
# len(unc_county_test_2_df)


Out[119]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
5459 UCP5438 4/30/2018 Flores Victor Male Black / African American NaN None New York 5/14/2019 36 NaN NaN
5460 UCP5440 4/22/2018 Browne Edward Male Hispanic / Latino NaN None New York 5/27/2019 36 NaN NaN
5461 UCP5297 4/15/2018 Davis Thelma Female Black / African American NaN None New York 5/20/2019 36 NaN NaN
5462 UCP5296 4/14/2018 Fasulo Timothy Male White / Caucasian NaN None New York 4/25/2019 36 NaN NaN
5463 UCP5439 4/14/2018 Reyes Nivia Female Uncertain NaN None New York 5/27/2019 36 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ...
7468 UCP990 11/6/1997 Pope Leon Male White / Caucasian NaN None Washington 4/14/2020 53 NaN NaN
7487 UCP1999 10/22/1991 Robles Salvador Male Uncertain NaN None Tennessee 1/10/2020 47 NaN NaN
7489 UCP4522 10/18/1990 Way Kenneth Male Black / African American NaN None New York 5/11/2019 36 NaN NaN
7494 UCP1548 6/17/1973 Seah Tee kee Male Asian NaN None Nevada 5/28/2019 32 NaN NaN
8173 UCP771 NaN Garcia Richard Male Uncertain NaN None None 4/19/2019 99 NaN NaN

1241 rows × 13 columns


In [120]:
# Re-Add column with compound field key
unclaimed_df['State_County'] = unclaimed_df['State_FIPS'].astype(str) + "_" + unclaimed_df['County']
unclaimed_df.head()


Out[120]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
0 UCP64623 12/6/2019 Gray Steven Male White / Caucasian Aberdeen Grays Harbor Washington 1/24/2020 53 53_Grays Harbor 53027.0
1 UCP68260 11/17/2019 Serquinia Decca Female White / Caucasian Aberdeen Grays Harbor Washington 4/17/2020 53 53_Grays Harbor 53027.0
2 UCP58281 1/20/2019 Elliott Daniel Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor 53027.0
3 UCP58282 8/4/2018 Nielsen Selma Female White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor 53027.0
4 UCP58460 4/22/2018 Anderson Michael Male White / Caucasian Aberdeen Grays Harbor Washington 12/27/2019 53 53_Grays Harbor 53027.0

In [121]:
## Double check re-assigned values
unc_county_test_3_df = unclaimed_df.loc[unclaimed_df['County']=='None']
unc_county_test_3_df
# len(unc_county_test_3_df)


Out[121]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
5459 UCP5438 4/30/2018 Flores Victor Male Black / African American NaN None New York 5/14/2019 36 36_None NaN
5460 UCP5440 4/22/2018 Browne Edward Male Hispanic / Latino NaN None New York 5/27/2019 36 36_None NaN
5461 UCP5297 4/15/2018 Davis Thelma Female Black / African American NaN None New York 5/20/2019 36 36_None NaN
5462 UCP5296 4/14/2018 Fasulo Timothy Male White / Caucasian NaN None New York 4/25/2019 36 36_None NaN
5463 UCP5439 4/14/2018 Reyes Nivia Female Uncertain NaN None New York 5/27/2019 36 36_None NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ...
7468 UCP990 11/6/1997 Pope Leon Male White / Caucasian NaN None Washington 4/14/2020 53 53_None NaN
7487 UCP1999 10/22/1991 Robles Salvador Male Uncertain NaN None Tennessee 1/10/2020 47 47_None NaN
7489 UCP4522 10/18/1990 Way Kenneth Male Black / African American NaN None New York 5/11/2019 36 36_None NaN
7494 UCP1548 6/17/1973 Seah Tee kee Male Asian NaN None Nevada 5/28/2019 32 32_None NaN
8173 UCP771 NaN Garcia Richard Male Uncertain NaN None None 4/19/2019 99 99_None NaN

1241 rows × 13 columns


In [122]:
# Re-add County FIPS column to dataframe, using the State_County name field as a key in the county_v2_dict, to pull the correct County FIPS code for each row
unclaimed_df['County_FIPS'] = unclaimed_df['State_County'].map(county_v2_dict)
# Check unique values in new dataframe field
unclaimed_df['County_FIPS'].unique()


Out[122]:
array([53027, 48215,  1073, 40115, 25013, 15003, 53063, 36001, 35059,
       22079, 48141, 25009, 53057,  6059, 45007, 12075,  4019, 53061,
        6037, 36081,  1115, 36061, 13121, 34001, 25005, 25001, 53033,
       25027, 54027,  4013, 48167,  6071, 40147, 26025, 48201, 16013,
       25017, 37101,  9003, 10005, 12087, 38001, 16001, 17197, 53053,
        6073, 25025, 53035, 47187, 47001,  9001,  9005, 40037, 25023,
       40143, 36005, 25021, 36047, 48473, 53077,  8087,  6025, 39099,
       12071, 51175, 17001,  4021,  8035, 54025, 54039, 45019, 37119,
       47065, 17031, 40097, 39035, 12009, 29019, 48339, 19155, 37077,
       47035, 55127,  2013,  8031, 19153, 26163, 40073, 42029,  9007,
       26065, 25015, 40109, 40017, 17043,  6023,  5143, 53049, 40131,
       34025, 26077, 35031, 54099, 21209, 47157, 47179, 47105, 25011,
        9011,  6047, 51650,  6093, 45031, 22051,  6001, 54065, 47093,
       32003, 42011, 54011, 12021, 26067, 34029, 28049, 29051, 45001,
       34013, 18111, 18067, 12051, 47013, 22019, 35013, 33009, 32027,
       47173, 55025, 53073,  5035, 47009, 55057, 40121,  9009, 12086,
       12001,  4015, 36105,  6065, 54001, 17063, 40135, 26121, 40101,
       16027, 42091, 22069, 37047,  4007, 34023, 54029, 51700, 51710,
       40027, 25003, 36103, 53029, 23011, 12083, 40107, 54107, 34031,
       42101, 42001, 45045, 47155, 47007, 41051, 23005, 53075, 32031,
       32005, 55085, 56013, 17201, 35035, 33005, 49035,  6083,  6075,
       12107, 33015, 48229, 53001, 29189, 12109, 36085,  9015, 39081,
       40081, 40021, 34021,  6099, 48469, 40035, 51810, 11001, 54069,
       36119, 36999, 40041, 17999, 40999, 42999, 40145, 99999, 49999,
        6999, 32999, 41005, 25999, 32510, 53999, 45999,  6067, 22095,
       47999, 54003, 28123, 12057, 18013], dtype=int64)

In [123]:
# check null values to make sure none are left [Note - all gone!]
unclaimed_county_null_v2_df = unclaimed_df.loc[unclaimed_df['County_FIPS'].isnull()]
# unclaimed_county_null_v2_df.shape
unclaimed_county_null_v2_df


Out[123]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS

In [124]:
## Double check re-assigned values
unc_county_test_4_df = unclaimed_df.loc[unclaimed_df['County']=='None']
unc_county_test_4_df
# len(unc_county_test_4_df)


Out[124]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
5459 UCP5438 4/30/2018 Flores Victor Male Black / African American NaN None New York 5/14/2019 36 36_None 36999
5460 UCP5440 4/22/2018 Browne Edward Male Hispanic / Latino NaN None New York 5/27/2019 36 36_None 36999
5461 UCP5297 4/15/2018 Davis Thelma Female Black / African American NaN None New York 5/20/2019 36 36_None 36999
5462 UCP5296 4/14/2018 Fasulo Timothy Male White / Caucasian NaN None New York 4/25/2019 36 36_None 36999
5463 UCP5439 4/14/2018 Reyes Nivia Female Uncertain NaN None New York 5/27/2019 36 36_None 36999
... ... ... ... ... ... ... ... ... ... ... ... ... ...
7468 UCP990 11/6/1997 Pope Leon Male White / Caucasian NaN None Washington 4/14/2020 53 53_None 53999
7487 UCP1999 10/22/1991 Robles Salvador Male Uncertain NaN None Tennessee 1/10/2020 47 47_None 47999
7489 UCP4522 10/18/1990 Way Kenneth Male Black / African American NaN None New York 5/11/2019 36 36_None 36999
7494 UCP1548 6/17/1973 Seah Tee kee Male Asian NaN None Nevada 5/28/2019 32 32_None 32999
8173 UCP771 NaN Garcia Richard Male Uncertain NaN None None 4/19/2019 99 99_None 99999

1241 rows × 13 columns

Add in County FIPS column to unidentified dataframe

To identify null values, add in County FIPS column to unidentified dataframe using county_centroids_df

In [125]:
# check unidentified df
unidentified_df.head()


Out[125]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1

In [126]:
# Add column with compound field key
unidentified_df['State_County'] = unidentified_df['State_FIPS'].astype(str) + "_" + unidentified_df['County']
unidentified_df.head()


Out[126]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1 1_Autauga
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1 1_Autauga
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1 1_Baldwin
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1 1_Baldwin
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1 1_Bibb

In [127]:
# Add new column to dataframe, using the state name field as a key in the state_dict, to pull the correct FIPS code for each row
unidentified_df['County_FIPS'] = unidentified_df['State_County'].map(county_dict)
# Check unique values in new dataframe field
unidentified_df['County_FIPS'].unique()


Out[127]:
array([ 1001.,  1003.,  1007., ..., 56021., 56033., 56037.])

In [128]:
# check null values
unidentified_county_null_df = unidentified_df.loc[unidentified_df['County_FIPS'].isnull()]
# unidentified_county_null_df.shape
# len(unidentified_county_null_df)
unidentified_county_null_df


Out[128]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
55 UP14028 12/21/1991 18.0 25.0 NaN NaN Alabama Male White / Caucasian 3/31/2017 1 NaN NaN
109 UP13395 9/20/2004 0.0 120.0 NaN NaN Alaska Male Uncertain 4/14/2020 2 NaN NaN
110 UP7281 4/30/2001 20.0 30.0 NaN NaN Alaska Male White / Caucasian 4/14/2020 2 NaN NaN
111 UP13575 9/11/1997 0.0 120.0 NaN NaN Alaska Male Uncertain 7/2/2018 2 NaN NaN
6392 UP4846 4/14/1988 37.0 52.0 NaN NaN Indiana Female White / Caucasian 6/3/2017 18 NaN NaN
7676 UP5018 4/19/1996 49.0 59.0 NaN NaN Missouri Female Black / African American 10/23/2018 29 NaN NaN
8536 UP17664 1/29/2018 0.0 120.0 NaN NaN New Mexico Male Uncertain 1/21/2020 35 NaN NaN
8540 UP16690 5/3/2017 0.0 120.0 NaN NaN New Mexico Unsure Uncertain 2/8/2020 35 NaN NaN
8541 UP5578 3/26/2003 50.0 60.0 NaN NaN New Mexico Female Black / African American 10/24/2018 35 NaN NaN
10966 UP56112 10/10/2017 0.0 120.0 NaN NaN Puerto Rico Male Uncertain 2/10/2020 72 NaN NaN
10967 UP17155 12/3/2016 10.0 60.0 NaN NaN Puerto Rico Male Black / African American, Hispanic / Latino 6/28/2018 72 NaN NaN
10968 UP17158 10/27/2015 18.0 50.0 NaN NaN Puerto Rico Male Black / African American, Hispanic / Latino 10/26/2017 72 NaN NaN
10969 UP17311 2/22/2015 0.0 120.0 NaN NaN Puerto Rico Male White / Caucasian, Hispanic / Latino 8/22/2018 72 NaN NaN
10970 UP15706 11/9/2013 20.0 30.0 NaN NaN Puerto Rico Male Black / African American, Hispanic / Latino 8/22/2018 72 NaN NaN
10971 UP10578 9/1/2012 45.0 65.0 NaN NaN Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 NaN NaN
10972 UP9403 9/3/2011 20.0 40.0 NaN NaN Puerto Rico Male Hispanic / Latino, Uncertain 4/4/2018 72 NaN NaN
10973 UP8896 1/11/2011 45.0 80.0 NaN NaN Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 NaN NaN
10974 UP8562 10/16/2010 30.0 50.0 NaN NaN Puerto Rico Male Black / African American, Hispanic / Latino 4/4/2018 72 NaN NaN
10975 UP8926 9/18/2010 15.0 30.0 NaN NaN Puerto Rico Male Black / African American, Hispanic / Latino 4/4/2018 72 NaN NaN
10976 UP7790 7/22/2010 18.0 99.0 NaN NaN Puerto Rico Male White / Caucasian 4/4/2018 72 NaN NaN
10977 UP8118 4/30/2010 18.0 99.0 NaN NaN Puerto Rico Male Uncertain 4/4/2018 72 NaN NaN
10978 UP8081 1/27/2010 18.0 99.0 NaN NaN Puerto Rico Male Hispanic / Latino, Uncertain 4/4/2018 72 NaN NaN
10979 UP6690 12/23/2009 60.0 90.0 NaN NaN Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 NaN NaN
10980 UP7723 11/27/2009 18.0 99.0 NaN NaN Puerto Rico Male Uncertain 4/4/2018 72 NaN NaN
10981 UP56111 1/1/2018 0.0 120.0 NaN NaN Puerto Rico Unsure Uncertain 2/3/2020 72 NaN NaN
10982 UP56466 1/1/2017 40.0 60.0 NaN NaN Puerto Rico Female Uncertain 4/2/2020 72 NaN NaN
10983 UP55774 1/1/2011 0.0 120.0 NaN NaN Puerto Rico Unsure Uncertain 2/10/2020 72 NaN NaN
12828 UP17628 7/11/2016 1.0 99.0 NaN NaN United States Virgin Islands Unsure Uncertain 11/8/2019 78 NaN NaN

In [129]:
# As needed, export nulls to address [NOTE - all have been addressed - 28 remain with no city or county]
# unidentified_county_null_df.to_csv('unidentified_county_nulls.csv', encoding='Windows-1252')

In [130]:
# check unclaimed_df
unidentified_df.head()


Out[130]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1 1_Autauga 1001.0
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1 1_Autauga 1001.0
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1 1_Baldwin 1003.0
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1 1_Baldwin 1003.0
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1 1_Bibb 1007.0
Replace null state values with 'None' and null county values with 'None', then re-write county_FIPS column using county_centroids_v2_dataframe

In [131]:
## Check if any rows with null value for 'State'
uni_state_test_df = unidentified_df.loc[unidentified_df['State'].isnull()]
# len(uni_state_test_df)
uni_state_test_df


Out[131]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS

In [132]:
## Check if any rows with null value for 'City' and County'
uni_county_test_df = unidentified_df.loc[unidentified_df['County'].isnull()]
# len(uni_county_test_df)
uni_county_test_df


Out[132]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
55 UP14028 12/21/1991 18.0 25.0 NaN NaN Alabama Male White / Caucasian 3/31/2017 1 NaN NaN
109 UP13395 9/20/2004 0.0 120.0 NaN NaN Alaska Male Uncertain 4/14/2020 2 NaN NaN
110 UP7281 4/30/2001 20.0 30.0 NaN NaN Alaska Male White / Caucasian 4/14/2020 2 NaN NaN
111 UP13575 9/11/1997 0.0 120.0 NaN NaN Alaska Male Uncertain 7/2/2018 2 NaN NaN
6392 UP4846 4/14/1988 37.0 52.0 NaN NaN Indiana Female White / Caucasian 6/3/2017 18 NaN NaN
7676 UP5018 4/19/1996 49.0 59.0 NaN NaN Missouri Female Black / African American 10/23/2018 29 NaN NaN
8536 UP17664 1/29/2018 0.0 120.0 NaN NaN New Mexico Male Uncertain 1/21/2020 35 NaN NaN
8540 UP16690 5/3/2017 0.0 120.0 NaN NaN New Mexico Unsure Uncertain 2/8/2020 35 NaN NaN
8541 UP5578 3/26/2003 50.0 60.0 NaN NaN New Mexico Female Black / African American 10/24/2018 35 NaN NaN
10966 UP56112 10/10/2017 0.0 120.0 NaN NaN Puerto Rico Male Uncertain 2/10/2020 72 NaN NaN
10967 UP17155 12/3/2016 10.0 60.0 NaN NaN Puerto Rico Male Black / African American, Hispanic / Latino 6/28/2018 72 NaN NaN
10968 UP17158 10/27/2015 18.0 50.0 NaN NaN Puerto Rico Male Black / African American, Hispanic / Latino 10/26/2017 72 NaN NaN
10969 UP17311 2/22/2015 0.0 120.0 NaN NaN Puerto Rico Male White / Caucasian, Hispanic / Latino 8/22/2018 72 NaN NaN
10970 UP15706 11/9/2013 20.0 30.0 NaN NaN Puerto Rico Male Black / African American, Hispanic / Latino 8/22/2018 72 NaN NaN
10971 UP10578 9/1/2012 45.0 65.0 NaN NaN Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 NaN NaN
10972 UP9403 9/3/2011 20.0 40.0 NaN NaN Puerto Rico Male Hispanic / Latino, Uncertain 4/4/2018 72 NaN NaN
10973 UP8896 1/11/2011 45.0 80.0 NaN NaN Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 NaN NaN
10974 UP8562 10/16/2010 30.0 50.0 NaN NaN Puerto Rico Male Black / African American, Hispanic / Latino 4/4/2018 72 NaN NaN
10975 UP8926 9/18/2010 15.0 30.0 NaN NaN Puerto Rico Male Black / African American, Hispanic / Latino 4/4/2018 72 NaN NaN
10976 UP7790 7/22/2010 18.0 99.0 NaN NaN Puerto Rico Male White / Caucasian 4/4/2018 72 NaN NaN
10977 UP8118 4/30/2010 18.0 99.0 NaN NaN Puerto Rico Male Uncertain 4/4/2018 72 NaN NaN
10978 UP8081 1/27/2010 18.0 99.0 NaN NaN Puerto Rico Male Hispanic / Latino, Uncertain 4/4/2018 72 NaN NaN
10979 UP6690 12/23/2009 60.0 90.0 NaN NaN Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 NaN NaN
10980 UP7723 11/27/2009 18.0 99.0 NaN NaN Puerto Rico Male Uncertain 4/4/2018 72 NaN NaN
10981 UP56111 1/1/2018 0.0 120.0 NaN NaN Puerto Rico Unsure Uncertain 2/3/2020 72 NaN NaN
10982 UP56466 1/1/2017 40.0 60.0 NaN NaN Puerto Rico Female Uncertain 4/2/2020 72 NaN NaN
10983 UP55774 1/1/2011 0.0 120.0 NaN NaN Puerto Rico Unsure Uncertain 2/10/2020 72 NaN NaN
12828 UP17628 7/11/2016 1.0 99.0 NaN NaN United States Virgin Islands Unsure Uncertain 11/8/2019 78 NaN NaN

In [133]:
# # change NaN County name (for cases with no city or county) to 'None'
unidentified_df['County'] = unidentified_df['County'].fillna('None')
unidentified_df.head()


Out[133]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1 1_Autauga 1001.0
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1 1_Autauga 1001.0
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1 1_Baldwin 1003.0
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1 1_Baldwin 1003.0
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1 1_Bibb 1007.0

In [134]:
## Double check re-assigned values
uni_county_test_2_df = unidentified_df.loc[unidentified_df['County']=='None']
uni_county_test_2_df
# len(uni_county_test_2_df)


Out[134]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
55 UP14028 12/21/1991 18.0 25.0 NaN None Alabama Male White / Caucasian 3/31/2017 1 NaN NaN
109 UP13395 9/20/2004 0.0 120.0 NaN None Alaska Male Uncertain 4/14/2020 2 NaN NaN
110 UP7281 4/30/2001 20.0 30.0 NaN None Alaska Male White / Caucasian 4/14/2020 2 NaN NaN
111 UP13575 9/11/1997 0.0 120.0 NaN None Alaska Male Uncertain 7/2/2018 2 NaN NaN
6392 UP4846 4/14/1988 37.0 52.0 NaN None Indiana Female White / Caucasian 6/3/2017 18 NaN NaN
7676 UP5018 4/19/1996 49.0 59.0 NaN None Missouri Female Black / African American 10/23/2018 29 NaN NaN
8536 UP17664 1/29/2018 0.0 120.0 NaN None New Mexico Male Uncertain 1/21/2020 35 NaN NaN
8540 UP16690 5/3/2017 0.0 120.0 NaN None New Mexico Unsure Uncertain 2/8/2020 35 NaN NaN
8541 UP5578 3/26/2003 50.0 60.0 NaN None New Mexico Female Black / African American 10/24/2018 35 NaN NaN
10966 UP56112 10/10/2017 0.0 120.0 NaN None Puerto Rico Male Uncertain 2/10/2020 72 NaN NaN
10967 UP17155 12/3/2016 10.0 60.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 6/28/2018 72 NaN NaN
10968 UP17158 10/27/2015 18.0 50.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 10/26/2017 72 NaN NaN
10969 UP17311 2/22/2015 0.0 120.0 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 8/22/2018 72 NaN NaN
10970 UP15706 11/9/2013 20.0 30.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 8/22/2018 72 NaN NaN
10971 UP10578 9/1/2012 45.0 65.0 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 NaN NaN
10972 UP9403 9/3/2011 20.0 40.0 NaN None Puerto Rico Male Hispanic / Latino, Uncertain 4/4/2018 72 NaN NaN
10973 UP8896 1/11/2011 45.0 80.0 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 NaN NaN
10974 UP8562 10/16/2010 30.0 50.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 4/4/2018 72 NaN NaN
10975 UP8926 9/18/2010 15.0 30.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 4/4/2018 72 NaN NaN
10976 UP7790 7/22/2010 18.0 99.0 NaN None Puerto Rico Male White / Caucasian 4/4/2018 72 NaN NaN
10977 UP8118 4/30/2010 18.0 99.0 NaN None Puerto Rico Male Uncertain 4/4/2018 72 NaN NaN
10978 UP8081 1/27/2010 18.0 99.0 NaN None Puerto Rico Male Hispanic / Latino, Uncertain 4/4/2018 72 NaN NaN
10979 UP6690 12/23/2009 60.0 90.0 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 NaN NaN
10980 UP7723 11/27/2009 18.0 99.0 NaN None Puerto Rico Male Uncertain 4/4/2018 72 NaN NaN
10981 UP56111 1/1/2018 0.0 120.0 NaN None Puerto Rico Unsure Uncertain 2/3/2020 72 NaN NaN
10982 UP56466 1/1/2017 40.0 60.0 NaN None Puerto Rico Female Uncertain 4/2/2020 72 NaN NaN
10983 UP55774 1/1/2011 0.0 120.0 NaN None Puerto Rico Unsure Uncertain 2/10/2020 72 NaN NaN
12828 UP17628 7/11/2016 1.0 99.0 NaN None United States Virgin Islands Unsure Uncertain 11/8/2019 78 NaN NaN

In [135]:
# Re-Add column with compound field key
unidentified_df['State_County'] = unidentified_df['State_FIPS'].astype(str) + "_" + unidentified_df['County']
unidentified_df.head()


Out[135]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1 1_Autauga 1001.0
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1 1_Autauga 1001.0
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1 1_Baldwin 1003.0
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1 1_Baldwin 1003.0
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1 1_Bibb 1007.0

In [136]:
## Double check re-assigned values
uni_county_test_3_df = unidentified_df.loc[unidentified_df['County']=='None']
uni_county_test_3_df
# len(uni_county_test_3_df)


Out[136]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
55 UP14028 12/21/1991 18.0 25.0 NaN None Alabama Male White / Caucasian 3/31/2017 1 1_None NaN
109 UP13395 9/20/2004 0.0 120.0 NaN None Alaska Male Uncertain 4/14/2020 2 2_None NaN
110 UP7281 4/30/2001 20.0 30.0 NaN None Alaska Male White / Caucasian 4/14/2020 2 2_None NaN
111 UP13575 9/11/1997 0.0 120.0 NaN None Alaska Male Uncertain 7/2/2018 2 2_None NaN
6392 UP4846 4/14/1988 37.0 52.0 NaN None Indiana Female White / Caucasian 6/3/2017 18 18_None NaN
7676 UP5018 4/19/1996 49.0 59.0 NaN None Missouri Female Black / African American 10/23/2018 29 29_None NaN
8536 UP17664 1/29/2018 0.0 120.0 NaN None New Mexico Male Uncertain 1/21/2020 35 35_None NaN
8540 UP16690 5/3/2017 0.0 120.0 NaN None New Mexico Unsure Uncertain 2/8/2020 35 35_None NaN
8541 UP5578 3/26/2003 50.0 60.0 NaN None New Mexico Female Black / African American 10/24/2018 35 35_None NaN
10966 UP56112 10/10/2017 0.0 120.0 NaN None Puerto Rico Male Uncertain 2/10/2020 72 72_None NaN
10967 UP17155 12/3/2016 10.0 60.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 6/28/2018 72 72_None NaN
10968 UP17158 10/27/2015 18.0 50.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 10/26/2017 72 72_None NaN
10969 UP17311 2/22/2015 0.0 120.0 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 8/22/2018 72 72_None NaN
10970 UP15706 11/9/2013 20.0 30.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 8/22/2018 72 72_None NaN
10971 UP10578 9/1/2012 45.0 65.0 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 72_None NaN
10972 UP9403 9/3/2011 20.0 40.0 NaN None Puerto Rico Male Hispanic / Latino, Uncertain 4/4/2018 72 72_None NaN
10973 UP8896 1/11/2011 45.0 80.0 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 72_None NaN
10974 UP8562 10/16/2010 30.0 50.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 4/4/2018 72 72_None NaN
10975 UP8926 9/18/2010 15.0 30.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 4/4/2018 72 72_None NaN
10976 UP7790 7/22/2010 18.0 99.0 NaN None Puerto Rico Male White / Caucasian 4/4/2018 72 72_None NaN
10977 UP8118 4/30/2010 18.0 99.0 NaN None Puerto Rico Male Uncertain 4/4/2018 72 72_None NaN
10978 UP8081 1/27/2010 18.0 99.0 NaN None Puerto Rico Male Hispanic / Latino, Uncertain 4/4/2018 72 72_None NaN
10979 UP6690 12/23/2009 60.0 90.0 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 72_None NaN
10980 UP7723 11/27/2009 18.0 99.0 NaN None Puerto Rico Male Uncertain 4/4/2018 72 72_None NaN
10981 UP56111 1/1/2018 0.0 120.0 NaN None Puerto Rico Unsure Uncertain 2/3/2020 72 72_None NaN
10982 UP56466 1/1/2017 40.0 60.0 NaN None Puerto Rico Female Uncertain 4/2/2020 72 72_None NaN
10983 UP55774 1/1/2011 0.0 120.0 NaN None Puerto Rico Unsure Uncertain 2/10/2020 72 72_None NaN
12828 UP17628 7/11/2016 1.0 99.0 NaN None United States Virgin Islands Unsure Uncertain 11/8/2019 78 78_None NaN

In [137]:
# Re-add County FIPS column to dataframe, using the State_County name field as a key in the county_v2_dict, to pull the correct County FIPS code for each row
unidentified_df['County_FIPS'] = unidentified_df['State_County'].map(county_v2_dict)
# Check unique values in new dataframe field
unidentified_df['County_FIPS'].unique()


Out[137]:
array([ 1001,  1003,  1007, ..., 56021, 56033, 56037], dtype=int64)

In [138]:
# check null values to make sure none are left [Note - all gone!]
unidentified_county_null_v2_df = unidentified_df.loc[unidentified_df['County_FIPS'].isnull()]
# unidentified_county_null_v2_df.shape
unidentified_county_null_v2_df


Out[138]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS

In [139]:
## Double check re-assigned values
uni_county_test_4_df = unidentified_df.loc[unidentified_df['County']=='None']
uni_county_test_4_df
# len(uni_county_test_4_df)


Out[139]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
55 UP14028 12/21/1991 18.0 25.0 NaN None Alabama Male White / Caucasian 3/31/2017 1 1_None 1999
109 UP13395 9/20/2004 0.0 120.0 NaN None Alaska Male Uncertain 4/14/2020 2 2_None 2999
110 UP7281 4/30/2001 20.0 30.0 NaN None Alaska Male White / Caucasian 4/14/2020 2 2_None 2999
111 UP13575 9/11/1997 0.0 120.0 NaN None Alaska Male Uncertain 7/2/2018 2 2_None 2999
6392 UP4846 4/14/1988 37.0 52.0 NaN None Indiana Female White / Caucasian 6/3/2017 18 18_None 18999
7676 UP5018 4/19/1996 49.0 59.0 NaN None Missouri Female Black / African American 10/23/2018 29 29_None 29999
8536 UP17664 1/29/2018 0.0 120.0 NaN None New Mexico Male Uncertain 1/21/2020 35 35_None 35999
8540 UP16690 5/3/2017 0.0 120.0 NaN None New Mexico Unsure Uncertain 2/8/2020 35 35_None 35999
8541 UP5578 3/26/2003 50.0 60.0 NaN None New Mexico Female Black / African American 10/24/2018 35 35_None 35999
10966 UP56112 10/10/2017 0.0 120.0 NaN None Puerto Rico Male Uncertain 2/10/2020 72 72_None 72999
10967 UP17155 12/3/2016 10.0 60.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 6/28/2018 72 72_None 72999
10968 UP17158 10/27/2015 18.0 50.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 10/26/2017 72 72_None 72999
10969 UP17311 2/22/2015 0.0 120.0 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 8/22/2018 72 72_None 72999
10970 UP15706 11/9/2013 20.0 30.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 8/22/2018 72 72_None 72999
10971 UP10578 9/1/2012 45.0 65.0 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 72_None 72999
10972 UP9403 9/3/2011 20.0 40.0 NaN None Puerto Rico Male Hispanic / Latino, Uncertain 4/4/2018 72 72_None 72999
10973 UP8896 1/11/2011 45.0 80.0 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 72_None 72999
10974 UP8562 10/16/2010 30.0 50.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 4/4/2018 72 72_None 72999
10975 UP8926 9/18/2010 15.0 30.0 NaN None Puerto Rico Male Black / African American, Hispanic / Latino 4/4/2018 72 72_None 72999
10976 UP7790 7/22/2010 18.0 99.0 NaN None Puerto Rico Male White / Caucasian 4/4/2018 72 72_None 72999
10977 UP8118 4/30/2010 18.0 99.0 NaN None Puerto Rico Male Uncertain 4/4/2018 72 72_None 72999
10978 UP8081 1/27/2010 18.0 99.0 NaN None Puerto Rico Male Hispanic / Latino, Uncertain 4/4/2018 72 72_None 72999
10979 UP6690 12/23/2009 60.0 90.0 NaN None Puerto Rico Male White / Caucasian, Hispanic / Latino 4/4/2018 72 72_None 72999
10980 UP7723 11/27/2009 18.0 99.0 NaN None Puerto Rico Male Uncertain 4/4/2018 72 72_None 72999
10981 UP56111 1/1/2018 0.0 120.0 NaN None Puerto Rico Unsure Uncertain 2/3/2020 72 72_None 72999
10982 UP56466 1/1/2017 40.0 60.0 NaN None Puerto Rico Female Uncertain 4/2/2020 72 72_None 72999
10983 UP55774 1/1/2011 0.0 120.0 NaN None Puerto Rico Unsure Uncertain 2/10/2020 72 72_None 72999
12828 UP17628 7/11/2016 1.0 99.0 NaN None United States Virgin Islands Unsure Uncertain 11/8/2019 78 78_None 78999

Part 4: Prep data for city-level JSONs for all 3 databases

Clean up city dataframe


In [140]:
city_df.head()


Out[140]:
OBJECTID FEATURE_ID FEATURE_NA FEATURE_CL STATE_ALPH STATE_NUME COUNTY_NAM COUNTY_NUM PRIMARY_LA PRIM_LONG_ ... PRIM_LON_1 SOURCE_LAT SOURCE_LON SOURCE_L_1 SOURCE_L_2 ELEV_IN_M ELEV_IN_FT MAP_NAME DATE_CREAT DATE_EDITE
0 131260 1396395 Aen Populated Place MH 68 0 055500N 1720800E ... 172.133333 0 0 6 20 Unknown 1/1/2000
1 175587 1893212 Aievak Populated Place AK 2 0 Unknown Unknown ... 0.000000 0 0 0 0 Denali C-4 NE 3/23/2001
2 131261 1396456 Airek Populated Place MH 68 0 071600N 1685000E ... 168.833333 0 0 7 23 Unknown 1/1/2000
3 131262 1396460 Ajaltokrok Populated Place MH 68 0 065900N 1714200E ... 171.700000 0 0 7 23 Unknown 1/1/2000
4 131263 1396466 Ajiltake Populated Place MH 68 0 070400N 1711200E ... 171.200000 0 0 7 23 Unknown 1/1/2000

5 rows × 21 columns


In [141]:
# pr_df = city_df.loc[city_df['FEATURE_NA']=='Mayagüez']
# pr_df

In [142]:
# Drop columns that aren't needed
city_df = city_df.drop(columns=['FEATURE_CL','PRIMARY_LA', 'PRIM_LONG_', 'SOURCE_LAT', 'SOURCE_LON', 'SOURCE_L_1', 'SOURCE_L_2', 'ELEV_IN_M', 'ELEV_IN_FT', 'MAP_NAME', 'DATE_CREAT', 'DATE_EDITE'])

In [143]:
city_df = city_df.sort_values(by=['STATE_ALPH'])
city_df.head()


Out[143]:
OBJECTID FEATURE_ID FEATURE_NA STATE_ALPH STATE_NUME COUNTY_NAM COUNTY_NUM PRIM_LAT_D PRIM_LON_1
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678
3892 131923 1420077 Alyeska AK 2 Anchorage 20 60.960833 -149.110833
3891 175588 1893216 Airport Heights AK 2 Anchorage 20 61.205556 -149.823611
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556

In [144]:
# Rename columns
city_df.rename(columns={'FEATURE_NA':'CITY_NAME', 'STATE_ALPH':'STUSPS', 'STATE_NUME':'STATEFP', 'COUNTY_NAM':'GNIS_COUNTY', 'PRIM_LAT_D': 'Lat_dd', 'PRIM_LON_1': 'Lon_dd'}, inplace=True)

In [145]:
city_df.head()


Out[145]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678
3892 131923 1420077 Alyeska AK 2 Anchorage 20 60.960833 -149.110833
3891 175588 1893216 Airport Heights AK 2 Anchorage 20 61.205556 -149.823611
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556

In [146]:
# Make state FIPS int
city_df['STATEFP'] = city_df['STATEFP'].astype(int)
city_df.head()


Out[146]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678
3892 131923 1420077 Alyeska AK 2 Anchorage 20 60.960833 -149.110833
3891 175588 1893216 Airport Heights AK 2 Anchorage 20 61.205556 -149.823611
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556

In [147]:
# Make couty FIPS int
city_df['COUNTY_NUM'] = city_df['COUNTY_NUM'].astype(int)
city_df.head()


Out[147]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678
3892 131923 1420077 Alyeska AK 2 Anchorage 20 60.960833 -149.110833
3891 175588 1893216 Airport Heights AK 2 Anchorage 20 61.205556 -149.823611
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556

In [148]:
# reformat county num with leading zeros
city_df['COUNTY_NUM']=city_df['COUNTY_NUM'].apply('{:0>3}'.format)
city_df.head()


Out[148]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678
3892 131923 1420077 Alyeska AK 2 Anchorage 020 60.960833 -149.110833
3891 175588 1893216 Airport Heights AK 2 Anchorage 020 61.205556 -149.823611
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556

In [149]:
# create county FIPS field
city_df['COUNTY_FIPS'] = city_df['STATEFP'].astype(str) + city_df['COUNTY_NUM'].astype(str)
city_df.head(5000)


Out[149]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678 2261
3892 131923 1420077 Alyeska AK 2 Anchorage 020 60.960833 -149.110833 2020
3891 175588 1893216 Airport Heights AK 2 Anchorage 020 61.205556 -149.823611 2020
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833 2198
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556 2198
... ... ... ... ... ... ... ... ... ... ...
185627 6647 115400 Calumet AL 1 Walker 127 33.794830 -87.286949 1127
185628 12223 162302 Camak Mills (historical) AL 1 Walker 127 33.907607 -87.288341 1127
185629 6652 115429 Cameron AL 1 Walker 127 33.795941 -87.271671 1127
14945 8343 135073 Bent Tree AL 1 Blount 009 33.879267 -86.768884 1009
14951 12285 163164 Bird (historical) AL 1 Blount 009 34.029819 -86.389150 1009

5000 rows × 10 columns


In [150]:
# Make couty FIPS int
city_df['COUNTY_FIPS'] = city_df['COUNTY_FIPS'].astype(int)
type(city_df['COUNTY_FIPS'][0])


Out[150]:
numpy.int32

In [151]:
city_df.head()


Out[151]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678 2261
3892 131923 1420077 Alyeska AK 2 Anchorage 020 60.960833 -149.110833 2020
3891 175588 1893216 Airport Heights AK 2 Anchorage 020 61.205556 -149.823611 2020
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833 2198
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556 2198

In [152]:
# Add new column to dataframe, using the county fips field as a key in the countynames_dict, to pull the correct county name for each row
city_df['COUNTY_NAME'] = city_df['COUNTY_FIPS'].map(countynames_v2_dict)
city_df.head()


Out[152]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678 2261 Valdez-Cordova
3892 131923 1420077 Alyeska AK 2 Anchorage 020 60.960833 -149.110833 2020 Anchorage
3891 175588 1893216 Airport Heights AK 2 Anchorage 020 61.205556 -149.823611 2020 Anchorage
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833 2198 Prince of Wales-Hyder
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556 2198 Prince of Wales-Hyder

In [153]:
# Add new column to dataframe, using the state fips field as a key in the state_dict, to pull the correct FIPS code for each row
city_df['STATE_NAME'] = city_df['STATEFP'].map(state_FIPS_dict)
city_df.head()


Out[153]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678 2261 Valdez-Cordova Alaska
3892 131923 1420077 Alyeska AK 2 Anchorage 020 60.960833 -149.110833 2020 Anchorage Alaska
3891 175588 1893216 Airport Heights AK 2 Anchorage 020 61.205556 -149.823611 2020 Anchorage Alaska
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833 2198 Prince of Wales-Hyder Alaska
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556 2198 Prince of Wales-Hyder Alaska

In [154]:
city_df['CITY_NAME'] = city_df['CITY_NAME'].str.replace("?","")

In [155]:
city_df['CITY_STRING'] = city_df['CITY_NAME']
city_df.head()


Out[155]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678 2261 Valdez-Cordova Alaska Orca
3892 131923 1420077 Alyeska AK 2 Anchorage 020 60.960833 -149.110833 2020 Anchorage Alaska Alyeska
3891 175588 1893216 Airport Heights AK 2 Anchorage 020 61.205556 -149.823611 2020 Anchorage Alaska Airport Heights
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833 2198 Prince of Wales-Hyder Alaska Whale Pass
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556 2198 Prince of Wales-Hyder Alaska Waterfall

In [156]:
city_df['CITY_STRING'] = city_df['CITY_STRING'].str.replace("."," ")

In [157]:
city_df['CITY_STRING'] = city_df['CITY_STRING'].str.replace("St ","saint")

In [158]:
city_df['CITY_STRING'] = city_df['CITY_STRING'].str.replace("Township","")

In [159]:
city_df['CITY_STRING'] = city_df['CITY_STRING'].str.replace("Near ","")

In [160]:
city_df['CITY_STRING'] = city_df['CITY_STRING'].str.replace(",","")

In [161]:
city_df['CITY_STRING'] = city_df['CITY_STRING'].str.replace("'","")

In [162]:
city_df['CITY_STRING'] = city_df['CITY_STRING'].str.replace("-","")

In [163]:
city_df['CITY_STRING'] = city_df['CITY_STRING'].str.replace("/","")

In [164]:
city_df['CITY_STRING'] = city_df['CITY_STRING'].str.replace("?","")

In [165]:
city_df['CITY_STRING'] = city_df['CITY_STRING'].str.replace(" ","")

In [166]:
city_df['CITY_STRING'] = city_df['CITY_STRING'].str.lower()
city_df.head()


Out[166]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678 2261 Valdez-Cordova Alaska orca
3892 131923 1420077 Alyeska AK 2 Anchorage 020 60.960833 -149.110833 2020 Anchorage Alaska alyeska
3891 175588 1893216 Airport Heights AK 2 Anchorage 020 61.205556 -149.823611 2020 Anchorage Alaska airportheights
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833 2198 Prince of Wales-Hyder Alaska whalepass
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556 2198 Prince of Wales-Hyder Alaska waterfall

In [167]:
# make joint county_city column
city_df['COUNTYFP_CITY'] = city_df['COUNTY_FIPS'].astype(str) + '_' + city_df['CITY_STRING']
city_df.head()


Out[167]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678 2261 Valdez-Cordova Alaska orca 2261_orca
3892 131923 1420077 Alyeska AK 2 Anchorage 020 60.960833 -149.110833 2020 Anchorage Alaska alyeska 2020_alyeska
3891 175588 1893216 Airport Heights AK 2 Anchorage 020 61.205556 -149.823611 2020 Anchorage Alaska airportheights 2020_airportheights
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833 2198 Prince of Wales-Hyder Alaska whalepass 2198_whalepass
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556 2198 Prince of Wales-Hyder Alaska waterfall 2198_waterfall

In [168]:
# check length of dataframe
len(city_df)


Out[168]:
200362

In [169]:
# if necessary export csv to check if duplicates [NOTE: yes - there were duplicates of the same city in the same county in the same state]
# city_df.to_csv('city_dups.csv', encoding='ISO-8859-1')

In [170]:
# get rid of duplicates
city_df = city_df.drop_duplicates(subset='COUNTYFP_CITY')
len(city_df)


Out[170]:
199473

In [171]:
# make dictionary of COUNTYFP_CITY and city name string
city_dict = dict(zip(city_df.COUNTYFP_CITY, city_df.CITY_NAME))
# city_dict
# city_dict['4013_adobe']
len(city_dict)


Out[171]:
199473

Map city_dict to missing_df to see if missing values


In [172]:
missing_df = missing_df.sort_values(by=['Case Number'])
missing_df.head()


Out[172]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
1979 MP1 10/1/1978 Allen Anthony 16 Fort Smith Sebastian Arkansas Male White / Caucasian 2/13/2020 5 5_Sebastian 5131
14452 MP10 2/4/2000 Toliver Charles 30 Clinton Anderson Tennessee Male White / Caucasian 8/5/2019 47 47_Anderson 47001
14969 MP100 8/16/1995 Butler James 39 Kingsport Sullivan Tennessee Male White / Caucasian 7/29/2019 47 47_Sullivan 47163
8026 MP10000 8/20/2003 Hamilton Carole 32 Owensboro Daviess Kentucky Female White / Caucasian 3/10/2020 21 21_Daviess 21059
11898 MP10002 12/13/2007 Ratynski Edward 53 Fallsburg Sullivan New York Male White / Caucasian 1/6/2020 36 36_Sullivan 36105

In [173]:
# check dataframe
missing_df.head()


Out[173]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
1979 MP1 10/1/1978 Allen Anthony 16 Fort Smith Sebastian Arkansas Male White / Caucasian 2/13/2020 5 5_Sebastian 5131
14452 MP10 2/4/2000 Toliver Charles 30 Clinton Anderson Tennessee Male White / Caucasian 8/5/2019 47 47_Anderson 47001
14969 MP100 8/16/1995 Butler James 39 Kingsport Sullivan Tennessee Male White / Caucasian 7/29/2019 47 47_Sullivan 47163
8026 MP10000 8/20/2003 Hamilton Carole 32 Owensboro Daviess Kentucky Female White / Caucasian 3/10/2020 21 21_Daviess 21059
11898 MP10002 12/13/2007 Ratynski Edward 53 Fallsburg Sullivan New York Male White / Caucasian 1/6/2020 36 36_Sullivan 36105

In [174]:
# check length of dataframe
len(missing_df)


Out[174]:
17891

In [175]:
missing_df['City'] = missing_df['City'].str.replace("?","")

In [176]:
# make city names titled
missing_df['City_string'] = missing_df['City'].str.title()
missing_df.head()


Out[176]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string
1979 MP1 10/1/1978 Allen Anthony 16 Fort Smith Sebastian Arkansas Male White / Caucasian 2/13/2020 5 5_Sebastian 5131 Fort Smith
14452 MP10 2/4/2000 Toliver Charles 30 Clinton Anderson Tennessee Male White / Caucasian 8/5/2019 47 47_Anderson 47001 Clinton
14969 MP100 8/16/1995 Butler James 39 Kingsport Sullivan Tennessee Male White / Caucasian 7/29/2019 47 47_Sullivan 47163 Kingsport
8026 MP10000 8/20/2003 Hamilton Carole 32 Owensboro Daviess Kentucky Female White / Caucasian 3/10/2020 21 21_Daviess 21059 Owensboro
11898 MP10002 12/13/2007 Ratynski Edward 53 Fallsburg Sullivan New York Male White / Caucasian 1/6/2020 36 36_Sullivan 36105 Fallsburg

In [177]:
missing_df['City_string'] = missing_df['City_string'].str.replace("."," ")

In [178]:
missing_df['City_string'] = missing_df['City_string'].str.replace("Ft","fort")

In [179]:
missing_df['City_string'] = missing_df['City_string'].str.replace("St ","saint")

In [180]:
missing_df['City_string'] = missing_df['City_string'].str.replace("Ste ","saint")

In [181]:
missing_df['City_string'] = missing_df['City_string'].str.replace("Mt","mount")

In [182]:
missing_df['City_string'] = missing_df['City_string'].str.replace("^S ","south")

In [183]:
missing_df['City_string'] = missing_df['City_string'].str.replace("^E ","east")

In [184]:
missing_df['City_string'] = missing_df['City_string'].str.replace("^N ","north")

In [185]:
missing_df['City_string'] = missing_df['City_string'].str.replace("^W ","west")

In [186]:
missing_df['City_string'] = missing_df['City_string'].str.replace("Twp","")

In [187]:
missing_df['City_string'] = missing_df['City_string'].str.replace("Township","")

In [188]:
missing_df['City_string'] = missing_df['City_string'].str.replace("Near ","")

In [189]:
missing_df['City_string'] = missing_df['City_string'].str.replace("North Of ","")

In [190]:
missing_df['City_string'] = missing_df['City_string'].str.replace(" Dc","")

In [191]:
missing_df['City_string'] = missing_df['City_string'].str.replace(" District Of Columbia","")

In [192]:
missing_df['City_string'] = missing_df['City_string'].str.replace(",","")

In [193]:
missing_df['City_string'] = missing_df['City_string'].str.replace("'","")

In [194]:
missing_df['City_string'] = missing_df['City_string'].str.replace("-","")

In [195]:
missing_df['City_string'] = missing_df['City_string'].str.replace("/","")

In [196]:
missing_df['City_string'] = missing_df['City_string'].str.replace("?","")

In [197]:
missing_df['City_string'] = missing_df['City_string'].str.replace(" ","")

In [198]:
missing_df['City_string'] = missing_df['City_string'].str.replace("County","")

In [199]:
missing_df['City_string'] = missing_df['City_string'].str.lower()
missing_df.head()


Out[199]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string
1979 MP1 10/1/1978 Allen Anthony 16 Fort Smith Sebastian Arkansas Male White / Caucasian 2/13/2020 5 5_Sebastian 5131 fortsmith
14452 MP10 2/4/2000 Toliver Charles 30 Clinton Anderson Tennessee Male White / Caucasian 8/5/2019 47 47_Anderson 47001 clinton
14969 MP100 8/16/1995 Butler James 39 Kingsport Sullivan Tennessee Male White / Caucasian 7/29/2019 47 47_Sullivan 47163 kingsport
8026 MP10000 8/20/2003 Hamilton Carole 32 Owensboro Daviess Kentucky Female White / Caucasian 3/10/2020 21 21_Daviess 21059 owensboro
11898 MP10002 12/13/2007 Ratynski Edward 53 Fallsburg Sullivan New York Male White / Caucasian 1/6/2020 36 36_Sullivan 36105 fallsburg

In [200]:
missing_df['City_string'] = missing_df['City_string'].str.replace('unknown','', regex=False)

In [201]:
missing_df['City_string'] = missing_df['City_string'].str.replace('undetermined','', regex=False)

In [202]:
missing_df['City_string'] = missing_df['City_string'].str.replace('.*\d.*', '', regex=True)

In [203]:
missing_df['City_string'] = missing_df['City_string'].replace(r'^\s*$', np.NaN, regex=True)
missing_df.head()


Out[203]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string
1979 MP1 10/1/1978 Allen Anthony 16 Fort Smith Sebastian Arkansas Male White / Caucasian 2/13/2020 5 5_Sebastian 5131 fortsmith
14452 MP10 2/4/2000 Toliver Charles 30 Clinton Anderson Tennessee Male White / Caucasian 8/5/2019 47 47_Anderson 47001 clinton
14969 MP100 8/16/1995 Butler James 39 Kingsport Sullivan Tennessee Male White / Caucasian 7/29/2019 47 47_Sullivan 47163 kingsport
8026 MP10000 8/20/2003 Hamilton Carole 32 Owensboro Daviess Kentucky Female White / Caucasian 3/10/2020 21 21_Daviess 21059 owensboro
11898 MP10002 12/13/2007 Ratynski Edward 53 Fallsburg Sullivan New York Male White / Caucasian 1/6/2020 36 36_Sullivan 36105 fallsburg

In [204]:
# check null values [NOTE: ]
missing_citystring_null_df = missing_df.loc[missing_df['City_string'].isnull()]
# missing_citystring_null_df.shape
missing_citystring_null_df


Out[204]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string
6954 MP1019 10/18/1996 Sjoberg Benjamin 23 NaN Kauai Hawaii Male White / Caucasian 1/15/2020 15 15_Kauai 15007 NaN
16646 MP1087 6/17/1995 Chisholm Thylea 20 NaN Chesterfield Virginia Female White / Caucasian 4/13/2020 51 51_Chesterfield 51041 NaN
16647 MP1088 8/31/1990 Gunn Anita 37 NaN Chesterfield Virginia Female White / Caucasian 3/12/2020 51 51_Chesterfield 51041 NaN
5220 MP11262 9/28/2007 Hernandez Jesus 37 NaN Broward Florida Male White / Caucasian 5/29/2018 12 12_Broward 12011 NaN
5223 MP11352 7/28/1982 Marlow Robin 28 NaN Broward Florida Female White / Caucasian 11/8/2017 12 12_Broward 12011 NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
16433 MP9206 11/9/2009 Jones Creola 34 NaN St. Croix United States Virgin Islands Female Black / African American 9/17/2012 78 78_St. Croix 78010 NaN
3644 MP9467 6/17/2004 Collier Terry 55 Unknown San Bernardino California Female White / Caucasian 4/29/2019 6 6_San Bernardino 6071 NaN
5169 MP9544 8/17/1999 Sayre Tom 37 Unknown Alachua Florida Male White / Caucasian 3/12/2020 12 12_Alachua 12001 NaN
9195 MP9603 7/2/2001 Mcclary Eric 48 NaN Gladwin Michigan Male White / Caucasian 7/11/2019 26 26_Gladwin 26051 NaN
16432 MP9797 1/29/2010 Robin Isaac 20 NaN St. Croix United States Virgin Islands Male Black / African American 8/23/2018 78 78_St. Croix 78010 NaN

188 rows × 15 columns


In [205]:
# Add column with compound field key
missing_df['County_city'] = missing_df['County_FIPS'].astype(str) + "_" + missing_df['City_string']
missing_df.head()


Out[205]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string County_city
1979 MP1 10/1/1978 Allen Anthony 16 Fort Smith Sebastian Arkansas Male White / Caucasian 2/13/2020 5 5_Sebastian 5131 fortsmith 5131_fortsmith
14452 MP10 2/4/2000 Toliver Charles 30 Clinton Anderson Tennessee Male White / Caucasian 8/5/2019 47 47_Anderson 47001 clinton 47001_clinton
14969 MP100 8/16/1995 Butler James 39 Kingsport Sullivan Tennessee Male White / Caucasian 7/29/2019 47 47_Sullivan 47163 kingsport 47163_kingsport
8026 MP10000 8/20/2003 Hamilton Carole 32 Owensboro Daviess Kentucky Female White / Caucasian 3/10/2020 21 21_Daviess 21059 owensboro 21059_owensboro
11898 MP10002 12/13/2007 Ratynski Edward 53 Fallsburg Sullivan New York Male White / Caucasian 1/6/2020 36 36_Sullivan 36105 fallsburg 36105_fallsburg

In [206]:
# Add new column to dataframe, using the County_city name field as a key in the city_dict, to pull the GNIS city name for each row
missing_df['GNIS_city'] = missing_df['County_city'].map(city_dict)
missing_df.head()


Out[206]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string County_city GNIS_city
1979 MP1 10/1/1978 Allen Anthony 16 Fort Smith Sebastian Arkansas Male White / Caucasian 2/13/2020 5 5_Sebastian 5131 fortsmith 5131_fortsmith Fort Smith
14452 MP10 2/4/2000 Toliver Charles 30 Clinton Anderson Tennessee Male White / Caucasian 8/5/2019 47 47_Anderson 47001 clinton 47001_clinton Clinton
14969 MP100 8/16/1995 Butler James 39 Kingsport Sullivan Tennessee Male White / Caucasian 7/29/2019 47 47_Sullivan 47163 kingsport 47163_kingsport Kingsport
8026 MP10000 8/20/2003 Hamilton Carole 32 Owensboro Daviess Kentucky Female White / Caucasian 3/10/2020 21 21_Daviess 21059 owensboro 21059_owensboro Owensboro
11898 MP10002 12/13/2007 Ratynski Edward 53 Fallsburg Sullivan New York Male White / Caucasian 1/6/2020 36 36_Sullivan 36105 fallsburg 36105_fallsburg Fallsburg

In [207]:
# Check unique values in new dataframe field
missing_df['GNIS_city'].unique()


Out[207]:
array(['Fort Smith', 'Clinton', 'Kingsport', ..., 'Owego', 'Uniontown',
       'Virgie'], dtype=object)

In [208]:
# check null values [NOTE: ]
missing_city_null_df = missing_df.loc[missing_df['GNIS_city'].isnull()]
missing_city_null_df.shape
# missing_city_null_df


Out[208]:
(1236, 17)

In [209]:
# As needed, export nulls to address [NOTE:]
# missing_city_null_df.to_csv('missing_city_nulls.csv', encoding='utf-8')

In [ ]:

Map city_dict to unclaimed_df to see if missing values


In [210]:
unclaimed_df = unclaimed_df.sort_values(by=['DBF'])
unclaimed_df.head()


Out[210]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
4129 UCP3482 1/1/2004 Green Ellen Female White / Caucasian Orange Orange California 4/18/2017 6 6_Orange 6059
4649 UCP3523 1/1/2005 Baldwin Bette Female White / Caucasian San Juan Capistrano Orange California 4/20/2017 6 6_Orange 6059
7297 UCP853 1/1/2006 Eckberg Robert Male White / Caucasian NaN Spokane Washington 4/14/2020 53 53_Spokane 53063
7256 UCP63328 1/1/2007 Bishop Robert Unknown Uncertain NaN San Bernardino California 12/19/2019 6 6_San Bernardino 6071
2236 UCP3793 1/1/2007 Lopez Agnes Female White / Caucasian Fullerton Orange California 5/4/2017 6 6_Orange 6059

In [211]:
# check dataframe
unclaimed_df.head()


Out[211]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS
4129 UCP3482 1/1/2004 Green Ellen Female White / Caucasian Orange Orange California 4/18/2017 6 6_Orange 6059
4649 UCP3523 1/1/2005 Baldwin Bette Female White / Caucasian San Juan Capistrano Orange California 4/20/2017 6 6_Orange 6059
7297 UCP853 1/1/2006 Eckberg Robert Male White / Caucasian NaN Spokane Washington 4/14/2020 53 53_Spokane 53063
7256 UCP63328 1/1/2007 Bishop Robert Unknown Uncertain NaN San Bernardino California 12/19/2019 6 6_San Bernardino 6071
2236 UCP3793 1/1/2007 Lopez Agnes Female White / Caucasian Fullerton Orange California 5/4/2017 6 6_Orange 6059

In [212]:
# check length of dataframe
len(unclaimed_df)


Out[212]:
8335

In [213]:
unclaimed_df['City'] = unclaimed_df['City'].str.replace("?","")

In [214]:
# make city names titled
unclaimed_df['City_string'] = unclaimed_df['City'].str.title()
unclaimed_df.head()


Out[214]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS City_string
4129 UCP3482 1/1/2004 Green Ellen Female White / Caucasian Orange Orange California 4/18/2017 6 6_Orange 6059 Orange
4649 UCP3523 1/1/2005 Baldwin Bette Female White / Caucasian San Juan Capistrano Orange California 4/20/2017 6 6_Orange 6059 San Juan Capistrano
7297 UCP853 1/1/2006 Eckberg Robert Male White / Caucasian NaN Spokane Washington 4/14/2020 53 53_Spokane 53063 NaN
7256 UCP63328 1/1/2007 Bishop Robert Unknown Uncertain NaN San Bernardino California 12/19/2019 6 6_San Bernardino 6071 NaN
2236 UCP3793 1/1/2007 Lopez Agnes Female White / Caucasian Fullerton Orange California 5/4/2017 6 6_Orange 6059 Fullerton

In [215]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("."," ")

In [216]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("Ft","fort")

In [217]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("St ","saint")

In [218]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("Ste ","saint")

In [219]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("Mt","mount")

In [220]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("^S ","south")

In [221]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("^E ","east")

In [222]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("^N ","north")

In [223]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("^W ","west")

In [224]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("Twp","")

In [225]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("Township","")

In [226]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("Near ","")

In [227]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("North Of ","")

In [228]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace(" Dc","")

In [229]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace(" District Of Columbia","")

In [230]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace(",","")

In [231]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("'","")

In [232]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("-","")

In [233]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("/","")

In [234]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("?","")

In [235]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace(" ","")

In [236]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace("County","")

In [237]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.lower()
unclaimed_df.head()


Out[237]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS City_string
4129 UCP3482 1/1/2004 Green Ellen Female White / Caucasian Orange Orange California 4/18/2017 6 6_Orange 6059 orange
4649 UCP3523 1/1/2005 Baldwin Bette Female White / Caucasian San Juan Capistrano Orange California 4/20/2017 6 6_Orange 6059 sanjuancapistrano
7297 UCP853 1/1/2006 Eckberg Robert Male White / Caucasian NaN Spokane Washington 4/14/2020 53 53_Spokane 53063 NaN
7256 UCP63328 1/1/2007 Bishop Robert Unknown Uncertain NaN San Bernardino California 12/19/2019 6 6_San Bernardino 6071 NaN
2236 UCP3793 1/1/2007 Lopez Agnes Female White / Caucasian Fullerton Orange California 5/4/2017 6 6_Orange 6059 fullerton

In [238]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace('unknown','', regex=False)

In [239]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace('undetermined','', regex=False)

In [240]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].str.replace('.*\d.*', '', regex=True)

In [241]:
unclaimed_df['City_string'] = unclaimed_df['City_string'].replace(r'^\s*$', np.NaN, regex=True)
unclaimed_df.head()


Out[241]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS City_string
4129 UCP3482 1/1/2004 Green Ellen Female White / Caucasian Orange Orange California 4/18/2017 6 6_Orange 6059 orange
4649 UCP3523 1/1/2005 Baldwin Bette Female White / Caucasian San Juan Capistrano Orange California 4/20/2017 6 6_Orange 6059 sanjuancapistrano
7297 UCP853 1/1/2006 Eckberg Robert Male White / Caucasian NaN Spokane Washington 4/14/2020 53 53_Spokane 53063 NaN
7256 UCP63328 1/1/2007 Bishop Robert Unknown Uncertain NaN San Bernardino California 12/19/2019 6 6_San Bernardino 6071 NaN
2236 UCP3793 1/1/2007 Lopez Agnes Female White / Caucasian Fullerton Orange California 5/4/2017 6 6_Orange 6059 fullerton

In [242]:
# check null values [NOTE: ]
unclaimed_citystring_null_df = unclaimed_df.loc[unclaimed_df['City_string'].isnull()]
# unclaimed_citystring_null_df.shape
unclaimed_citystring_null_df


Out[242]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS City_string
7297 UCP853 1/1/2006 Eckberg Robert Male White / Caucasian NaN Spokane Washington 4/14/2020 53 53_Spokane 53063 NaN
7256 UCP63328 1/1/2007 Bishop Robert Unknown Uncertain NaN San Bernardino California 12/19/2019 6 6_San Bernardino 6071 NaN
7081 UCP63533 1/1/2009 Leyva Melvis Unknown Uncertain NaN San Bernardino California 12/19/2019 6 6_San Bernardino 6071 NaN
7080 UCP63351 1/1/2009 Johnston James Unknown Uncertain NaN San Bernardino California 12/19/2019 6 6_San Bernardino 6071 NaN
6971 UCP63397 1/1/2010 Mccormack Robert Unknown Uncertain NaN San Bernardino California 12/19/2019 6 6_San Bernardino 6071 NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
8330 UCP1040 NaN Snell Gerald Male Uncertain NaN Wayne Michigan 3/19/2020 26 26_Wayne 26163 NaN
8331 UCP341 NaN Brotherton Quilen Male Uncertain NaN Spokane Washington 4/14/2020 53 53_Spokane 53063 NaN
8332 UCP326 NaN Bell Phillip Male Uncertain NaN Spokane Washington 4/14/2020 53 53_Spokane 53063 NaN
8333 UCP345 NaN Buonantony Elena Female Uncertain NaN Spokane Washington 4/14/2020 53 53_Spokane 53063 NaN
8334 UCP371 NaN Callison James Male Uncertain NaN Adams Washington 4/14/2020 53 53_Adams 53001 NaN

2880 rows × 14 columns


In [243]:
# Add column with compound field key
unclaimed_df['County_city'] = unclaimed_df['County_FIPS'].astype(str) + "_" + unclaimed_df['City_string']
unclaimed_df.head()


Out[243]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS City_string County_city
4129 UCP3482 1/1/2004 Green Ellen Female White / Caucasian Orange Orange California 4/18/2017 6 6_Orange 6059 orange 6059_orange
4649 UCP3523 1/1/2005 Baldwin Bette Female White / Caucasian San Juan Capistrano Orange California 4/20/2017 6 6_Orange 6059 sanjuancapistrano 6059_sanjuancapistrano
7297 UCP853 1/1/2006 Eckberg Robert Male White / Caucasian NaN Spokane Washington 4/14/2020 53 53_Spokane 53063 NaN NaN
7256 UCP63328 1/1/2007 Bishop Robert Unknown Uncertain NaN San Bernardino California 12/19/2019 6 6_San Bernardino 6071 NaN NaN
2236 UCP3793 1/1/2007 Lopez Agnes Female White / Caucasian Fullerton Orange California 5/4/2017 6 6_Orange 6059 fullerton 6059_fullerton

In [244]:
# Add new column to dataframe, using the County_city name field as a key in the city_dict, to pull the GNIS city name for each row
unclaimed_df['GNIS_city'] = unclaimed_df['County_city'].map(city_dict)
unclaimed_df.head()


Out[244]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS City_string County_city GNIS_city
4129 UCP3482 1/1/2004 Green Ellen Female White / Caucasian Orange Orange California 4/18/2017 6 6_Orange 6059 orange 6059_orange Orange
4649 UCP3523 1/1/2005 Baldwin Bette Female White / Caucasian San Juan Capistrano Orange California 4/20/2017 6 6_Orange 6059 sanjuancapistrano 6059_sanjuancapistrano San Juan Capistrano
7297 UCP853 1/1/2006 Eckberg Robert Male White / Caucasian NaN Spokane Washington 4/14/2020 53 53_Spokane 53063 NaN NaN NaN
7256 UCP63328 1/1/2007 Bishop Robert Unknown Uncertain NaN San Bernardino California 12/19/2019 6 6_San Bernardino 6071 NaN NaN NaN
2236 UCP3793 1/1/2007 Lopez Agnes Female White / Caucasian Fullerton Orange California 5/4/2017 6 6_Orange 6059 fullerton 6059_fullerton Fullerton

In [245]:
# Check unique values in new dataframe field
unclaimed_df['GNIS_city'].unique()


Out[245]:
array(['Orange', 'San Juan Capistrano', nan, 'Fullerton', 'Anaheim',
       'Santa Ana', 'Portland', 'Yakima', 'Oklahoma City', 'Boise',
       'New York', 'Bronx', 'Atlanta', 'Garberville', 'Waipahu',
       'Gig Harbor', 'Knoxville', 'Reno', 'Westminster', 'Tacoma',
       'Norfolk', 'Brooklyn', 'Queens', 'Springfield', 'Chattanooga',
       'Honolulu', 'Saint Louis', 'Framingham', 'Chula Vista',
       'West Haven', 'Far Rockaway', 'East Elmhurst', 'Richmond Hill',
       'Anderson', 'Cambridge', 'Everett', 'Roxbury', 'Houston',
       'El Centro', 'Staten Island', 'University Place', 'Merced',
       'Spokane', 'Stanton', 'Los Angeles', 'Worcester', 'Natchitoches',
       'Detroit', 'El Paso', 'Flushing', 'Northampton', 'Oakland',
       'Garden City', 'Philadelphia', 'San Diego', 'Fountain Valley',
       'Wilmington', 'McAllen', 'Boston', 'Hoquiam', 'Steilacoom',
       'Marathon', 'Seattle', 'Millington', 'Reading', 'Buena Park',
       'Mansfield', 'Wahiawa', 'El Cajon', 'Albany', 'Lakewood',
       'Huntington Beach', 'Muskogee', 'Joliet', 'Lovelock', 'Fife',
       'Lake Forest', 'Metairie', 'Federal Way', 'Manchester', 'Aberdeen',
       'Westwego', 'Manhattan', 'Jamaica', 'Mission', 'Elmhurst',
       'Astoria', 'Easthampton', 'Stoneham', 'Methuen', 'Charleston',
       'Milford', 'Costa Mesa', 'Lipscomb', 'Denver', 'Nampa', 'Roy',
       'Tulsa', 'Council Bluffs', 'Memphis', 'Vestavia Hills', 'Powell',
       'La Habra', 'Virginia Beach', 'Bonney Lake', 'Arverne',
       'New Haven', 'Forest Hills', 'Wapato', 'Orting', 'Puyallup',
       'Fresh Meadows', 'Haleiwa', 'Eureka', 'Norwalk', 'Socorro',
       'Rego Park', 'Key West', 'Maple Falls', 'Beverly', 'Bessemer',
       'Chelsea', 'Dorchester', 'Quincy', 'Salt Lake City', 'Las Vegas',
       'Riverton', 'Youngstown', 'East Point', 'Lawrence', 'Oak Ridge',
       'West Hartford', 'Concrete', 'Greenfield', 'Johnson City',
       'Highland Park', 'Dana Point', 'Middletown', 'Hollis',
       'Fort Myers', 'Pleasant Grove', 'Ewa Beach', 'Patton',
       'Birmingham', 'Des Moines', 'Naugatuck', 'Mauston', 'Washington',
       'La Conner', 'Brighton', 'Casa Grande', 'Long Beach', 'Springdale',
       'Randolph', 'Stock Island', 'South Houston', 'Hoover', 'Norman',
       'Greenback', 'San Francisco', 'LaBelle', 'Clinton', 'Columbia',
       'Arlington', 'Roslindale', 'Pigeon Forge', 'Sunnyside', 'Wheeling',
       'Belton', 'Wethersfield', 'Stamford', 'Gallup', 'Schwenksville',
       'Corona', 'Airway Heights', 'Spring', 'Newark', 'Cape Coral',
       'East Hartford', 'Saint Albans', 'San Carlos', 'North Fort Myers',
       'Hartford', 'Buena', 'Lynn', 'Fayetteville', 'Broken Arrow',
       'Pelzer', 'Brush', 'Phoenixville', 'North Haven', 'Meriden',
       'Toppenish', 'Redford', 'Waianae', 'Los Alamitos', 'Union City',
       'Bridgeport', 'Bethany Beach', 'Barnstable', 'Happy Camp',
       'Texas City', 'Henderson', 'Fitchburg', 'Midway City', 'Augusta',
       'Alamo', 'Brockton', 'Tustin', 'Kapolei', 'Spanaway', 'Aiea',
       'Garden Grove', 'Bristol', 'Waterbury', 'Kaneohe', 'Zillah',
       'Baytown', 'San Bernardino', 'New Boston', 'Jamaica Plain',
       'West Reading', 'Morris', 'Graham', 'New Bedford', 'National City',
       'Laguna Beach', 'Monroe', 'Pullman', 'Calexico', 'Battle Creek',
       'Rowland Heights', 'Selah', 'San Clemente', 'Oceanside',
       'Groveland', 'Somerville', 'Parker', 'Soddy-Daisy', 'Uxbridge',
       'La Palma', 'Mount Vernon', 'Rockaway Park', 'Lemon Grove',
       'Crest Hill', 'Lytle Creek', 'La Mesa', 'Norwood', 'Gustine',
       'Attleboro', 'White Swan', 'Piedmont', 'Lynnwood', 'Oak Harbor',
       'Cypress', 'Harvey', 'Lyons', 'Winterhaven', 'Lowell', 'Rocky Top',
       'Alexandria', 'Laguna Niguel', 'South Boston', 'Meridian',
       'Montclair', 'Chicopee', 'Yucca Valley', 'Kahuku', 'Vian',
       'Sedro-Woolley', 'Brea', 'Victoria', 'Carson', 'Laguna Woods',
       'Dickinson', 'Barstow', 'Spring Valley', 'Charlestown',
       'Long Island City', 'Encinitas', 'Vista', 'Tahlequah',
       'Bolingbrook', 'Germantown', 'Satsuma', 'Woodruff', 'Groton',
       'Trenton', 'College Park', 'Plymouth', 'Edmond', 'Granite Falls',
       'Red Bank', 'Villa Park', 'Danvers', 'Phoenix', 'Escondido',
       'Bartlesville', 'Campbell', 'La Porte', 'Darrington', 'Hayward',
       'Pasadena', 'Delavan', 'New Britain', 'Union Gap', 'Williamstown',
       'Muldrow', 'Tekoa', 'Arivaca', 'Center Point', 'Sevierville',
       'Holtville', 'Newport News', 'Holyoke', 'New Caney', 'Gloucester',
       'Hatfield', 'Whitestone', 'Mountlake Terrace', 'North Adams',
       'East Boston', 'Fallbrook', 'Burlington', 'Midwest City',
       'McKinleyville', 'Penitas', 'Jackson', 'Highland', 'Sparks',
       'Georgetown', 'Placentia', 'Marion', 'Bremerton', 'Amesbury',
       'Sandy Springs', 'Hampton', 'Port Orchard', 'Jefferson',
       'Hartsville', 'Brookline', 'Dulzura', 'Sun Valley', 'Willis',
       'Brownstown', 'Genoa', 'Danbury', 'Horizon City', 'Adamsville',
       'Sumner', 'Rio Dell', 'LaFollette', 'Irvine', 'Paramount',
       'Braidwood', 'Kailua', 'North Charleston', 'Yonkers', 'Ashville',
       'Hacienda Heights', 'Santee', 'Snohomish', 'Paterson', 'Kuna',
       'Kenner', 'Galveston', 'Redlands', 'Waltham', 'Palo Verde',
       'Newport Beach', 'South Norwalk', 'Green Valley', 'Edmonds',
       'New Brunswick', 'Leominster', 'Lake Stevens', 'Somerset',
       'Kokomo', 'New London', 'Dedham', 'Sterling', 'Silverado',
       'Belmont', 'Cleveland', 'Mohave Valley', 'Fairfield', 'Frankfort',
       'Lake Tapps', 'Katy', 'Westport', 'Madison', 'Montesano',
       'Artesia', 'Mission Viejo', 'Covina', 'San Elizario', 'McAlester',
       'Sylmar', 'Seal Beach', 'Lake Charles', 'Ooltewah', 'Crestline',
       'Mount Pleasant', 'Fortuna', 'Payson', 'Whittier', 'New Lenox',
       'Castle Rock', 'Thompson', 'Wallingford', 'Gila Bend',
       'South Deerfield', 'South Prairie', 'Saint Augustine', 'Creedmoor',
       'Galesburg', 'Rockford', 'Marina del Rey', 'Capistrano Beach',
       'Middlefield', 'Crossville', 'Tucson', 'Perth Amboy', 'Abram',
       'Norwich', 'Ramona', 'Jenks', 'Galena Park', 'Miami', 'Hidalgo',
       'Stratford', 'Haverhill', 'Sells', 'Gray', 'Stroud', 'Niland',
       'Enfield', 'Woodside', 'Peabody', 'Imperial', 'Littleton',
       'Revere', 'Riverside', 'Luttrell', 'Buckley', 'Charlotte',
       'Lockport', 'Bacliff', 'Afton', 'Muskegon', 'Wilton', 'Elma',
       'Wernersville', 'Pendleton', 'Anacortes', 'Quapaw', 'Vinita',
       'Solway', 'Weymouth', 'Onset', 'Narberth', 'Highlands',
       'San Ysidro', 'Seabrook', 'Borrego Springs', 'Mohnton',
       'Rhinelander', 'Sierra Blanca', 'Atlantic City', 'Newton',
       'Immokalee', 'Turlock', 'Carlsbad', 'West Lawn', 'Jackson Heights',
       'Bolton', 'Tewksbury', 'Kalamazoo', 'Crosby', 'Foyil',
       'East Lansing', 'Dover', 'Newtown', 'Fall River', 'Bristow',
       'Longbranch', 'Eatonville', 'South Tucson', 'Bridgewater',
       'Westborough', 'Lake Bay', 'Stanwood', 'Centerville', 'Richmond',
       'Woodhaven', 'Calipatria', 'Whitman', 'Medford', 'East Haddam',
       'Windsor', 'Concord', 'Monticello', 'Plainfield', 'Hapeville',
       'Melrose', 'Pisinemo', 'Jefferson City', 'Hull', 'Womelsdorf',
       'Parkersburg', 'El Reno', 'Renton', 'Pomona', 'Irondale',
       'Fontana', 'Locust Grove', 'Conroe', 'Trabuco Canyon', 'Capron',
       'New Berlinville', 'Hailey', 'Chicago', 'Agawam', 'Huntington',
       'Sand Springs', 'Lancaster', 'San Leon', 'Ionia', 'Briceville',
       'Rocky Hill', 'Rockland', 'Las Cruces', 'Cedar Knoll Trailer Park',
       'Auburn', 'Laureldale', 'College Point', 'Necedah', 'Canutillo',
       'Chouteau', 'Tavernier', 'Maryville', 'Dennis', 'Tarrant',
       'Marlborough', 'Kentland', 'Heiskell', 'Benson', 'Swampscott',
       'San Marcos', 'Freehold', 'Merrimac', 'Gardner', 'Woburn', 'Salem',
       'Humble', 'Northport', 'Berlin', 'Big Pine', 'Gold Bar',
       'Downingtown', 'Why', 'Marana', 'Harwich', 'Avondale', 'Brentwood',
       'Brookshire', 'Cocoa', 'Hyannis', 'Laughlin', 'Moreno Valley',
       'New Cumberland', 'Newell', 'Ocala', 'Pikeville', 'Romulus',
       'Spokane Valley', 'Taunton'], dtype=object)

In [246]:
# check null values [NOTE: ]
unclaimed_city_null_df = unclaimed_df.loc[unclaimed_df['GNIS_city'].isnull()]
unclaimed_city_null_df.shape
# unclaimed_city_null_df


Out[246]:
(2965, 16)

In [247]:
# As needed, export nulls to address [NOTE:]
# unclaimed_city_null_df.to_csv('unclaimed_city_nulls.csv', encoding='utf-8')

In [ ]:

Map city_dict to unidentified_df to see if missing values


In [248]:
# check dataframe
unidentified_df.head()


Out[248]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1 1_Autauga 1001
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1 1_Autauga 1001
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1 1_Baldwin 1003
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1 1_Baldwin 1003
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1 1_Bibb 1007

In [249]:
# check length of dataframe
len(unidentified_df)


Out[249]:
13260

In [250]:
unidentified_df['City'] = unidentified_df['City'].str.replace("?","")

In [251]:
# make city names titled
unidentified_df['City_string'] = unidentified_df['City'].str.title()
unidentified_df.head()


Out[251]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1 1_Autauga 1001 Marbury
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1 1_Autauga 1001 Prattville
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1 1_Baldwin 1003 Elberta
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1 1_Baldwin 1003 NaN
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1 1_Bibb 1007 NaN

In [252]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("."," ")

In [253]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("Ft","fort")

In [254]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("St ","saint")

In [255]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("Ste ","saint")

In [256]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("Mt","mount")

In [257]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("^S ","south")

In [258]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("^E ","east")

In [259]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("^N ","north")

In [260]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("^W ","west")

In [261]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("Twp","")

In [262]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("Township","")

In [263]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("Near ","")

In [264]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("Vicinity Of ","")

In [265]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("North Of ","")

In [266]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("Northeast Of ","")

In [267]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("East Of ","")

In [268]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("Southeast Of ","")

In [269]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("South Of ","")

In [270]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("Southwest Of ","")

In [271]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("West Of ","")

In [272]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("Northwest Of ","")

In [273]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace(" Vicinity","")

In [274]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace(" Dc","")

In [275]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace(" District Of Columbia","")

In [276]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace(",","")

In [277]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("'","")

In [278]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("-","")

In [279]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("/","")

In [280]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("?","")

In [281]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace(" ","")

In [282]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace("County","")

In [283]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.lower()
unidentified_df.head()


Out[283]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1 1_Autauga 1001 marbury
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1 1_Autauga 1001 prattville
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1 1_Baldwin 1003 elberta
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1 1_Baldwin 1003 NaN
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1 1_Bibb 1007 NaN

In [284]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace('unknown','', regex=False)

In [285]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace('undetermined','', regex=False)

In [286]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace('unincorporated','', regex=False)

In [287]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace('rural','', regex=False)

In [288]:
unidentified_df['City_string'] = unidentified_df['City_string'].str.replace('.*\d.*', '', regex=True)

In [289]:
unidentified_df['City_string'] = unidentified_df['City_string'].replace(r'^\s*$', np.NaN, regex=True)
unidentified_df.head()


Out[289]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1 1_Autauga 1001 marbury
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1 1_Autauga 1001 prattville
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1 1_Baldwin 1003 elberta
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1 1_Baldwin 1003 NaN
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1 1_Bibb 1007 NaN

In [290]:
# check null values [NOTE: ]
unidentified_citystring_null_df = unidentified_df.loc[unidentified_df['City_string'].isnull()]
# unidentified_citystring_null_df.shape
unidentified_citystring_null_df


Out[290]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1 1_Baldwin 1003 NaN
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1 1_Bibb 1007 NaN
5 UP512 10/31/2005 33.0 43.0 NaN Blount Alabama Male White / Caucasian 5/28/2018 1 1_Blount 1009 NaN
32 UP13161 11/3/1982 29.0 32.0 NaN Lee Alabama Female Black / African American 7/10/2015 1 1_Lee 1081 NaN
38 UP888 4/15/1997 19.0 34.0 NaN Marshall Alabama Male White / Caucasian 6/8/2018 1 1_Marshall 1095 NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
13217 UP4762 8/27/1993 39.0 60.0 NaN Kenosha Wisconsin Male Uncertain 12/7/2018 55 55_Kenosha 55059 NaN
13253 UP13898 4/29/2015 40.0 65.0 NaN Winnebago Wisconsin Male White / Caucasian 1/29/2020 55 55_Winnebago 55139 NaN
13257 UP9970 4/13/1992 16.0 21.0 NaN Sheridan Wyoming Female White / Caucasian 3/20/2020 56 56_Sheridan 56033 NaN
13258 UP9973 8/27/1982 23.0 28.0 NaN Sweetwater Wyoming Male White / Caucasian 3/20/2020 56 56_Sweetwater 56037 NaN
13259 UP8894 3/1/1992 24.0 32.0 NaN Sweetwater Wyoming Female White / Caucasian, Hispanic / Latino 3/20/2020 56 56_Sweetwater 56037 NaN

2586 rows × 14 columns


In [291]:
# Add column with compound field key
unidentified_df['County_city'] = unidentified_df['County_FIPS'].astype(str) + "_" + unidentified_df['City_string']
unidentified_df.head()


Out[291]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string County_city
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1 1_Autauga 1001 marbury 1001_marbury
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1 1_Autauga 1001 prattville 1001_prattville
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1 1_Baldwin 1003 elberta 1003_elberta
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1 1_Baldwin 1003 NaN NaN
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1 1_Bibb 1007 NaN NaN

In [292]:
# Add new column to dataframe, using the County_city name field as a key in the city_dict, to pull the GNIS city name for each row
unidentified_df['GNIS_city'] = unidentified_df['County_city'].map(city_dict)
unidentified_df.head()


Out[292]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string County_city GNIS_city
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1 1_Autauga 1001 marbury 1001_marbury Marbury
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1 1_Autauga 1001 prattville 1001_prattville Prattville
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1 1_Baldwin 1003 elberta 1003_elberta Elberta
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1 1_Baldwin 1003 NaN NaN NaN
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1 1_Bibb 1007 NaN NaN NaN

In [293]:
# Check unique values in new dataframe field
unidentified_df['GNIS_city'].unique()


Out[293]:
array(['Marbury', 'Prattville', 'Elberta', ..., 'Foxpark', 'Wright',
       'Cheyenne'], dtype=object)

In [294]:
# check null values [NOTE: ]
unidentified_city_null_df = unidentified_df.loc[unidentified_df['GNIS_city'].isnull()]
unidentified_city_null_df.shape
# unidentified_city_null_df


Out[294]:
(3113, 16)

In [295]:
# As needed, export nulls to address [NOTE:]
# unidentified_city_null_df.to_csv('unidentified_city_nulls.csv', encoding='utf-8')

PART 5: Load in state and county polygon shapefiles and convert to GeoJSONs


In [ ]:
# Load state shapefile
state_shapefile_gdf = gpd.read_file('Shapefiles/state_polygons.shp')

In [ ]:
state_shapefile_gdf.plot()

In [ ]:
# write to geoJSON
state_shapefile_gdf.to_file("JSON/state_polygons.json", driver="GeoJSON", encoding='utf-8')

In [ ]:
# load county shapefile
county_shapefile_gdf = gpd.read_file('Shapefiles/county_polygons.shp')

In [ ]:
county_shapefile_gdf.plot()

In [ ]:
# write to geoJSON
county_shapefile_gdf.to_file("JSON/county_polygons.json", driver="GeoJSON", encoding='utf-8')

PART 6: State-level summary data (count for all 3 databases, by state)

1/5: Get count of missing person cases


In [ ]:
missing_count = missing_df.groupby('State').count()
len(missing_count)
missing_count.head()

In [ ]:
# Remove all columns except case number count
missing_count = missing_count.drop(columns=['DLC','Last Name', 'First Name', 'Missing Age', 'City', 'County', 'Sex', 'Race / Ethnicity', 'Date Modified', 'State_FIPS', 'State_County', 'County_FIPS', 'City_string', 'County_city', 'GNIS_city'])

In [ ]:
# add column for state (since state is now index)
missing_count['State'] = missing_count.index

In [ ]:
# rename case number count column
missing_count = missing_count.rename(columns = {'Case Number': 'Missing_CaseCount'}, inplace = False)

In [ ]:
# check dataframe
missing_count.head()

In [ ]:
# make dictionary of states and missing person counts
missing_statecount_dict = dict(zip(missing_count.State, missing_count.Missing_CaseCount))
len(missing_statecount_dict)
# type(missing_statecount_dict['Alabama'])

In [ ]:
# Get count of values in missing database w/ no state assigned
mis_null_series = missing_df.loc[missing_df['State']=='None'].count()
mis_null_ct = mis_null_series['Case Number']
mis_null_ct

2/5: Get count of unclaimed persons


In [ ]:
unclaimed_count = unclaimed_df.groupby('State').count()
# len(unclaimed_count)
unclaimed_count.head()

In [ ]:
# Remove all columns except case number count
unclaimed_count = unclaimed_count.drop(columns=['DBF','Last Name', 'First Name', 'Sex', 'Race / Ethnicity', 'City', 'County', 'Date Modified', 'State_FIPS', 'State_County', 'County_FIPS', 'City_string', 'County_city', 'GNIS_city'])

In [ ]:
# add column for state (since state is now index)
unclaimed_count['State'] = unclaimed_count.index

In [ ]:
# rename case number count column
unclaimed_count = unclaimed_count.rename(columns = {'Case Number': 'Unclaimed_CaseCount'}, inplace = False)

In [ ]:
# check dataframe
unclaimed_count.head()

In [ ]:
# make dictionary of states and unclaimed case counts
unclaimed_statecount_dict = dict(zip(unclaimed_count.State, unclaimed_count.Unclaimed_CaseCount))
len(unclaimed_statecount_dict)
# unclaimed_statecount_dict

In [ ]:
# Get count of values in unclaimed database w/ no state assigned
unc_null_series = unclaimed_df.loc[unclaimed_df['State']=='None'].count()
unc_null_ct = unc_null_series['Case Number']
unc_null_ct

3/5: Get count of unidentified persons


In [ ]:
unidentified_count = unidentified_df.groupby('State').count()
# len(unidentified_count)
unidentified_count.head()

In [ ]:
# Remove all columns except case number count
unidentified_count = unidentified_count.drop(columns=['DBF','Age From', 'Age To', 'City', 'County', 'Sex', 'Race / Ethnicity', 'Date Modified', 'State_FIPS', 'State_County', 'County_FIPS', 'City_string', 'County_city', 'GNIS_city'])

In [ ]:
# add column for state (since state is now index)
unidentified_count['State'] = unidentified_count.index

In [ ]:
# rename case number count column
unidentified_count = unidentified_count.rename(columns = {'Case Number': 'Unidentified_CaseCount'}, inplace = False)

In [ ]:
# check dataframe
unidentified_count.head()

In [ ]:
# make dictionary of states and unidentified case counts
unidentified_statecount_dict = dict(zip(unidentified_count.State, unidentified_count.Unidentified_CaseCount))
len(unidentified_statecount_dict)
# unidentified_statecount_dict

In [ ]:
# Get count of values in unidentified database w/ no state assigned
uni_null_series = unidentified_df.loc[unidentified_df['State']=='None'].count()
uni_null_ct = uni_null_series['Case Number']
uni_null_ct

4/5: Make summary dataframe based on state centroids


In [ ]:
# make a new summary dataframe based on the state centroids
summary_df = state_centroids_v2_df
# sort by state name
summary_df = summary_df.sort_values(by=['STATEFP'])
summary_df.head()

In [ ]:
# Remove all columns except state info and case number counts
summary_df = summary_df.drop(columns=['OBJECTID','STATENS','AFFGEOID','GEOID','LSAD','ALAND','AWATER','ORIG_FID'])
summary_df.head()

In [ ]:
len(summary_df)

4a: Add Missing Person count for each state


In [ ]:
# Add new column to dataframe, using the state name field as a key in the missing_dict, to pull the correct missing case count for each state
summary_df['Missing_Count'] = summary_df['NAME'].map(missing_statecount_dict)
summary_df.head()

In [ ]:
# Check null values [NOTE: seems fine to have nulls]
missing_null_df = summary_df.loc[summary_df['Missing_Count'].isnull()]
missing_null_df

4b: Add Unclaimed Person count for each state


In [ ]:
# Add new column to dataframe, using the state name field as a key in the unclaimed_dict, to pull the correct unclaimed case count for each state
summary_df['Unclaimed_Count'] = summary_df['NAME'].map(unclaimed_statecount_dict)
summary_df.head()

In [ ]:
# Check null values [NOTE: seems fine to have nulls]
unclaimed_null_df = summary_df.loc[summary_df['Unclaimed_Count'].isnull()]
unclaimed_null_df

In [ ]:
# No longer needed, since summary dataframe now made AFTER data cleaning and adding State with FIPS 99
# # # change NaN Unclaimed count for fake FIPS 99 to count of values in missing database w/ no state assigned (21)
# index_Series = summary_df.loc[summary_df['STATEFP']==99]
# index_None = index_Series.index[0]
# summary_df.loc[index_None, 'Unclaimed_Count'] = unc_null_ct
# # check value
# summary_df['Unclaimed_Count'][index_None]

4c: Add Unidentified Person count for each state


In [ ]:
# Add new column to dataframe, using the state name field as a key in the unidentified_dict, to pull the correct unidentified case count for each state
summary_df['Unidentified_Count'] = summary_df['NAME'].map(unidentified_statecount_dict)
summary_df.head()

In [ ]:
# Check null values [NOTE: seems fine to have nulls]
unidentified_null_df = summary_df.loc[summary_df['Unidentified_Count'].isnull()]
unidentified_null_df

4d: Add column for total count of cases in all three databases for each state


In [ ]:
summary_df.head()

In [ ]:
# Note - may need to change -4 to -3, run, then change back to -4 and re-run. DON'T KNOW WHY
summary_df['Total_Count'] = summary_df.iloc[:, -4:-1].sum(axis=1)
summary_df.head(56)

4e: Convert to geodataframe and export as GeoJSON


In [ ]:
# check final summary_df
summary_df.head()

In [ ]:
# Convert dataframe to geodataframe
summary_gdf = gpd.GeoDataFrame(summary_df, geometry=gpd.points_from_xy(x=summary_df.Lon_dd, y=summary_df.Lat_dd))
summary_gdf.head()

In [ ]:
# write to geoJSON
summary_gdf.to_file("JSON/summary_counts.json", driver="GeoJSON", encoding='utf-8')

5/5: Make summary dataframe based on state polygons


In [ ]:
# load state json
summary_state_poly_gdf = gpd.read_file('JSON/state_polygons.json')

In [ ]:
summary_state_poly_gdf.head()

In [ ]:
# Remove all columns except county info and case number counts
summary_state_poly_gdf = summary_state_poly_gdf.drop(columns=['STATENS','AFFGEOID','GEOID', 'LSAD','ALAND','AWATER', 'Shape_Leng', 'Shape_Area'])
summary_state_poly_gdf.head()

In [ ]:
len(summary_state_poly_gdf)

In [ ]:
# sort by state FIPS
summary_state_poly_gdf = summary_state_poly_gdf.sort_values(by=['STATEFP'])
summary_state_poly_gdf.head()

5a: Add Missing Person count for each state


In [ ]:
# Add new column to dataframe, using the state name field as a key in the missing_dict, to pull the correct missing case count for each state
summary_state_poly_gdf['Missing_Count'] = summary_state_poly_gdf['NAME'].map(missing_statecount_dict)
summary_state_poly_gdf.head()

5b: Add Unclaimed Person count for each state


In [ ]:
# Add new column to dataframe, using the state name field as a key in the unclaimed_dict, to pull the correct unclaimed case count for each state
summary_state_poly_gdf['Unclaimed_Count'] = summary_state_poly_gdf['NAME'].map(unclaimed_statecount_dict)
summary_state_poly_gdf.head()

5c: Add Unidentified Person count for each state


In [ ]:
# Add new column to dataframe, using the state name field as a key in the unidentified_dict, to pull the correct unidentified case count for each state
summary_state_poly_gdf['Unidentified_Count'] = summary_state_poly_gdf['NAME'].map(unidentified_statecount_dict)
summary_state_poly_gdf.head()

5d: Add column for total count of cases in all three databases for each state


In [ ]:
summary_state_poly_gdf.head()

In [ ]:
# Note - may need to change -4 to -3, run, then change back to -4 and re-run. DON'T KNOW WHY
summary_state_poly_gdf['Total_Count'] = summary_state_poly_gdf.iloc[:, -4:-1].sum(axis=1)
summary_state_poly_gdf.head(56)

5e: Export as GeoJSON


In [ ]:
# check final summary_df
summary_state_poly_gdf.head()

In [ ]:
# write to geoJSON
summary_state_poly_gdf.to_file("JSON/state_poly_counts.json", driver="GeoJSON", encoding='utf-8')

PART 7: County-level summary data (count for all 3 databases, by county)

1/5: Get count of missing person cases at county level


In [ ]:
missing_df.head()

In [ ]:
missing_county_count = missing_df.groupby('County_FIPS').count()
# len(missing_county_count)
missing_county_count.head()

In [ ]:
# Remove all columns except case number count
missing_county_count = missing_county_count.drop(columns=['DLC','Last Name', 'First Name', 'Missing Age', 'City', 'County', 'State', 'Sex', 'Race / Ethnicity', 'Date Modified', 'State_FIPS', 'State_County', 'City_string', 'County_city', 'GNIS_city'])

In [ ]:
# add column for county FIPS (since county FIPS is now index)
missing_county_count['County_FIPS'] = missing_county_count.index

In [ ]:
# rename case number count column
missing_county_count = missing_county_count.rename(columns = {'Case Number': 'Missing_CaseCount'}, inplace = False)

In [ ]:
# check dataframe
missing_county_count.head()

In [ ]:
# make dictionary of county_FIPS and missing person counts
missing_countycount_dict = dict(zip(missing_county_count.County_FIPS, missing_county_count.Missing_CaseCount))
len(missing_countycount_dict)
# missing_countycount_dict[1001]

2/5: Get count of unclaimed person cases at county level


In [ ]:
unclaimed_df.head()

In [ ]:
unclaimed_county_count = unclaimed_df.groupby('County_FIPS').count()
# len(unclaimed_county_count)
unclaimed_county_count.head()

In [ ]:
# Remove all columns except case number count
unclaimed_county_count = unclaimed_county_count.drop(columns=['DBF','Last Name', 'First Name', 'Sex', 'Race / Ethnicity', 'City', 'County', 'State', 'Date Modified', 'State_FIPS', 'State_County', 'City_string', 'County_city', 'GNIS_city'])

In [ ]:
# add column for county FIPS (since county FIPS is now index)
unclaimed_county_count['County_FIPS'] = unclaimed_county_count.index

In [ ]:
# rename case number count column
unclaimed_county_count = unclaimed_county_count.rename(columns = {'Case Number': 'Unclaimed_CaseCount'}, inplace = False)

In [ ]:
# check dataframe
unclaimed_county_count.head()

In [ ]:
# make dictionary of county_FIPS and missing person counts
unclaimed_countycount_dict = dict(zip(unclaimed_county_count.County_FIPS, unclaimed_county_count.Unclaimed_CaseCount))
len(unclaimed_countycount_dict)
# unclaimed_countycount_dict

3/5: Get count of unidentified person cases at county level


In [ ]:
unidentified_df.head()

In [ ]:
unidentified_county_count = unidentified_df.groupby('County_FIPS').count()
# len(unidentified_county_count)
unidentified_county_count.head()

In [ ]:
# Remove all columns except case number count
unidentified_county_count = unidentified_county_count.drop(columns=['DBF','Age From', 'Age To', 'City', 'County', 'State', 'Sex', 'Race / Ethnicity', 'Date Modified', 'State_FIPS', 'State_County', 'City_string', 'County_city', 'GNIS_city'])

In [ ]:
# add column for county FIPS (since county FIPS is now index)
unidentified_county_count['County_FIPS'] = unidentified_county_count.index

In [ ]:
# rename case number count column
unidentified_county_count = unidentified_county_count.rename(columns = {'Case Number': 'Unidentified_CaseCount'}, inplace = False)

In [ ]:
# check dataframe
unidentified_county_count.head()

In [ ]:
# make dictionary of county_FIPS and missing person counts
unidentified_countycount_dict = dict(zip(unidentified_county_count.County_FIPS, unidentified_county_count.Unidentified_CaseCount))
len(unidentified_countycount_dict)
# unidentified_countycount_dict

4/5: Make summary county-level dataframe based on county centroids


In [ ]:
county_centroids_v2_df.head()

In [ ]:
len(county_centroids_v2_df)

In [ ]:
# make a new summary dataframe based on the county centroids
summary_county_df = county_centroids_v2_df
# sort by county FIPS
summary_county_df = summary_county_df.sort_values(by=['GEOID'])
summary_county_df.head()

In [ ]:
# Remove all columns except county info and case number counts
summary_county_df = summary_county_df.drop(columns=['OBJECTID','COUNTYFP','COUNTYNS','AFFGEOID','LSAD','ALAND','AWATER','ORIG_FID'])
summary_county_df.head()

In [ ]:
len(summary_county_df)

4a: Add Missing Person count for each county


In [ ]:
# Add new column to dataframe, using the county FIPS field as a key in the missing_county_dict, to pull the correct missing case count for each county
summary_county_df['Missing_Count'] = summary_county_df['GEOID'].map(missing_countycount_dict)
summary_county_df.head()

In [ ]:
# Check null values [NOTE: fine to have nulls]
missing_county_null_df = summary_county_df.loc[summary_county_df['Missing_Count'].isnull()]
missing_county_null_df

4b: Add Unclaimed Person count for each county


In [ ]:
# Add new column to dataframe, using the county FIPS field as a key in the unclaimed_county_dict, to pull the correct unclaimed case count for each county
summary_county_df['Unclaimed_Count'] = summary_county_df['GEOID'].map(unclaimed_countycount_dict)
summary_county_df.head()

In [ ]:
# Check null values [NOTE: fine to have nulls]
unclaimed_county_null_df = summary_county_df.loc[summary_county_df['Unclaimed_Count'].isnull()]
unclaimed_county_null_df

4c: Add Unidentified Person count for each county


In [ ]:
# Add new column to dataframe, using the county_FIPS field as a key in the unidentified_county_dict, to pull the correct unidentified case count for each county
summary_county_df['Unidentified_Count'] = summary_county_df['GEOID'].map(unidentified_countycount_dict)
summary_county_df.head()

In [ ]:
# Check null values [NOTE: fine to have nulls]
unidentified_county_null_df = summary_county_df.loc[summary_county_df['Unidentified_Count'].isnull()]
unidentified_county_null_df

4d: Add column for total count of cases in all three databases for each county


In [ ]:
summary_county_df.head()

In [ ]:
# Note - may need to change -4 to -3, run, then change back to -4 and re-run. DON'T KNOW WHY
summary_county_df['Total_Count'] = summary_county_df.iloc[:, -4:-1].sum(axis=1)
summary_county_df.head()

4e: Convert to geodataframe and export as GeoJSON


In [ ]:
# check final summary_county_df
summary_county_df.head()

In [ ]:
len(summary_county_df)

In [ ]:
# Convert dataframe to geodataframe
summary_county_gdf = gpd.GeoDataFrame(summary_county_df, geometry=gpd.points_from_xy(x=summary_county_df.Lon_dd, y=summary_county_df.Lat_dd))
summary_county_gdf.head()

In [ ]:
len(summary_county_gdf)

In [ ]:
# write to geoJSON
summary_county_gdf.to_file("JSON/county_counts.json", driver="GeoJSON", encoding='utf-8')

5/5: Make summary county-level dataframe based on county polygons


In [ ]:
# load county json
summary_county_poly_gdf = gpd.read_file('JSON/county_polygons.json')

In [ ]:
summary_county_poly_gdf.head()

In [ ]:
# Remove all columns except county info and case number counts
summary_county_poly_gdf = summary_county_poly_gdf.drop(columns=['COUNTYFP','COUNTYNS','AFFGEOID','LSAD','ALAND','AWATER','Shape_Leng', 'Shape_Area'])
summary_county_poly_gdf.head()

In [ ]:
len(summary_county_poly_gdf)

In [ ]:
# sort by county FIPS
summary_county_poly_gdf = summary_county_poly_gdf.sort_values(by=['GEOID'])
summary_county_poly_gdf.head()

In [ ]:
type(summary_county_poly_gdf['GEOID'][0])

In [ ]:
summary_county_poly_gdf['GEOID'] = summary_county_poly_gdf['GEOID'].astype(int)

In [ ]:
type(summary_county_poly_gdf['GEOID'][0])

5a: Add Missing Person count for each county


In [ ]:
# Add new column to dataframe, using the county FIPS field as a key in the missing_county_dict, to pull the correct missing case count for each county
summary_county_poly_gdf['Missing_Count'] = summary_county_poly_gdf['GEOID'].map(missing_countycount_dict)
summary_county_poly_gdf.head()

5b: Add Unclaimed Person count for each county


In [ ]:
# Add new column to dataframe, using the county FIPS field as a key in the unclaimed_county_dict, to pull the correct unclaimed case count for each county
summary_county_poly_gdf['Unclaimed_Count'] = summary_county_poly_gdf['GEOID'].map(unclaimed_countycount_dict)
summary_county_poly_gdf.head()

5c: Add Unidentified Person count for each county


In [ ]:
# Add new column to dataframe, using the county_FIPS field as a key in the unidentified_county_dict, to pull the correct unidentified case count for each county
summary_county_poly_gdf['Unidentified_Count'] = summary_county_poly_gdf['GEOID'].map(unidentified_countycount_dict)
summary_county_poly_gdf.head()

5d: Add column for total count of cases in all three databases for each county


In [ ]:
summary_county_poly_gdf.head()

In [ ]:
# Note - may need to change -4 to -3, run, then change back to -4 and re-run. DON'T KNOW WHY
summary_county_poly_gdf['Total_Count'] = summary_county_poly_gdf.iloc[:, -4:-1].sum(axis=1)
summary_county_poly_gdf.head()

5e: Export as GeoJSON


In [ ]:
# check final summary_county_poly_gdf
summary_county_poly_gdf.head()

In [ ]:
len(summary_county_poly_gdf)

In [ ]:
# write to geoJSON
summary_county_poly_gdf.to_file("JSON/county_poly_counts.json", driver="GeoJSON", encoding='utf-8')

In [ ]:

PART 8: City-level summary data (count for all 3 databases, by city)

1/4: Get count of missing person cases at city level


In [296]:
missing_df.head()


Out[296]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string County_city GNIS_city
1979 MP1 10/1/1978 Allen Anthony 16 Fort Smith Sebastian Arkansas Male White / Caucasian 2/13/2020 5 5_Sebastian 5131 fortsmith 5131_fortsmith Fort Smith
14452 MP10 2/4/2000 Toliver Charles 30 Clinton Anderson Tennessee Male White / Caucasian 8/5/2019 47 47_Anderson 47001 clinton 47001_clinton Clinton
14969 MP100 8/16/1995 Butler James 39 Kingsport Sullivan Tennessee Male White / Caucasian 7/29/2019 47 47_Sullivan 47163 kingsport 47163_kingsport Kingsport
8026 MP10000 8/20/2003 Hamilton Carole 32 Owensboro Daviess Kentucky Female White / Caucasian 3/10/2020 21 21_Daviess 21059 owensboro 21059_owensboro Owensboro
11898 MP10002 12/13/2007 Ratynski Edward 53 Fallsburg Sullivan New York Male White / Caucasian 1/6/2020 36 36_Sullivan 36105 fallsburg 36105_fallsburg Fallsburg

In [297]:
missing_city_count = missing_df.groupby('County_city').count()
# len(missing_city_count)
missing_city_count.head()


Out[297]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string GNIS_city
County_city
10001_camden 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
10001_felton 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
10001_houston 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
10001_wyoming 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
10003_bear 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

In [298]:
# Remove all columns except case number count
missing_city_count = missing_city_count.drop(columns=['DLC','Last Name', 'First Name', 'Missing Age', 'City', 'County', 'State', 'Sex', 'Race / Ethnicity', 'Date Modified', 'State_FIPS', 'State_County', 'County_FIPS', 'City_string', 'GNIS_city'])

In [299]:
# add column for county city (since county city is now index)
missing_city_count['County_city'] = missing_city_count.index

In [300]:
# rename case number count column
missing_city_count = missing_city_count.rename(columns = {'Case Number': 'Missing_CaseCount'}, inplace = False)

In [301]:
# check dataframe
missing_city_count.head()


Out[301]:
Missing_CaseCount County_city
County_city
10001_camden 1 10001_camden
10001_felton 2 10001_felton
10001_houston 1 10001_houston
10001_wyoming 1 10001_wyoming
10003_bear 1 10003_bear

In [302]:
# make dictionary of county_city and missing person counts
missing_city_dict = dict(zip(missing_city_count.County_city, missing_city_count.Missing_CaseCount))
len(missing_city_dict)
# missing_city_dict


Out[302]:
6054

2/4: Get count of unclaimed person cases at city level


In [303]:
unclaimed_df.head()


Out[303]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS City_string County_city GNIS_city
4129 UCP3482 1/1/2004 Green Ellen Female White / Caucasian Orange Orange California 4/18/2017 6 6_Orange 6059 orange 6059_orange Orange
4649 UCP3523 1/1/2005 Baldwin Bette Female White / Caucasian San Juan Capistrano Orange California 4/20/2017 6 6_Orange 6059 sanjuancapistrano 6059_sanjuancapistrano San Juan Capistrano
7297 UCP853 1/1/2006 Eckberg Robert Male White / Caucasian NaN Spokane Washington 4/14/2020 53 53_Spokane 53063 NaN NaN NaN
7256 UCP63328 1/1/2007 Bishop Robert Unknown Uncertain NaN San Bernardino California 12/19/2019 6 6_San Bernardino 6071 NaN NaN NaN
2236 UCP3793 1/1/2007 Lopez Agnes Female White / Caucasian Fullerton Orange California 5/4/2017 6 6_Orange 6059 fullerton 6059_fullerton Fullerton

In [304]:
unclaimed_city_count = unclaimed_df.groupby('County_city').count()
# len(unclaimed_city_count)
unclaimed_city_count.head()


Out[304]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS City_string GNIS_city
County_city
10005_bethanybeach 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1073_adamsville 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1073_bessemer 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
1073_birmingham 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46
1073_centerpoint 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

In [305]:
# Remove all columns except case number count
unclaimed_city_count = unclaimed_city_count.drop(columns=['DBF','Last Name', 'First Name', 'Sex', 'Race / Ethnicity', 'City', 'County', 'State', 'Date Modified', 'State_FIPS', 'State_County', 'County_FIPS', 'City_string', 'GNIS_city'])

In [306]:
# add column for county_city (since county_city is now index)
unclaimed_city_count['County_city'] = unclaimed_city_count.index

In [307]:
# rename case number count column
unclaimed_city_count = unclaimed_city_count.rename(columns = {'Case Number': 'Unclaimed_CaseCount'}, inplace = False)

In [308]:
# check dataframe
unclaimed_city_count.head()


Out[308]:
Unclaimed_CaseCount County_city
County_city
10005_bethanybeach 1 10005_bethanybeach
1073_adamsville 1 1073_adamsville
1073_bessemer 6 1073_bessemer
1073_birmingham 46 1073_birmingham
1073_centerpoint 1 1073_centerpoint

In [309]:
# make dictionary of county_city and missing person counts
unclaimed_city_dict = dict(zip(unclaimed_city_count.County_city, unclaimed_city_count.Unclaimed_CaseCount))
len(unclaimed_city_dict)
# unclaimed_city_dict


Out[309]:
677

3/4: Get count of unidentified person cases at city level


In [310]:
unidentified_df.head()


Out[310]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string County_city GNIS_city
0 UP51903 3/30/1986 0.0 120.0 Marbury Autauga Alabama Female White / Caucasian 1/28/2020 1 1_Autauga 1001 marbury 1001_marbury Marbury
1 UP5000 9/29/2007 40.0 60.0 Prattville Autauga Alabama Female Black / African American 8/12/2019 1 1_Autauga 1001 prattville 1001_prattville Prattville
2 UP6519 1/6/2006 45.0 59.0 Elberta Baldwin Alabama Male White / Caucasian 10/24/2018 1 1_Baldwin 1003 elberta 1003_elberta Elberta
3 UP55409 3/26/2000 0.0 120.0 NaN Baldwin Alabama Male White / Caucasian, Asian, American Indian / Al... 2/13/2020 1 1_Baldwin 1003 NaN NaN NaN
4 UP13483 3/27/1961 14.0 17.0 NaN Bibb Alabama Male White / Caucasian 3/25/2019 1 1_Bibb 1007 NaN NaN NaN

In [311]:
unidentified_city_count = unidentified_df.groupby('County_city').count()
# len(unidentified_city_count)
unidentified_city_count.head()


Out[311]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string GNIS_city
County_city
10001_camden 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
10001_camdenwyoming 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
10001_milford 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
10001_smyrna 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
10003_bear 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

In [312]:
# Remove all columns except case number count
unidentified_city_count = unidentified_city_count.drop(columns=['DBF','Age From', 'Age To', 'City', 'County', 'State', 'Sex', 'Race / Ethnicity', 'Date Modified', 'State_FIPS', 'State_County', 'County_FIPS', 'City_string', 'GNIS_city'])

In [313]:
# add column for county_city (since county_city is now index)
unidentified_city_count['County_city'] = unidentified_city_count.index

In [314]:
# rename case number count column
unidentified_city_count = unidentified_city_count.rename(columns = {'Case Number': 'Unidentified_CaseCount'}, inplace = False)

In [315]:
# check dataframe
unidentified_city_count.head()


Out[315]:
Unidentified_CaseCount County_city
County_city
10001_camden 1 10001_camden
10001_camdenwyoming 1 10001_camdenwyoming
10001_milford 1 10001_milford
10001_smyrna 3 10001_smyrna
10003_bear 1 10003_bear

In [316]:
# make dictionary of county_city and missing person counts
unidentified_city_dict = dict(zip(unidentified_city_count.County_city, unidentified_city_count.Unidentified_CaseCount))
len(unidentified_city_dict)
# unidentified_city_dict


Out[316]:
2956

4/4: Make summary city-level dataframe

Set up summary dataframe


In [317]:
city_df.head()


Out[317]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY
183157 131994 1424087 Orca AK 2 Valdez-Cordova (CA) 261 60.579716 -145.717678 2261 Valdez-Cordova Alaska orca 2261_orca
3892 131923 1420077 Alyeska AK 2 Anchorage 020 60.960833 -149.110833 2020 Anchorage Alaska alyeska 2020_alyeska
3891 175588 1893216 Airport Heights AK 2 Anchorage 020 61.205556 -149.823611 2020 Anchorage Alaska airportheights 2020_airportheights
148651 170128 1744590 Whale Pass AK 2 Prince of Wales-Hyder (CA) 198 56.115278 -133.120833 2198 Prince of Wales-Hyder Alaska whalepass 2198_whalepass
148650 131857 1415636 Waterfall AK 2 Prince of Wales-Hyder (CA) 198 55.297222 -133.240556 2198 Prince of Wales-Hyder Alaska waterfall 2198_waterfall

In [318]:
len(city_df)


Out[318]:
199473

In [319]:
# make a new summary dataframe based on the city centroids
summary_city_df = city_df
# sort by countyfp_city
summary_city_df = summary_city_df.sort_values(by=['COUNTYFP_CITY'])
summary_city_df.head()


Out[319]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY
94466 15708 216015 Adamsville DE 10 Kent 001 38.831502 -75.689096 10001 Kent Delaware adamsville 10001_adamsville
94467 185600 2400448 Alexanders Village DE 10 Kent 001 39.071900 -75.521500 10001 Kent Delaware alexandersvillage 10001_alexandersvillage
94468 185606 2400454 Allee DE 10 Kent 001 39.110800 -75.554700 10001 Kent Delaware allee 10001_allee
94469 15275 215504 Andrews Lake Estates DE 10 Kent 001 39.020946 -75.525479 10001 Kent Delaware andrewslakeestates 10001_andrewslakeestates
94470 15710 216017 Andrewsville DE 10 Kent 001 38.861502 -75.634928 10001 Kent Delaware andrewsville 10001_andrewsville

In [320]:
len(summary_city_df)


Out[320]:
199473

4a: Add Missing Person count for each city


In [321]:
# Add new column to dataframe, using the countyfp_city field as a key in the missing_city_dict, to pull the correct missing case count for each city
summary_city_df['Missing_Count'] = summary_city_df['COUNTYFP_CITY'].map(missing_city_dict)
summary_city_df.head()


Out[321]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count
94466 15708 216015 Adamsville DE 10 Kent 001 38.831502 -75.689096 10001 Kent Delaware adamsville 10001_adamsville NaN
94467 185600 2400448 Alexanders Village DE 10 Kent 001 39.071900 -75.521500 10001 Kent Delaware alexandersvillage 10001_alexandersvillage NaN
94468 185606 2400454 Allee DE 10 Kent 001 39.110800 -75.554700 10001 Kent Delaware allee 10001_allee NaN
94469 15275 215504 Andrews Lake Estates DE 10 Kent 001 39.020946 -75.525479 10001 Kent Delaware andrewslakeestates 10001_andrewslakeestates NaN
94470 15710 216017 Andrewsville DE 10 Kent 001 38.861502 -75.634928 10001 Kent Delaware andrewsville 10001_andrewsville NaN

In [322]:
# Check null values [NOTE: fine to have nulls]
missing_city_null_df = summary_city_df.loc[summary_city_df['Missing_Count'].isnull()]
missing_city_null_df


Out[322]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count
94466 15708 216015 Adamsville DE 10 Kent 001 38.831502 -75.689096 10001 Kent Delaware adamsville 10001_adamsville NaN
94467 185600 2400448 Alexanders Village DE 10 Kent 001 39.071900 -75.521500 10001 Kent Delaware alexandersvillage 10001_alexandersvillage NaN
94468 185606 2400454 Allee DE 10 Kent 001 39.110800 -75.554700 10001 Kent Delaware allee 10001_allee NaN
94469 15275 215504 Andrews Lake Estates DE 10 Kent 001 39.020946 -75.525479 10001 Kent Delaware andrewslakeestates 10001_andrewslakeestates NaN
94470 15710 216017 Andrewsville DE 10 Kent 001 38.861502 -75.634928 10001 Kent Delaware andrewsville 10001_andrewsville NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
195646 14716 212149 Willimantic CT 9 Windham 015 41.710654 -72.208134 9015 Windham Connecticut willimantic 9015_willimantic NaN
195647 14718 212174 Wilsonville CT 9 Windham 015 42.012319 -71.890072 9015 Windham Connecticut wilsonville 9015_wilsonville NaN
195648 14720 212184 Windham CT 9 Windham 015 41.699821 -72.157022 9015 Windham Connecticut windham 9015_windham NaN
195649 14731 212261 Woodstock CT 9 Windham 015 41.948431 -71.973963 9015 Windham Connecticut woodstock 9015_woodstock NaN
195650 14732 212265 Woodstock Valley CT 9 Windham 015 41.940930 -72.071742 9015 Windham Connecticut woodstockvalley 9015_woodstockvalley NaN

194390 rows × 15 columns

4b: Add Unclaimed Person count for each city


In [323]:
# Add new column to dataframe, using the countyfp_city field as a key in the unclaimed_city_dict, to pull the correct unclaimed case count for each city
summary_city_df['Unclaimed_Count'] = summary_city_df['COUNTYFP_CITY'].map(unclaimed_city_dict)
summary_city_df.head()


Out[323]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count
94466 15708 216015 Adamsville DE 10 Kent 001 38.831502 -75.689096 10001 Kent Delaware adamsville 10001_adamsville NaN NaN
94467 185600 2400448 Alexanders Village DE 10 Kent 001 39.071900 -75.521500 10001 Kent Delaware alexandersvillage 10001_alexandersvillage NaN NaN
94468 185606 2400454 Allee DE 10 Kent 001 39.110800 -75.554700 10001 Kent Delaware allee 10001_allee NaN NaN
94469 15275 215504 Andrews Lake Estates DE 10 Kent 001 39.020946 -75.525479 10001 Kent Delaware andrewslakeestates 10001_andrewslakeestates NaN NaN
94470 15710 216017 Andrewsville DE 10 Kent 001 38.861502 -75.634928 10001 Kent Delaware andrewsville 10001_andrewsville NaN NaN

In [324]:
# Check null values [NOTE: fine to have nulls]
unclaimed_city_null_df = summary_city_df.loc[summary_city_df['Unclaimed_Count'].isnull()]
unclaimed_city_null_df


Out[324]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count
94466 15708 216015 Adamsville DE 10 Kent 001 38.831502 -75.689096 10001 Kent Delaware adamsville 10001_adamsville NaN NaN
94467 185600 2400448 Alexanders Village DE 10 Kent 001 39.071900 -75.521500 10001 Kent Delaware alexandersvillage 10001_alexandersvillage NaN NaN
94468 185606 2400454 Allee DE 10 Kent 001 39.110800 -75.554700 10001 Kent Delaware allee 10001_allee NaN NaN
94469 15275 215504 Andrews Lake Estates DE 10 Kent 001 39.020946 -75.525479 10001 Kent Delaware andrewslakeestates 10001_andrewslakeestates NaN NaN
94470 15710 216017 Andrewsville DE 10 Kent 001 38.861502 -75.634928 10001 Kent Delaware andrewsville 10001_andrewsville NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
195646 14716 212149 Willimantic CT 9 Windham 015 41.710654 -72.208134 9015 Windham Connecticut willimantic 9015_willimantic NaN NaN
195647 14718 212174 Wilsonville CT 9 Windham 015 42.012319 -71.890072 9015 Windham Connecticut wilsonville 9015_wilsonville NaN NaN
195648 14720 212184 Windham CT 9 Windham 015 41.699821 -72.157022 9015 Windham Connecticut windham 9015_windham NaN NaN
195649 14731 212261 Woodstock CT 9 Windham 015 41.948431 -71.973963 9015 Windham Connecticut woodstock 9015_woodstock NaN NaN
195650 14732 212265 Woodstock Valley CT 9 Windham 015 41.940930 -72.071742 9015 Windham Connecticut woodstockvalley 9015_woodstockvalley NaN NaN

198881 rows × 16 columns

4c: Add Unidentified Person count for each city


In [325]:
# Add new column to dataframe, using the countyfp_city field as a key in the unidentified_city_dict, to pull the correct unidentified case count for each city
summary_city_df['Unidentified_Count'] = summary_city_df['COUNTYFP_CITY'].map(unidentified_city_dict)
summary_city_df.head()


Out[325]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count Unidentified_Count
94466 15708 216015 Adamsville DE 10 Kent 001 38.831502 -75.689096 10001 Kent Delaware adamsville 10001_adamsville NaN NaN NaN
94467 185600 2400448 Alexanders Village DE 10 Kent 001 39.071900 -75.521500 10001 Kent Delaware alexandersvillage 10001_alexandersvillage NaN NaN NaN
94468 185606 2400454 Allee DE 10 Kent 001 39.110800 -75.554700 10001 Kent Delaware allee 10001_allee NaN NaN NaN
94469 15275 215504 Andrews Lake Estates DE 10 Kent 001 39.020946 -75.525479 10001 Kent Delaware andrewslakeestates 10001_andrewslakeestates NaN NaN NaN
94470 15710 216017 Andrewsville DE 10 Kent 001 38.861502 -75.634928 10001 Kent Delaware andrewsville 10001_andrewsville NaN NaN NaN

In [326]:
# Check null values [NOTE: fine to have nulls]
unidentified_city_null_df = summary_city_df.loc[summary_city_df['Unidentified_Count'].isnull()]
unidentified_city_null_df


Out[326]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count Unidentified_Count
94466 15708 216015 Adamsville DE 10 Kent 001 38.831502 -75.689096 10001 Kent Delaware adamsville 10001_adamsville NaN NaN NaN
94467 185600 2400448 Alexanders Village DE 10 Kent 001 39.071900 -75.521500 10001 Kent Delaware alexandersvillage 10001_alexandersvillage NaN NaN NaN
94468 185606 2400454 Allee DE 10 Kent 001 39.110800 -75.554700 10001 Kent Delaware allee 10001_allee NaN NaN NaN
94469 15275 215504 Andrews Lake Estates DE 10 Kent 001 39.020946 -75.525479 10001 Kent Delaware andrewslakeestates 10001_andrewslakeestates NaN NaN NaN
94470 15710 216017 Andrewsville DE 10 Kent 001 38.861502 -75.634928 10001 Kent Delaware andrewsville 10001_andrewsville NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
195646 14716 212149 Willimantic CT 9 Windham 015 41.710654 -72.208134 9015 Windham Connecticut willimantic 9015_willimantic NaN NaN NaN
195647 14718 212174 Wilsonville CT 9 Windham 015 42.012319 -71.890072 9015 Windham Connecticut wilsonville 9015_wilsonville NaN NaN NaN
195648 14720 212184 Windham CT 9 Windham 015 41.699821 -72.157022 9015 Windham Connecticut windham 9015_windham NaN NaN NaN
195649 14731 212261 Woodstock CT 9 Windham 015 41.948431 -71.973963 9015 Windham Connecticut woodstock 9015_woodstock NaN NaN NaN
195650 14732 212265 Woodstock Valley CT 9 Windham 015 41.940930 -72.071742 9015 Windham Connecticut woodstockvalley 9015_woodstockvalley NaN NaN NaN

197003 rows × 17 columns

4d: Add column for total count of cases in all three databases for each city


In [327]:
summary_city_df.head()


Out[327]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count Unidentified_Count
94466 15708 216015 Adamsville DE 10 Kent 001 38.831502 -75.689096 10001 Kent Delaware adamsville 10001_adamsville NaN NaN NaN
94467 185600 2400448 Alexanders Village DE 10 Kent 001 39.071900 -75.521500 10001 Kent Delaware alexandersvillage 10001_alexandersvillage NaN NaN NaN
94468 185606 2400454 Allee DE 10 Kent 001 39.110800 -75.554700 10001 Kent Delaware allee 10001_allee NaN NaN NaN
94469 15275 215504 Andrews Lake Estates DE 10 Kent 001 39.020946 -75.525479 10001 Kent Delaware andrewslakeestates 10001_andrewslakeestates NaN NaN NaN
94470 15710 216017 Andrewsville DE 10 Kent 001 38.861502 -75.634928 10001 Kent Delaware andrewsville 10001_andrewsville NaN NaN NaN

In [330]:
# Note - may need to change -4 to -3, run, then change back to -4 and re-run. DON'T KNOW WHY
summary_city_df['Total_Count'] = summary_city_df.iloc[:, -4:-1].sum(axis=1)
summary_city_df.head(120780)


Out[330]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count Unidentified_Count Total_Count
94466 15708 216015 Adamsville DE 10 Kent 001 38.831502 -75.689096 10001 Kent Delaware adamsville 10001_adamsville NaN NaN NaN 0.0
94467 185600 2400448 Alexanders Village DE 10 Kent 001 39.071900 -75.521500 10001 Kent Delaware alexandersvillage 10001_alexandersvillage NaN NaN NaN 0.0
94468 185606 2400454 Allee DE 10 Kent 001 39.110800 -75.554700 10001 Kent Delaware allee 10001_allee NaN NaN NaN 0.0
94469 15275 215504 Andrews Lake Estates DE 10 Kent 001 39.020946 -75.525479 10001 Kent Delaware andrewslakeestates 10001_andrewslakeestates NaN NaN NaN 0.0
94470 15710 216017 Andrewsville DE 10 Kent 001 38.861502 -75.634928 10001 Kent Delaware andrewsville 10001_andrewsville NaN NaN NaN 0.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
127712 100464 1136645 Portland OR 41 Multnomah 051 45.523452 -122.676207 41051 Multnomah Oregon portland 41051_portland 93.0 30.0 39.0 162.0
127713 100465 1136646 Portland Heights OR 41 Multnomah 051 45.505674 -122.703152 41051 Multnomah Oregon portlandheights 41051_portlandheights NaN NaN NaN 0.0
127715 100466 1136651 Powellhurst OR 41 Multnomah 051 45.504009 -122.537592 41051 Multnomah Oregon powellhurst 41051_powellhurst NaN NaN NaN 0.0
127714 99962 1125640 Powell Valley OR 41 Multnomah 051 45.486509 -122.393424 41051 Multnomah Oregon powellvalley 41051_powellvalley NaN NaN NaN 0.0
127716 100475 1136687 Riverdale OR 41 Multnomah 051 45.450675 -122.661206 41051 Multnomah Oregon riverdale 41051_riverdale NaN NaN NaN 0.0

120780 rows × 18 columns


In [331]:
len(summary_city_df)


Out[331]:
199473

In [332]:
summary_city_zeros_df = summary_city_df.loc[summary_city_df['Total_Count']==0]
summary_city_zeros_df.shape


Out[332]:
(193049, 18)

In [333]:
199473-193049


Out[333]:
6424

In [334]:
final_summary_city_df = summary_city_df[summary_city_df['Total_Count'] != 0]
final_summary_city_df.shape


Out[334]:
(6424, 18)

In [335]:
# check dataframe
final_summary_city_df.head(20)


Out[335]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count Unidentified_Count Total_Count
94506 14978 213746 Camden DE 10 Kent 001 39.113446 -75.541869 10001 Kent Delaware camden 10001_camden 1.0 NaN 1.0 2.0
94571 15135 215321 Felton DE 10 Kent 001 39.008446 -75.577981 10001 Kent Delaware felton 10001_felton 2.0 NaN NaN 2.0
94628 15033 214127 Houston DE 10 Kent 001 38.917613 -75.505201 10001 Kent Delaware houston 10001_houston 1.0 NaN NaN 1.0
94780 15109 214671 Smyrna DE 10 Kent 001 39.299834 -75.604649 10001 Kent Delaware smyrna 10001_smyrna NaN NaN 3.0 3.0
94853 16588 217870 Wyoming DE 10 Kent 001 39.118168 -75.558814 10001 Kent Delaware wyoming 10001_wyoming 1.0 NaN NaN 1.0
129547 15719 216026 Bear DE 10 New Castle 003 39.629279 -75.658263 10003 New Castle Delaware bear 10003_bear 1.0 NaN 1.0 2.0
129658 14988 213804 Claymont DE 10 New Castle 003 39.800669 -75.459640 10003 New Castle Delaware claymont 10003_claymont 1.0 NaN NaN 1.0
129713 14995 213872 Delaware City DE 10 New Castle 003 39.577890 -75.588815 10003 New Castle Delaware delawarecity 10003_delawarecity 1.0 NaN NaN 1.0
129985 15065 214326 Minquadale DE 10 New Castle 003 39.707057 -75.566591 10003 New Castle Delaware minquadale 10003_minquadale NaN NaN 1.0 1.0
130006 15074 214385 Newark DE 10 New Castle 003 39.683723 -75.749657 10003 New Castle Delaware newark 10003_newark 4.0 NaN NaN 4.0
130005 15073 214379 New Castle DE 10 New Castle 003 39.662057 -75.566313 10003 New Castle Delaware newcastle 10003_newcastle 6.0 NaN 2.0 8.0
130009 15075 214388 Newport DE 10 New Castle 003 39.713724 -75.609371 10003 New Castle Delaware newport 10003_newport 1.0 NaN NaN 1.0
130030 15079 214404 Odessa DE 10 New Castle 003 39.457334 -75.661318 10003 New Castle Delaware odessa 10003_odessa NaN NaN 1.0 1.0
130077 15090 214477 Port Penn DE 10 New Castle 003 39.516779 -75.576593 10003 New Castle Delaware portpenn 10003_portpenn 1.0 NaN NaN 1.0
130123 15101 214574 Saint Georges DE 10 New Castle 003 39.555112 -75.650207 10003 New Castle Delaware saintgeorges 10003_saintgeorges 1.0 NaN NaN 1.0
130214 15119 214755 Townsend DE 10 New Castle 003 39.395111 -75.691597 10003 New Castle Delaware townsend 10003_townsend NaN NaN 1.0 1.0
130274 15127 214862 Wilmington DE 10 New Castle 003 39.745947 -75.546589 10003 New Castle Delaware wilmington 10003_wilmington 15.0 NaN 8.0 23.0
175764 14968 213638 Bethany Beach DE 10 Sussex 005 38.539556 -75.055181 10005 Sussex Delaware bethanybeach 10005_bethanybeach 1.0 1.0 1.0 3.0
175774 14971 213680 Blades DE 10 Sussex 005 38.635670 -75.609927 10005 Sussex Delaware blades 10005_blades 1.0 NaN NaN 1.0
175778 15738 216045 Bottom Hills DE 10 Sussex 005 38.617334 -75.071014 10005 Sussex Delaware bottomhills 10005_bottomhills NaN NaN 1.0 1.0

In [336]:
# reset index of dataframe
final_summary_city_df = final_summary_city_df.reset_index(drop=True)
final_summary_city_df.head()


Out[336]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count Unidentified_Count Total_Count
0 14978 213746 Camden DE 10 Kent 001 39.113446 -75.541869 10001 Kent Delaware camden 10001_camden 1.0 NaN 1.0 2.0
1 15135 215321 Felton DE 10 Kent 001 39.008446 -75.577981 10001 Kent Delaware felton 10001_felton 2.0 NaN NaN 2.0
2 15033 214127 Houston DE 10 Kent 001 38.917613 -75.505201 10001 Kent Delaware houston 10001_houston 1.0 NaN NaN 1.0
3 15109 214671 Smyrna DE 10 Kent 001 39.299834 -75.604649 10001 Kent Delaware smyrna 10001_smyrna NaN NaN 3.0 3.0
4 16588 217870 Wyoming DE 10 Kent 001 39.118168 -75.558814 10001 Kent Delaware wyoming 10001_wyoming 1.0 NaN NaN 1.0

In [337]:
city_honolulu_df = final_summary_city_df.loc[final_summary_city_df['COUNTY_FIPS']==15003]
city_honolulu_df


Out[337]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count Unidentified_Count Total_Count
658 26118 358456 Aiea HI 15 Honolulu 003 21.382222 -157.933611 15003 Honolulu Hawaii aiea 15003_aiea 1.0 2.0 NaN 3.0
659 26131 358767 Ewa Beach HI 15 Honolulu 003 21.315556 -158.007222 15003 Honolulu Hawaii ewabeach 15003_ewabeach 1.0 6.0 1.0 8.0
660 26146 358941 Haleiwa HI 15 Honolulu 003 21.588489 -158.110514 15003 Honolulu Hawaii haleiwa 15003_haleiwa 1.0 3.0 4.0 8.0
661 26157 359116 Hauula HI 15 Honolulu 003 21.607602 -157.908683 15003 Honolulu Hawaii hauula 15003_hauula NaN NaN 1.0 1.0
662 26551 366212 Honolulu HI 15 Honolulu 003 21.306944 -157.858333 15003 Honolulu Hawaii honolulu 15003_honolulu 27.0 94.0 29.0 150.0
663 26203 359833 Kahuku HI 15 Honolulu 003 21.676717 -157.947894 15003 Honolulu Hawaii kahuku 15003_kahuku 1.0 1.0 NaN 2.0
664 26206 359894 Kailua HI 15 Honolulu 003 21.402222 -157.739444 15003 Honolulu Hawaii kailua 15003_kailua 4.0 1.0 1.0 6.0
665 26226 360391 Kaneohe HI 15 Honolulu 003 21.409290 -157.800920 15003 Honolulu Hawaii kaneohe 15003_kaneohe 3.0 5.0 1.0 9.0
666 185463 2371890 Kapolei HI 15 Honolulu 003 21.333710 -158.065620 15003 Honolulu Hawaii kapolei 15003_kapolei 2.0 4.0 NaN 6.0
667 26374 363226 Pearl City HI 15 Honolulu 003 21.403903 -157.957553 15003 Honolulu Hawaii pearlcity 15003_pearlcity NaN NaN 1.0 1.0
668 173977 1853110 Punaluu HI 15 Honolulu 003 21.570451 -157.875574 15003 Honolulu Hawaii punaluu 15003_punaluu 1.0 NaN NaN 1.0
669 26428 364420 Wahiawa HI 15 Honolulu 003 21.502109 -158.021035 15003 Honolulu Hawaii wahiawa 15003_wahiawa NaN 1.0 2.0 3.0
670 26436 364543 Waialua HI 15 Honolulu 003 21.573324 -158.127766 15003 Honolulu Hawaii waialua 15003_waialua NaN NaN 2.0 2.0
671 26437 364549 Waianae HI 15 Honolulu 003 21.443400 -158.185870 15003 Honolulu Hawaii waianae 15003_waianae 5.0 9.0 2.0 16.0
672 26455 364775 Waimanalo HI 15 Honolulu 003 21.346904 -157.722924 15003 Honolulu Hawaii waimanalo 15003_waimanalo 1.0 NaN 2.0 3.0
673 26463 364878 Waipahu HI 15 Honolulu 003 21.386667 -158.009167 15003 Honolulu Hawaii waipahu 15003_waipahu 1.0 8.0 3.0 12.0

In [338]:
type(final_summary_city_df['CITY_NAME'][0])


Out[338]:
str

4e: Convert to geodataframe and export as GeoJSON


In [339]:
# check final summary_city_df
final_summary_city_df.head(20)


Out[339]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count Unidentified_Count Total_Count
0 14978 213746 Camden DE 10 Kent 001 39.113446 -75.541869 10001 Kent Delaware camden 10001_camden 1.0 NaN 1.0 2.0
1 15135 215321 Felton DE 10 Kent 001 39.008446 -75.577981 10001 Kent Delaware felton 10001_felton 2.0 NaN NaN 2.0
2 15033 214127 Houston DE 10 Kent 001 38.917613 -75.505201 10001 Kent Delaware houston 10001_houston 1.0 NaN NaN 1.0
3 15109 214671 Smyrna DE 10 Kent 001 39.299834 -75.604649 10001 Kent Delaware smyrna 10001_smyrna NaN NaN 3.0 3.0
4 16588 217870 Wyoming DE 10 Kent 001 39.118168 -75.558814 10001 Kent Delaware wyoming 10001_wyoming 1.0 NaN NaN 1.0
5 15719 216026 Bear DE 10 New Castle 003 39.629279 -75.658263 10003 New Castle Delaware bear 10003_bear 1.0 NaN 1.0 2.0
6 14988 213804 Claymont DE 10 New Castle 003 39.800669 -75.459640 10003 New Castle Delaware claymont 10003_claymont 1.0 NaN NaN 1.0
7 14995 213872 Delaware City DE 10 New Castle 003 39.577890 -75.588815 10003 New Castle Delaware delawarecity 10003_delawarecity 1.0 NaN NaN 1.0
8 15065 214326 Minquadale DE 10 New Castle 003 39.707057 -75.566591 10003 New Castle Delaware minquadale 10003_minquadale NaN NaN 1.0 1.0
9 15074 214385 Newark DE 10 New Castle 003 39.683723 -75.749657 10003 New Castle Delaware newark 10003_newark 4.0 NaN NaN 4.0
10 15073 214379 New Castle DE 10 New Castle 003 39.662057 -75.566313 10003 New Castle Delaware newcastle 10003_newcastle 6.0 NaN 2.0 8.0
11 15075 214388 Newport DE 10 New Castle 003 39.713724 -75.609371 10003 New Castle Delaware newport 10003_newport 1.0 NaN NaN 1.0
12 15079 214404 Odessa DE 10 New Castle 003 39.457334 -75.661318 10003 New Castle Delaware odessa 10003_odessa NaN NaN 1.0 1.0
13 15090 214477 Port Penn DE 10 New Castle 003 39.516779 -75.576593 10003 New Castle Delaware portpenn 10003_portpenn 1.0 NaN NaN 1.0
14 15101 214574 Saint Georges DE 10 New Castle 003 39.555112 -75.650207 10003 New Castle Delaware saintgeorges 10003_saintgeorges 1.0 NaN NaN 1.0
15 15119 214755 Townsend DE 10 New Castle 003 39.395111 -75.691597 10003 New Castle Delaware townsend 10003_townsend NaN NaN 1.0 1.0
16 15127 214862 Wilmington DE 10 New Castle 003 39.745947 -75.546589 10003 New Castle Delaware wilmington 10003_wilmington 15.0 NaN 8.0 23.0
17 14968 213638 Bethany Beach DE 10 Sussex 005 38.539556 -75.055181 10005 Sussex Delaware bethanybeach 10005_bethanybeach 1.0 1.0 1.0 3.0
18 14971 213680 Blades DE 10 Sussex 005 38.635670 -75.609927 10005 Sussex Delaware blades 10005_blades 1.0 NaN NaN 1.0
19 15738 216045 Bottom Hills DE 10 Sussex 005 38.617334 -75.071014 10005 Sussex Delaware bottomhills 10005_bottomhills NaN NaN 1.0 1.0

In [340]:
len(final_summary_city_df)


Out[340]:
6424

In [341]:
# Convert dataframe to geodataframe
final_summary_city_gdf = gpd.GeoDataFrame(final_summary_city_df, geometry=gpd.points_from_xy(x=final_summary_city_df.Lon_dd, y=final_summary_city_df.Lat_dd))
final_summary_city_gdf.head()


Out[341]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count Unidentified_Count Total_Count geometry
0 14978 213746 Camden DE 10 Kent 001 39.113446 -75.541869 10001 Kent Delaware camden 10001_camden 1.0 NaN 1.0 2.0 POINT (-75.54187 39.11345)
1 15135 215321 Felton DE 10 Kent 001 39.008446 -75.577981 10001 Kent Delaware felton 10001_felton 2.0 NaN NaN 2.0 POINT (-75.57798 39.00845)
2 15033 214127 Houston DE 10 Kent 001 38.917613 -75.505201 10001 Kent Delaware houston 10001_houston 1.0 NaN NaN 1.0 POINT (-75.50520 38.91761)
3 15109 214671 Smyrna DE 10 Kent 001 39.299834 -75.604649 10001 Kent Delaware smyrna 10001_smyrna NaN NaN 3.0 3.0 POINT (-75.60465 39.29983)
4 16588 217870 Wyoming DE 10 Kent 001 39.118168 -75.558814 10001 Kent Delaware wyoming 10001_wyoming 1.0 NaN NaN 1.0 POINT (-75.55881 39.11817)

In [342]:
len(final_summary_city_gdf)


Out[342]:
6424

In [343]:
# write to geoJSON
final_summary_city_gdf.to_file("JSON/city_counts.json", driver="GeoJSON", encoding='utf-8')

In [ ]:

PART 9 - construct state-, county-, and city-level GeoJSON files - CENTROIDS

Construct State-level GeoJSON with correct structure

Goal format: { "type": "Feature", "name": "Wisconsin", "properties": { "missing": [ ], "unclaimed": [ ], "unidentified": [ ], "filtered": [ ] } "geometry": { "type": "Point", "coordinates": [ -117.79750667, 36.03755926 ] }

  • each array will be a list of dictionaries. Each dictionary = one case. Keys = headers

In [ ]:
# get headers
missing_header = list(missing_df.columns.values)
print("missing header:", missing_header)
unclaimed_header = list(unclaimed_df.columns.values)
print("unclaimed header:", unclaimed_header)
unidentified_header = list(unidentified_df.columns.values)
print("unidentified header:", unidentified_header)

In [ ]:
# check df
unclaimed_df.head()

In [ ]:
# check data types
type(unclaimed_df['State_FIPS'][0])

In [ ]:
# check centroids
state_centroids_v2_df.head()
len(state_centroids_v2_df)

In [ ]:
# sort each database by state FIPS
# sort state centroids by state FIPS
state_centroids_v2_df = state_centroids_v2_df.sort_values(by=['STATEFP'])
state_centroids_v2_df.head()

In [ ]:
# sort each database by state FIPS
# sort missing by state FIPS
missing_df = missing_df.sort_values(by=['State_FIPS'])
missing_df.head()

In [ ]:
# sort unclaimed by state FIPS
unclaimed_df = unclaimed_df.sort_values(by=['State_FIPS'])
unclaimed_df.head()

In [ ]:
# sort unidentified by state FIPS
unidentified_df = unidentified_df.sort_values(by=['State_FIPS'])
unidentified_df.head()

In [ ]:
## Create state array
state_array = []
## for each state in state_centroids...
i = 0
while i < len(state_centroids_v2_df):
    state_dict = {}
    state_dict["type"] = "Feature"
    state_dict["name"] = state_centroids_v2_df["NAME"][i]
    state_dict["name_abbr"] = state_centroids_v2_df["STUSPS"][i]
    state_dict["state_FIPS"] = str(state_centroids_v2_df["STATEFP"][i])
    state_dict["properties"] = {}
    missing_array = []
    j = 0
    while j < len(missing_df):
        # check if state_fips matches
        if missing_df['State_FIPS'][j] == state_centroids_v2_df["STATEFP"][i]:
            missing_dict = {}
            for item in missing_header:
                missing_dict[item] = str(missing_df[item][j])
            # append dictionary to missing array
            missing_array.append(missing_dict)
        # increment j
        j += 1
    state_dict["properties"]['missing'] = missing_array     
    
    unclaimed_array = []
    k = 0
    while k < len(unclaimed_df):
        # check if state_fips matches
        if unclaimed_df['State_FIPS'][k] == state_centroids_v2_df["STATEFP"][i]:
            unclaimed_dict = {}
            for item in unclaimed_header:
                unclaimed_dict[item] = str(unclaimed_df[item][k])
            # append dictionary to unclaimed array
            unclaimed_array.append(unclaimed_dict)
        # increment k
        k += 1
    state_dict["properties"]['unclaimed'] = unclaimed_array
    
    unidentified_array = []
    l = 0
    while l < len(unidentified_df):
        # check if state_fips matches
        if unidentified_df['State_FIPS'][l] == state_centroids_v2_df["STATEFP"][i]:
            unidentified_dict = {}
            for item in unidentified_header:
                unidentified_dict[item] = str(unidentified_df[item][l])
            # append dictionary to unclaimed array
            unidentified_array.append(unidentified_dict)
        # increment l
        l += 1
    state_dict["properties"]['unidentified'] = unidentified_array
    
    state_dict["properties"]['filtered'] = []
    ## set geometry
    state_dict["geometry"] = {}
    state_dict["geometry"]["type"] = "Point"
    state_dict["geometry"]["coordinates"] = [state_centroids_v2_df['Lon_dd'][i], state_centroids_v2_df['Lat_dd'][i]]
    ## append state dictionary to array
    state_array.append(state_dict)
    # test statement
    print("added state", str(i+1), "of 56")
    # increment interator
    i += 1
# state_array

In [ ]:
# check item in array
len(state_array)
# state_array[0]['properties']['unclaimed']

In [ ]:
# Create FeatureCollection
state_feature_collection = {}
state_feature_collection["type"] = "FeatureCollection"
state_feature_collection["features"] = state_array
# state_feature_collection

In [ ]:
# Convert FeatureCollection to JSON format
state_geojson = geojson.dumps(state_feature_collection)
# check type to make sure conversion was sucessful
print(type(state_geojson))

In [ ]:
# Save JSON-formatted FeatureCollection as JSON file
# Save as new json file
with open('JSON/state_geojson.json', 'w', encoding='utf-8') as json_file:
    json_file.write(state_geojson)

Construct COUNTY-LEVEL GeoJSON with correct structure

Goal format: { "type": "Feature", "name": "Dane", "state": "Wisconsin", "state_FIPS": , "county_FIPS": , "properties": { "missing": [ ], "unclaimed": [ ], "unidentified": [ ], "filtered": [ ] } "geometry": { "type": "Point", "coordinates": [ -117.79750667, 36.03755926 ] }

  • each array will be a list of dictionaries. Each dictionary = one case. Keys = headers

In [ ]:
# get headers
missing_header = list(missing_df.columns.values)
print("missing header:", missing_header)
unclaimed_header = list(unclaimed_df.columns.values)
print("unclaimed header:", unclaimed_header)
unidentified_header = list(unidentified_df.columns.values)
print("unidentified header:", unidentified_header)

In [ ]:
# check df
unclaimed_df.head()

In [ ]:
# check data types
type(unclaimed_df['State_FIPS'][0])

In [ ]:
# check centroids
county_centroids_v2_df.head()
len(county_centroids_v2_df)

In [ ]:
# sort each database by county FIPS
# sort county centroids by county FIPS
county_centroids_v2_df = county_centroids_v2_df.sort_values(by=['GEOID'])
county_centroids_v2_df.head()

In [ ]:
# sort each database by county FIPS
# sort missing by county FIPS
missing_df = missing_df.sort_values(by=['County_FIPS'])
missing_df.head()

In [ ]:
# sort unclaimed by county FIPS
unclaimed_df = unclaimed_df.sort_values(by=['County_FIPS'])
unclaimed_df.head()

In [ ]:
# sort unidentified by county FIPS
unidentified_df = unidentified_df.sort_values(by=['County_FIPS'])
unidentified_df.head()

In [ ]:
## Create county array 
county_array = []
## for each county in county_centroids_v2...
i = 0
while i < len(county_centroids_v2_df):
    county_dict = {}
    county_dict["type"] = "Feature"
    county_dict["name"] = str(county_centroids_v2_df["NAME"][i])
    county_dict["county_FIPS"] = str(county_centroids_v2_df["GEOID"][i])
    county_dict["state_name"] = str(county_centroids_v2_df["STATE_NAME"][i])
    county_dict["state_FIPS"] = str(county_centroids_v2_df["STATEFP"][i])
    county_dict["properties"] = {}
    missing_array = []
    j = 0
    while j < len(missing_df):
        # check if county_fips matches
        if missing_df['County_FIPS'][j] == county_centroids_v2_df["GEOID"][i]:
            missing_dict = {}
            for item in missing_header:
                missing_dict[item] = str(missing_df[item][j])
            # append dictionary to missing array
            missing_array.append(missing_dict)
        # increment j
        j += 1
    county_dict["properties"]['missing'] = missing_array     
    
    unclaimed_array = []
    k = 0
    while k < len(unclaimed_df):
        # check if county_fips matches
        if unclaimed_df['County_FIPS'][k] == county_centroids_v2_df["GEOID"][i]:
            unclaimed_dict = {}
            for item in unclaimed_header:
                unclaimed_dict[item] = str(unclaimed_df[item][k])
            # append dictionary to unclaimed array
            unclaimed_array.append(unclaimed_dict)
        # increment k
        k += 1
    county_dict["properties"]['unclaimed'] = unclaimed_array
    
    unidentified_array = []
    l = 0
    while l < len(unidentified_df):
        # check if county_fips matches
        if unidentified_df['County_FIPS'][l] == county_centroids_v2_df["GEOID"][i]:
            unidentified_dict = {}
            for item in unidentified_header:
                unidentified_dict[item] = str(unidentified_df[item][l])
            # append dictionary to unclaimed array
            unidentified_array.append(unidentified_dict)
        # increment l
        l += 1
    county_dict["properties"]['unidentified'] = unidentified_array
    
    county_dict["properties"]['filtered'] = []
    ## set geometry
    county_dict["geometry"] = {}
    county_dict["geometry"]["type"] = "Point"
    county_dict["geometry"]["coordinates"] = [county_centroids_v2_df['Lon_dd'][i], county_centroids_v2_df['Lat_dd'][i]]
    ## append county dictionary to array
    county_array.append(county_dict)
    # test statement
    print("added county", str(i+1), "of 3284")
    # increment interator
    i += 1
# county_array

In [ ]:
# check item in array
len(county_array)
# county_array[55]['properties']['unclaimed']

In [ ]:
# Create FeatureCollection
county_feature_collection = {}
county_feature_collection["type"] = "FeatureCollection"
county_feature_collection["features"] = county_array
# county_feature_collection

In [ ]:
# Convert FeatureCollection to JSON format
county_geojson = geojson.dumps(county_feature_collection)
# check type to make sure conversion was sucessful
print(type(county_geojson))

In [ ]:
# Save JSON-formatted FeatureCollection as JSON file
# Save as new json file
with open('JSON/county_geojson.json', 'w', encoding='utf-8') as json_file:
    json_file.write(county_geojson)

Construct CITY-LEVEL GeoJSON with correct structure

Goal format: { "type": "Feature", "name": "Dane", "state": "Wisconsin", "state_FIPS": , "county_FIPS": , "properties": { "missing": [ ], "unclaimed": [ ], "unidentified": [ ], "filtered": [ ] } "geometry": { "type": "Point", "coordinates": [ -117.79750667, 36.03755926 ] }

  • each array will be a list of dictionaries. Each dictionary = one case. Keys = headers

In [344]:
# get headers
missing_header = list(missing_df.columns.values)
print("missing header:", missing_header)
unclaimed_header = list(unclaimed_df.columns.values)
print("unclaimed header:", unclaimed_header)
unidentified_header = list(unidentified_df.columns.values)
print("unidentified header:", unidentified_header)


missing header: ['Case Number', 'DLC', 'Last Name', 'First Name', 'Missing Age', 'City', 'County', 'State', 'Sex', 'Race / Ethnicity', 'Date Modified', 'State_FIPS', 'State_County', 'County_FIPS', 'City_string', 'County_city', 'GNIS_city']
unclaimed header: ['Case Number', 'DBF', 'Last Name', 'First Name', 'Sex', 'Race / Ethnicity', 'City', 'County', 'State', 'Date Modified', 'State_FIPS', 'State_County', 'County_FIPS', 'City_string', 'County_city', 'GNIS_city']
unidentified header: ['Case Number', 'DBF', 'Age From', 'Age To', 'City', 'County', 'State', 'Sex', 'Race / Ethnicity', 'Date Modified', 'State_FIPS', 'State_County', 'County_FIPS', 'City_string', 'County_city', 'GNIS_city']

In [345]:
# check cities
# final_summary_city_df.head()
len(final_summary_city_df)


Out[345]:
6424

In [346]:
# sort each database by county FIPS
# sort county centroids by county FIPS
final_summary_city_df = final_summary_city_df.sort_values(by=['COUNTYFP_CITY'])
final_summary_city_df.head()


Out[346]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count Unidentified_Count Total_Count geometry
0 14978 213746 Camden DE 10 Kent 001 39.113446 -75.541869 10001 Kent Delaware camden 10001_camden 1.0 NaN 1.0 2.0 POINT (-75.54187 39.11345)
1 15135 215321 Felton DE 10 Kent 001 39.008446 -75.577981 10001 Kent Delaware felton 10001_felton 2.0 NaN NaN 2.0 POINT (-75.57798 39.00845)
2 15033 214127 Houston DE 10 Kent 001 38.917613 -75.505201 10001 Kent Delaware houston 10001_houston 1.0 NaN NaN 1.0 POINT (-75.50520 38.91761)
3 15109 214671 Smyrna DE 10 Kent 001 39.299834 -75.604649 10001 Kent Delaware smyrna 10001_smyrna NaN NaN 3.0 3.0 POINT (-75.60465 39.29983)
4 16588 217870 Wyoming DE 10 Kent 001 39.118168 -75.558814 10001 Kent Delaware wyoming 10001_wyoming 1.0 NaN NaN 1.0 POINT (-75.55881 39.11817)

In [347]:
# sort each database by county_FIPS_city
# sort missing by county FIPS
missing_df = missing_df.sort_values(by=['County_city'])
missing_df.head()


Out[347]:
Case Number DLC Last Name First Name Missing Age City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string County_city GNIS_city
5050 MP25893 5/31/2012 Rodriguez Lois 52 Camden Kent Delaware Female White / Caucasian 3/2/2020 10 10_Kent 10001 camden 10001_camden Camden
5052 MP6937 2/3/1979 Kemp Tina 14 Felton Kent Delaware Female White / Caucasian 3/2/2020 10 10_Kent 10001 felton 10001_felton Felton
5051 MP7872 4/23/2010 Whitehair David 17 Felton Kent Delaware Male White / Caucasian 3/2/2020 10 10_Kent 10001 felton 10001_felton Felton
5053 MP4519 6/12/1988 Nutting George 20 Houston Kent Delaware Male White / Caucasian 4/1/2020 10 10_Kent 10001 houston 10001_houston Houston
5054 MP6929 7/23/2007 Worsham Paul 82 Wyoming Kent Delaware Male White / Caucasian 3/2/2020 10 10_Kent 10001 wyoming 10001_wyoming Wyoming

In [348]:
# sort unclaimed by county FIPS
unclaimed_df = unclaimed_df.sort_values(by=['County_city'])
unclaimed_df.head()


Out[348]:
Case Number DBF Last Name First Name Sex Race / Ethnicity City County State Date Modified State_FIPS State_County County_FIPS City_string County_city GNIS_city
357 UCP64780 10/5/2003 Hernandez Sabino Male Hispanic / Latino Bethany Beach Sussex Delaware 4/8/2020 10 10_Sussex 10005 bethanybeach 10005_bethanybeach Bethany Beach
6 UCP4415 3/10/2017 Shults Kenneth Male White / Caucasian Adamsville Jefferson Alabama 1/11/2019 1 1_Jefferson 1073 adamsville 1073_adamsville Adamsville
354 UCP4411 10/4/2016 Varnell Ralph Male White / Caucasian Bessemer Jefferson Alabama 1/11/2019 1 1_Jefferson 1073 bessemer 1073_bessemer Bessemer
356 UCP2773 1/6/2013 Rutledge Thomas Male White / Caucasian Bessemer Jefferson Alabama 9/20/2018 1 1_Jefferson 1073 bessemer 1073_bessemer Bessemer
352 UCP54578 1/31/2018 Lovelady Altha Female White / Caucasian Bessemer Jefferson Alabama 3/18/2020 1 1_Jefferson 1073 bessemer 1073_bessemer Bessemer

In [349]:
# sort unidentified by county FIPS
unidentified_df = unidentified_df.sort_values(by=['County_city'])
unidentified_df.head()


Out[349]:
Case Number DBF Age From Age To City County State Sex Race / Ethnicity Date Modified State_FIPS State_County County_FIPS City_string County_city GNIS_city
4850 UP9870 11/8/1988 0.0 0.0 Camden Kent Delaware Female Black / African American 4/8/2020 10 10_Kent 10001 camden 10001_camden Camden
4851 UP2262 7/20/1997 40.0 60.0 Camden Wyoming Kent Delaware Female White / Caucasian 4/8/2020 10 10_Kent 10001 camdenwyoming 10001_camdenwyoming NaN
4852 UP6276 10/18/1995 18.0 35.0 Milford Kent Delaware Male Uncertain 4/8/2020 10 10_Kent 10001 milford 10001_milford NaN
4853 UP8123 12/2/1965 35.0 55.0 Smyrna Kent Delaware Male White / Caucasian 4/8/2020 10 10_Kent 10001 smyrna 10001_smyrna Smyrna
4854 UP61582 9/13/2019 2.0 5.0 Smyrna Kent Delaware Female White / Caucasian, Hispanic / Latino 4/8/2020 10 10_Kent 10001 smyrna 10001_smyrna Smyrna

In [350]:
final_summary_city_df.head()


Out[350]:
OBJECTID FEATURE_ID CITY_NAME STUSPS STATEFP GNIS_COUNTY COUNTY_NUM Lat_dd Lon_dd COUNTY_FIPS COUNTY_NAME STATE_NAME CITY_STRING COUNTYFP_CITY Missing_Count Unclaimed_Count Unidentified_Count Total_Count geometry
0 14978 213746 Camden DE 10 Kent 001 39.113446 -75.541869 10001 Kent Delaware camden 10001_camden 1.0 NaN 1.0 2.0 POINT (-75.54187 39.11345)
1 15135 215321 Felton DE 10 Kent 001 39.008446 -75.577981 10001 Kent Delaware felton 10001_felton 2.0 NaN NaN 2.0 POINT (-75.57798 39.00845)
2 15033 214127 Houston DE 10 Kent 001 38.917613 -75.505201 10001 Kent Delaware houston 10001_houston 1.0 NaN NaN 1.0 POINT (-75.50520 38.91761)
3 15109 214671 Smyrna DE 10 Kent 001 39.299834 -75.604649 10001 Kent Delaware smyrna 10001_smyrna NaN NaN 3.0 3.0 POINT (-75.60465 39.29983)
4 16588 217870 Wyoming DE 10 Kent 001 39.118168 -75.558814 10001 Kent Delaware wyoming 10001_wyoming 1.0 NaN NaN 1.0 POINT (-75.55881 39.11817)

In [351]:
len(final_summary_city_df)


Out[351]:
6424

In [352]:
final_summary_city_df["CITY_NAME"][0]


Out[352]:
'Camden'

In [353]:
## Create county array 
city_array = []
## for each city in final_summary_city_df... len(city_df)
i = 0
while i < len(final_summary_city_df):
    city_dict = {}
    city_dict["type"] = "Feature"
    city_dict["name"] = str(final_summary_city_df["CITY_NAME"][i])
    city_dict["city_code"] = str(final_summary_city_df["COUNTYFP_CITY"][i])
    city_dict["county_name"] = str(final_summary_city_df["COUNTY_NAME"][i])
    city_dict["county_FIPS"] = str(final_summary_city_df["COUNTY_FIPS"][i])
    city_dict["state_name"] = str(final_summary_city_df["STATE_NAME"][i])
    city_dict["state_abbr"] = str(final_summary_city_df["STUSPS"][i])
    city_dict["state_FIPS"] = str(final_summary_city_df["STATEFP"][i])
    
    city_dict["properties"] = {}
    missing_array = []
    j = 0
    while j < len(missing_df):
        # check if county_city code matches
        if missing_df['County_city'][j] == final_summary_city_df["COUNTYFP_CITY"][i]:
            missing_dict = {}
            for item in missing_header:
                missing_dict[item] = str(missing_df[item][j])
            # append dictionary to missing array
            missing_array.append(missing_dict)
        # increment j
        j += 1
    city_dict["properties"]['missing'] = missing_array     
    
    unclaimed_array = []
    k = 0
    while k < len(unclaimed_df):
        # check if county_city code matches
        if unclaimed_df['County_city'][k] == final_summary_city_df["COUNTYFP_CITY"][i]:
            unclaimed_dict = {}
            for item in unclaimed_header:
                unclaimed_dict[item] = str(unclaimed_df[item][k])
            # append dictionary to unclaimed array
            unclaimed_array.append(unclaimed_dict)
        # increment k
        k += 1
    city_dict["properties"]['unclaimed'] = unclaimed_array
    
    unidentified_array = []
    l = 0
    while l < len(unidentified_df):
        # check if county_city code matches
        if unidentified_df['County_city'][l] == final_summary_city_df["COUNTYFP_CITY"][i]:
            unidentified_dict = {}
            for item in unidentified_header:
                unidentified_dict[item] = str(unidentified_df[item][l])
            # append dictionary to unclaimed array
            unidentified_array.append(unidentified_dict)
        # increment l
        l += 1
    city_dict["properties"]['unidentified'] = unidentified_array
    
    city_dict["properties"]['filtered'] = []
    ## set geometry
    city_dict["geometry"] = {}
    city_dict["geometry"]["type"] = "Point"
    city_dict["geometry"]["coordinates"] = [final_summary_city_df['Lon_dd'][i], final_summary_city_df['Lat_dd'][i]]
    ## append county dictionary to array
    city_array.append(city_dict)
    # test statement
    print("added city", str(i+1), "of 6424")
    # increment interator
    i += 1
# city_array[0]


added city 1 of 6425
added city 2 of 6425
added city 3 of 6425
added city 4 of 6425
added city 5 of 6425
added city 6 of 6425
added city 7 of 6425
added city 8 of 6425
added city 9 of 6425
added city 10 of 6425
added city 11 of 6425
added city 12 of 6425
added city 13 of 6425
added city 14 of 6425
added city 15 of 6425
added city 16 of 6425
added city 17 of 6425
added city 18 of 6425
added city 19 of 6425
added city 20 of 6425
added city 21 of 6425
added city 22 of 6425
added city 23 of 6425
added city 24 of 6425
added city 25 of 6425
added city 26 of 6425
added city 27 of 6425
added city 28 of 6425
added city 29 of 6425
added city 30 of 6425
added city 31 of 6425
added city 32 of 6425
added city 33 of 6425
added city 34 of 6425
added city 35 of 6425
added city 36 of 6425
added city 37 of 6425
added city 38 of 6425
added city 39 of 6425
added city 40 of 6425
added city 41 of 6425
added city 42 of 6425
added city 43 of 6425
added city 44 of 6425
added city 45 of 6425
added city 46 of 6425
added city 47 of 6425
added city 48 of 6425
added city 49 of 6425
added city 50 of 6425
added city 51 of 6425
added city 52 of 6425
added city 53 of 6425
added city 54 of 6425
added city 55 of 6425
added city 56 of 6425
added city 57 of 6425
added city 58 of 6425
added city 59 of 6425
added city 60 of 6425
added city 61 of 6425
added city 62 of 6425
added city 63 of 6425
added city 64 of 6425
added city 65 of 6425
added city 66 of 6425
added city 67 of 6425
added city 68 of 6425
added city 69 of 6425
added city 70 of 6425
added city 71 of 6425
added city 72 of 6425
added city 73 of 6425
added city 74 of 6425
added city 75 of 6425
added city 76 of 6425
added city 77 of 6425
added city 78 of 6425
added city 79 of 6425
added city 80 of 6425
added city 81 of 6425
added city 82 of 6425
added city 83 of 6425
added city 84 of 6425
added city 85 of 6425
added city 86 of 6425
added city 87 of 6425
added city 88 of 6425
added city 89 of 6425
added city 90 of 6425
added city 91 of 6425
added city 92 of 6425
added city 93 of 6425
added city 94 of 6425
added city 95 of 6425
added city 96 of 6425
added city 97 of 6425
added city 98 of 6425
added city 99 of 6425
added city 100 of 6425
added city 101 of 6425
added city 102 of 6425
added city 103 of 6425
added city 104 of 6425
added city 105 of 6425
added city 106 of 6425
added city 107 of 6425
added city 108 of 6425
added city 109 of 6425
added city 110 of 6425
added city 111 of 6425
added city 112 of 6425
added city 113 of 6425
added city 114 of 6425
added city 115 of 6425
added city 116 of 6425
added city 117 of 6425
added city 118 of 6425
added city 119 of 6425
added city 120 of 6425
added city 121 of 6425
added city 122 of 6425
added city 123 of 6425
added city 124 of 6425
added city 125 of 6425
added city 126 of 6425
added city 127 of 6425
added city 128 of 6425
added city 129 of 6425
added city 130 of 6425
added city 131 of 6425
added city 132 of 6425
added city 133 of 6425
added city 134 of 6425
added city 135 of 6425
added city 136 of 6425
added city 137 of 6425
added city 138 of 6425
added city 139 of 6425
added city 140 of 6425
added city 141 of 6425
added city 142 of 6425
added city 143 of 6425
added city 144 of 6425
added city 145 of 6425
added city 146 of 6425
added city 147 of 6425
added city 148 of 6425
added city 149 of 6425
added city 150 of 6425
added city 151 of 6425
added city 152 of 6425
added city 153 of 6425
added city 154 of 6425
added city 155 of 6425
added city 156 of 6425
added city 157 of 6425
added city 158 of 6425
added city 159 of 6425
added city 160 of 6425
added city 161 of 6425
added city 162 of 6425
added city 163 of 6425
added city 164 of 6425
added city 165 of 6425
added city 166 of 6425
added city 167 of 6425
added city 168 of 6425
added city 169 of 6425
added city 170 of 6425
added city 171 of 6425
added city 172 of 6425
added city 173 of 6425
added city 174 of 6425
added city 175 of 6425
added city 176 of 6425
added city 177 of 6425
added city 178 of 6425
added city 179 of 6425
added city 180 of 6425
added city 181 of 6425
added city 182 of 6425
added city 183 of 6425
added city 184 of 6425
added city 185 of 6425
added city 186 of 6425
added city 187 of 6425
added city 188 of 6425
added city 189 of 6425
added city 190 of 6425
added city 191 of 6425
added city 192 of 6425
added city 193 of 6425
added city 194 of 6425
added city 195 of 6425
added city 196 of 6425
added city 197 of 6425
added city 198 of 6425
added city 199 of 6425
added city 200 of 6425
added city 201 of 6425
added city 202 of 6425
added city 203 of 6425
added city 204 of 6425
added city 205 of 6425
added city 206 of 6425
added city 207 of 6425
added city 208 of 6425
added city 209 of 6425
added city 210 of 6425
added city 211 of 6425
added city 212 of 6425
added city 213 of 6425
added city 214 of 6425
added city 215 of 6425
added city 216 of 6425
added city 217 of 6425
added city 218 of 6425
added city 219 of 6425
added city 220 of 6425
added city 221 of 6425
added city 222 of 6425
added city 223 of 6425
added city 224 of 6425
added city 225 of 6425
added city 226 of 6425
added city 227 of 6425
added city 228 of 6425
added city 229 of 6425
added city 230 of 6425
added city 231 of 6425
added city 232 of 6425
added city 233 of 6425
added city 234 of 6425
added city 235 of 6425
added city 236 of 6425
added city 237 of 6425
added city 238 of 6425
added city 239 of 6425
added city 240 of 6425
added city 241 of 6425
added city 242 of 6425
added city 243 of 6425
added city 244 of 6425
added city 245 of 6425
added city 246 of 6425
added city 247 of 6425
added city 248 of 6425
added city 249 of 6425
added city 250 of 6425
added city 251 of 6425
added city 252 of 6425
added city 253 of 6425
added city 254 of 6425
added city 255 of 6425
added city 256 of 6425
added city 257 of 6425
added city 258 of 6425
added city 259 of 6425
added city 260 of 6425
added city 261 of 6425
added city 262 of 6425
added city 263 of 6425
added city 264 of 6425
added city 265 of 6425
added city 266 of 6425
added city 267 of 6425
added city 268 of 6425
added city 269 of 6425
added city 270 of 6425
added city 271 of 6425
added city 272 of 6425
added city 273 of 6425
added city 274 of 6425
added city 275 of 6425
added city 276 of 6425
added city 277 of 6425
added city 278 of 6425
added city 279 of 6425
added city 280 of 6425
added city 281 of 6425
added city 282 of 6425
added city 283 of 6425
added city 284 of 6425
added city 285 of 6425
added city 286 of 6425
added city 287 of 6425
added city 288 of 6425
added city 289 of 6425
added city 290 of 6425
added city 291 of 6425
added city 292 of 6425
added city 293 of 6425
added city 294 of 6425
added city 295 of 6425
added city 296 of 6425
added city 297 of 6425
added city 298 of 6425
added city 299 of 6425
added city 300 of 6425
added city 301 of 6425
added city 302 of 6425
added city 303 of 6425
added city 304 of 6425
added city 305 of 6425
added city 306 of 6425
added city 307 of 6425
added city 308 of 6425
added city 309 of 6425
added city 310 of 6425
added city 311 of 6425
added city 312 of 6425
added city 313 of 6425
added city 314 of 6425
added city 315 of 6425
added city 316 of 6425
added city 317 of 6425
added city 318 of 6425
added city 319 of 6425
added city 320 of 6425
added city 321 of 6425
added city 322 of 6425
added city 323 of 6425
added city 324 of 6425
added city 325 of 6425
added city 326 of 6425
added city 327 of 6425
added city 328 of 6425
added city 329 of 6425
added city 330 of 6425
added city 331 of 6425
added city 332 of 6425
added city 333 of 6425
added city 334 of 6425
added city 335 of 6425
added city 336 of 6425
added city 337 of 6425
added city 338 of 6425
added city 339 of 6425
added city 340 of 6425
added city 341 of 6425
added city 342 of 6425
added city 343 of 6425
added city 344 of 6425
added city 345 of 6425
added city 346 of 6425
added city 347 of 6425
added city 348 of 6425
added city 349 of 6425
added city 350 of 6425
added city 351 of 6425
added city 352 of 6425
added city 353 of 6425
added city 354 of 6425
added city 355 of 6425
added city 356 of 6425
added city 357 of 6425
added city 358 of 6425
added city 359 of 6425
added city 360 of 6425
added city 361 of 6425
added city 362 of 6425
added city 363 of 6425
added city 364 of 6425
added city 365 of 6425
added city 366 of 6425
added city 367 of 6425
added city 368 of 6425
added city 369 of 6425
added city 370 of 6425
added city 371 of 6425
added city 372 of 6425
added city 373 of 6425
added city 374 of 6425
added city 375 of 6425
added city 376 of 6425
added city 377 of 6425
added city 378 of 6425
added city 379 of 6425
added city 380 of 6425
added city 381 of 6425
added city 382 of 6425
added city 383 of 6425
added city 384 of 6425
added city 385 of 6425
added city 386 of 6425
added city 387 of 6425
added city 388 of 6425
added city 389 of 6425
added city 390 of 6425
added city 391 of 6425
added city 392 of 6425
added city 393 of 6425
added city 394 of 6425
added city 395 of 6425
added city 396 of 6425
added city 397 of 6425
added city 398 of 6425
added city 399 of 6425
added city 400 of 6425
added city 401 of 6425
added city 402 of 6425
added city 403 of 6425
added city 404 of 6425
added city 405 of 6425
added city 406 of 6425
added city 407 of 6425
added city 408 of 6425
added city 409 of 6425
added city 410 of 6425
added city 411 of 6425
added city 412 of 6425
added city 413 of 6425
added city 414 of 6425
added city 415 of 6425
added city 416 of 6425
added city 417 of 6425
added city 418 of 6425
added city 419 of 6425
added city 420 of 6425
added city 421 of 6425
added city 422 of 6425
added city 423 of 6425
added city 424 of 6425
added city 425 of 6425
added city 426 of 6425
added city 427 of 6425
added city 428 of 6425
added city 429 of 6425
added city 430 of 6425
added city 431 of 6425
added city 432 of 6425
added city 433 of 6425
added city 434 of 6425
added city 435 of 6425
added city 436 of 6425
added city 437 of 6425
added city 438 of 6425
added city 439 of 6425
added city 440 of 6425
added city 441 of 6425
added city 442 of 6425
added city 443 of 6425
added city 444 of 6425
added city 445 of 6425
added city 446 of 6425
added city 447 of 6425
added city 448 of 6425
added city 449 of 6425
added city 450 of 6425
added city 451 of 6425
added city 452 of 6425
added city 453 of 6425
added city 454 of 6425
added city 455 of 6425
added city 456 of 6425
added city 457 of 6425
added city 458 of 6425
added city 459 of 6425
added city 460 of 6425
added city 461 of 6425
added city 462 of 6425
added city 463 of 6425
added city 464 of 6425
added city 465 of 6425
added city 466 of 6425
added city 467 of 6425
added city 468 of 6425
added city 469 of 6425
added city 470 of 6425
added city 471 of 6425
added city 472 of 6425
added city 473 of 6425
added city 474 of 6425
added city 475 of 6425
added city 476 of 6425
added city 477 of 6425
added city 478 of 6425
added city 479 of 6425
added city 480 of 6425
added city 481 of 6425
added city 482 of 6425
added city 483 of 6425
added city 484 of 6425
added city 485 of 6425
added city 486 of 6425
added city 487 of 6425
added city 488 of 6425
added city 489 of 6425
added city 490 of 6425
added city 491 of 6425
added city 492 of 6425
added city 493 of 6425
added city 494 of 6425
added city 495 of 6425
added city 496 of 6425
added city 497 of 6425
added city 498 of 6425
added city 499 of 6425
added city 500 of 6425
added city 501 of 6425
added city 502 of 6425
added city 503 of 6425
added city 504 of 6425
added city 505 of 6425
added city 506 of 6425
added city 507 of 6425
added city 508 of 6425
added city 509 of 6425
added city 510 of 6425
added city 511 of 6425
added city 512 of 6425
added city 513 of 6425
added city 514 of 6425
added city 515 of 6425
added city 516 of 6425
added city 517 of 6425
added city 518 of 6425
added city 519 of 6425
added city 520 of 6425
added city 521 of 6425
added city 522 of 6425
added city 523 of 6425
added city 524 of 6425
added city 525 of 6425
added city 526 of 6425
added city 527 of 6425
added city 528 of 6425
added city 529 of 6425
added city 530 of 6425
added city 531 of 6425
added city 532 of 6425
added city 533 of 6425
added city 534 of 6425
added city 535 of 6425
added city 536 of 6425
added city 537 of 6425
added city 538 of 6425
added city 539 of 6425
added city 540 of 6425
added city 541 of 6425
added city 542 of 6425
added city 543 of 6425
added city 544 of 6425
added city 545 of 6425
added city 546 of 6425
added city 547 of 6425
added city 548 of 6425
added city 549 of 6425
added city 550 of 6425
added city 551 of 6425
added city 552 of 6425
added city 553 of 6425
added city 554 of 6425
added city 555 of 6425
added city 556 of 6425
added city 557 of 6425
added city 558 of 6425
added city 559 of 6425
added city 560 of 6425
added city 561 of 6425
added city 562 of 6425
added city 563 of 6425
added city 564 of 6425
added city 565 of 6425
added city 566 of 6425
added city 567 of 6425
added city 568 of 6425
added city 569 of 6425
added city 570 of 6425
added city 571 of 6425
added city 572 of 6425
added city 573 of 6425
added city 574 of 6425
added city 575 of 6425
added city 576 of 6425
added city 577 of 6425
added city 578 of 6425
added city 579 of 6425
added city 580 of 6425
added city 581 of 6425
added city 582 of 6425
added city 583 of 6425
added city 584 of 6425
added city 585 of 6425
added city 586 of 6425
added city 587 of 6425
added city 588 of 6425
added city 589 of 6425
added city 590 of 6425
added city 591 of 6425
added city 592 of 6425
added city 593 of 6425
added city 594 of 6425
added city 595 of 6425
added city 596 of 6425
added city 597 of 6425
added city 598 of 6425
added city 599 of 6425
added city 600 of 6425
added city 601 of 6425
added city 602 of 6425
added city 603 of 6425
added city 604 of 6425
added city 605 of 6425
added city 606 of 6425
added city 607 of 6425
added city 608 of 6425
added city 609 of 6425
added city 610 of 6425
added city 611 of 6425
added city 612 of 6425
added city 613 of 6425
added city 614 of 6425
added city 615 of 6425
added city 616 of 6425
added city 617 of 6425
added city 618 of 6425
added city 619 of 6425
added city 620 of 6425
added city 621 of 6425
added city 622 of 6425
added city 623 of 6425
added city 624 of 6425
added city 625 of 6425
added city 626 of 6425
added city 627 of 6425
added city 628 of 6425
added city 629 of 6425
added city 630 of 6425
added city 631 of 6425
added city 632 of 6425
added city 633 of 6425
added city 634 of 6425
added city 635 of 6425
added city 636 of 6425
added city 637 of 6425
added city 638 of 6425
added city 639 of 6425
added city 640 of 6425
added city 641 of 6425
added city 642 of 6425
added city 643 of 6425
added city 644 of 6425
added city 645 of 6425
added city 646 of 6425
added city 647 of 6425
added city 648 of 6425
added city 649 of 6425
added city 650 of 6425
added city 651 of 6425
added city 652 of 6425
added city 653 of 6425
added city 654 of 6425
added city 655 of 6425
added city 656 of 6425
added city 657 of 6425
added city 658 of 6425
added city 659 of 6425
added city 660 of 6425
added city 661 of 6425
added city 662 of 6425
added city 663 of 6425
added city 664 of 6425
added city 665 of 6425
added city 666 of 6425
added city 667 of 6425
added city 668 of 6425
added city 669 of 6425
added city 670 of 6425
added city 671 of 6425
added city 672 of 6425
added city 673 of 6425
added city 674 of 6425
added city 675 of 6425
added city 676 of 6425
added city 677 of 6425
added city 678 of 6425
added city 679 of 6425
added city 680 of 6425
added city 681 of 6425
added city 682 of 6425
added city 683 of 6425
added city 684 of 6425
added city 685 of 6425
added city 686 of 6425
added city 687 of 6425
added city 688 of 6425
added city 689 of 6425
added city 690 of 6425
added city 691 of 6425
added city 692 of 6425
added city 693 of 6425
added city 694 of 6425
added city 695 of 6425
added city 696 of 6425
added city 697 of 6425
added city 698 of 6425
added city 699 of 6425
added city 700 of 6425
added city 701 of 6425
added city 702 of 6425
added city 703 of 6425
added city 704 of 6425
added city 705 of 6425
added city 706 of 6425
added city 707 of 6425
added city 708 of 6425
added city 709 of 6425
added city 710 of 6425
added city 711 of 6425
added city 712 of 6425
added city 713 of 6425
added city 714 of 6425
added city 715 of 6425
added city 716 of 6425
added city 717 of 6425
added city 718 of 6425
added city 719 of 6425
added city 720 of 6425
added city 721 of 6425
added city 722 of 6425
added city 723 of 6425
added city 724 of 6425
added city 725 of 6425
added city 726 of 6425
added city 727 of 6425
added city 728 of 6425
added city 729 of 6425
added city 730 of 6425
added city 731 of 6425
added city 732 of 6425
added city 733 of 6425
added city 734 of 6425
added city 735 of 6425
added city 736 of 6425
added city 737 of 6425
added city 738 of 6425
added city 739 of 6425
added city 740 of 6425
added city 741 of 6425
added city 742 of 6425
added city 743 of 6425
added city 744 of 6425
added city 745 of 6425
added city 746 of 6425
added city 747 of 6425
added city 748 of 6425
added city 749 of 6425
added city 750 of 6425
added city 751 of 6425
added city 752 of 6425
added city 753 of 6425
added city 754 of 6425
added city 755 of 6425
added city 756 of 6425
added city 757 of 6425
added city 758 of 6425
added city 759 of 6425
added city 760 of 6425
added city 761 of 6425
added city 762 of 6425
added city 763 of 6425
added city 764 of 6425
added city 765 of 6425
added city 766 of 6425
added city 767 of 6425
added city 768 of 6425
added city 769 of 6425
added city 770 of 6425
added city 771 of 6425
added city 772 of 6425
added city 773 of 6425
added city 774 of 6425
added city 775 of 6425
added city 776 of 6425
added city 777 of 6425
added city 778 of 6425
added city 779 of 6425
added city 780 of 6425
added city 781 of 6425
added city 782 of 6425
added city 783 of 6425
added city 784 of 6425
added city 785 of 6425
added city 786 of 6425
added city 787 of 6425
added city 788 of 6425
added city 789 of 6425
added city 790 of 6425
added city 791 of 6425
added city 792 of 6425
added city 793 of 6425
added city 794 of 6425
added city 795 of 6425
added city 796 of 6425
added city 797 of 6425
added city 798 of 6425
added city 799 of 6425
added city 800 of 6425
added city 801 of 6425
added city 802 of 6425
added city 803 of 6425
added city 804 of 6425
added city 805 of 6425
added city 806 of 6425
added city 807 of 6425
added city 808 of 6425
added city 809 of 6425
added city 810 of 6425
added city 811 of 6425
added city 812 of 6425
added city 813 of 6425
added city 814 of 6425
added city 815 of 6425
added city 816 of 6425
added city 817 of 6425
added city 818 of 6425
added city 819 of 6425
added city 820 of 6425
added city 821 of 6425
added city 822 of 6425
added city 823 of 6425
added city 824 of 6425
added city 825 of 6425
added city 826 of 6425
added city 827 of 6425
added city 828 of 6425
added city 829 of 6425
added city 830 of 6425
added city 831 of 6425
added city 832 of 6425
added city 833 of 6425
added city 834 of 6425
added city 835 of 6425
added city 836 of 6425
added city 837 of 6425
added city 838 of 6425
added city 839 of 6425
added city 840 of 6425
added city 841 of 6425
added city 842 of 6425
added city 843 of 6425
added city 844 of 6425
added city 845 of 6425
added city 846 of 6425
added city 847 of 6425
added city 848 of 6425
added city 849 of 6425
added city 850 of 6425
added city 851 of 6425
added city 852 of 6425
added city 853 of 6425
added city 854 of 6425
added city 855 of 6425
added city 856 of 6425
added city 857 of 6425
added city 858 of 6425
added city 859 of 6425
added city 860 of 6425
added city 861 of 6425
added city 862 of 6425
added city 863 of 6425
added city 864 of 6425
added city 865 of 6425
added city 866 of 6425
added city 867 of 6425
added city 868 of 6425
added city 869 of 6425
added city 870 of 6425
added city 871 of 6425
added city 872 of 6425
added city 873 of 6425
added city 874 of 6425
added city 875 of 6425
added city 876 of 6425
added city 877 of 6425
added city 878 of 6425
added city 879 of 6425
added city 880 of 6425
added city 881 of 6425
added city 882 of 6425
added city 883 of 6425
added city 884 of 6425
added city 885 of 6425
added city 886 of 6425
added city 887 of 6425
added city 888 of 6425
added city 889 of 6425
added city 890 of 6425
added city 891 of 6425
added city 892 of 6425
added city 893 of 6425
added city 894 of 6425
added city 895 of 6425
added city 896 of 6425
added city 897 of 6425
added city 898 of 6425
added city 899 of 6425
added city 900 of 6425
added city 901 of 6425
added city 902 of 6425
added city 903 of 6425
added city 904 of 6425
added city 905 of 6425
added city 906 of 6425
added city 907 of 6425
added city 908 of 6425
added city 909 of 6425
added city 910 of 6425
added city 911 of 6425
added city 912 of 6425
added city 913 of 6425
added city 914 of 6425
added city 915 of 6425
added city 916 of 6425
added city 917 of 6425
added city 918 of 6425
added city 919 of 6425
added city 920 of 6425
added city 921 of 6425
added city 922 of 6425
added city 923 of 6425
added city 924 of 6425
added city 925 of 6425
added city 926 of 6425
added city 927 of 6425
added city 928 of 6425
added city 929 of 6425
added city 930 of 6425
added city 931 of 6425
added city 932 of 6425
added city 933 of 6425
added city 934 of 6425
added city 935 of 6425
added city 936 of 6425
added city 937 of 6425
added city 938 of 6425
added city 939 of 6425
added city 940 of 6425
added city 941 of 6425
added city 942 of 6425
added city 943 of 6425
added city 944 of 6425
added city 945 of 6425
added city 946 of 6425
added city 947 of 6425
added city 948 of 6425
added city 949 of 6425
added city 950 of 6425
added city 951 of 6425
added city 952 of 6425
added city 953 of 6425
added city 954 of 6425
added city 955 of 6425
added city 956 of 6425
added city 957 of 6425
added city 958 of 6425
added city 959 of 6425
added city 960 of 6425
added city 961 of 6425
added city 962 of 6425
added city 963 of 6425
added city 964 of 6425
added city 965 of 6425
added city 966 of 6425
added city 967 of 6425
added city 968 of 6425
added city 969 of 6425
added city 970 of 6425
added city 971 of 6425
added city 972 of 6425
added city 973 of 6425
added city 974 of 6425
added city 975 of 6425
added city 976 of 6425
added city 977 of 6425
added city 978 of 6425
added city 979 of 6425
added city 980 of 6425
added city 981 of 6425
added city 982 of 6425
added city 983 of 6425
added city 984 of 6425
added city 985 of 6425
added city 986 of 6425
added city 987 of 6425
added city 988 of 6425
added city 989 of 6425
added city 990 of 6425
added city 991 of 6425
added city 992 of 6425
added city 993 of 6425
added city 994 of 6425
added city 995 of 6425
added city 996 of 6425
added city 997 of 6425
added city 998 of 6425
added city 999 of 6425
added city 1000 of 6425
added city 1001 of 6425
added city 1002 of 6425
added city 1003 of 6425
added city 1004 of 6425
added city 1005 of 6425
added city 1006 of 6425
added city 1007 of 6425
added city 1008 of 6425
added city 1009 of 6425
added city 1010 of 6425
added city 1011 of 6425
added city 1012 of 6425
added city 1013 of 6425
added city 1014 of 6425
added city 1015 of 6425
added city 1016 of 6425
added city 1017 of 6425
added city 1018 of 6425
added city 1019 of 6425
added city 1020 of 6425
added city 1021 of 6425
added city 1022 of 6425
added city 1023 of 6425
added city 1024 of 6425
added city 1025 of 6425
added city 1026 of 6425
added city 1027 of 6425
added city 1028 of 6425
added city 1029 of 6425
added city 1030 of 6425
added city 1031 of 6425
added city 1032 of 6425
added city 1033 of 6425
added city 1034 of 6425
added city 1035 of 6425
added city 1036 of 6425
added city 1037 of 6425
added city 1038 of 6425
added city 1039 of 6425
added city 1040 of 6425
added city 1041 of 6425
added city 1042 of 6425
added city 1043 of 6425
added city 1044 of 6425
added city 1045 of 6425
added city 1046 of 6425
added city 1047 of 6425
added city 1048 of 6425
added city 1049 of 6425
added city 1050 of 6425
added city 1051 of 6425
added city 1052 of 6425
added city 1053 of 6425
added city 1054 of 6425
added city 1055 of 6425
added city 1056 of 6425
added city 1057 of 6425
added city 1058 of 6425
added city 1059 of 6425
added city 1060 of 6425
added city 1061 of 6425
added city 1062 of 6425
added city 1063 of 6425
added city 1064 of 6425
added city 1065 of 6425
added city 1066 of 6425
added city 1067 of 6425
added city 1068 of 6425
added city 1069 of 6425
added city 1070 of 6425
added city 1071 of 6425
added city 1072 of 6425
added city 1073 of 6425
added city 1074 of 6425
added city 1075 of 6425
added city 1076 of 6425
added city 1077 of 6425
added city 1078 of 6425
added city 1079 of 6425
added city 1080 of 6425
added city 1081 of 6425
added city 1082 of 6425
added city 1083 of 6425
added city 1084 of 6425
added city 1085 of 6425
added city 1086 of 6425
added city 1087 of 6425
added city 1088 of 6425
added city 1089 of 6425
added city 1090 of 6425
added city 1091 of 6425
added city 1092 of 6425
added city 1093 of 6425
added city 1094 of 6425
added city 1095 of 6425
added city 1096 of 6425
added city 1097 of 6425
added city 1098 of 6425
added city 1099 of 6425
added city 1100 of 6425
added city 1101 of 6425
added city 1102 of 6425
added city 1103 of 6425
added city 1104 of 6425
added city 1105 of 6425
added city 1106 of 6425
added city 1107 of 6425
added city 1108 of 6425
added city 1109 of 6425
added city 1110 of 6425
added city 1111 of 6425
added city 1112 of 6425
added city 1113 of 6425
added city 1114 of 6425
added city 1115 of 6425
added city 1116 of 6425
added city 1117 of 6425
added city 1118 of 6425
added city 1119 of 6425
added city 1120 of 6425
added city 1121 of 6425
added city 1122 of 6425
added city 1123 of 6425
added city 1124 of 6425
added city 1125 of 6425
added city 1126 of 6425
added city 1127 of 6425
added city 1128 of 6425
added city 1129 of 6425
added city 1130 of 6425
added city 1131 of 6425
added city 1132 of 6425
added city 1133 of 6425
added city 1134 of 6425
added city 1135 of 6425
added city 1136 of 6425
added city 1137 of 6425
added city 1138 of 6425
added city 1139 of 6425
added city 1140 of 6425
added city 1141 of 6425
added city 1142 of 6425
added city 1143 of 6425
added city 1144 of 6425
added city 1145 of 6425
added city 1146 of 6425
added city 1147 of 6425
added city 1148 of 6425
added city 1149 of 6425
added city 1150 of 6425
added city 1151 of 6425
added city 1152 of 6425
added city 1153 of 6425
added city 1154 of 6425
added city 1155 of 6425
added city 1156 of 6425
added city 1157 of 6425
added city 1158 of 6425
added city 1159 of 6425
added city 1160 of 6425
added city 1161 of 6425
added city 1162 of 6425
added city 1163 of 6425
added city 1164 of 6425
added city 1165 of 6425
added city 1166 of 6425
added city 1167 of 6425
added city 1168 of 6425
added city 1169 of 6425
added city 1170 of 6425
added city 1171 of 6425
added city 1172 of 6425
added city 1173 of 6425
added city 1174 of 6425
added city 1175 of 6425
added city 1176 of 6425
added city 1177 of 6425
added city 1178 of 6425
added city 1179 of 6425
added city 1180 of 6425
added city 1181 of 6425
added city 1182 of 6425
added city 1183 of 6425
added city 1184 of 6425
added city 1185 of 6425
added city 1186 of 6425
added city 1187 of 6425
added city 1188 of 6425
added city 1189 of 6425
added city 1190 of 6425
added city 1191 of 6425
added city 1192 of 6425
added city 1193 of 6425
added city 1194 of 6425
added city 1195 of 6425
added city 1196 of 6425
added city 1197 of 6425
added city 1198 of 6425
added city 1199 of 6425
added city 1200 of 6425
added city 1201 of 6425
added city 1202 of 6425
added city 1203 of 6425
added city 1204 of 6425
added city 1205 of 6425
added city 1206 of 6425
added city 1207 of 6425
added city 1208 of 6425
added city 1209 of 6425
added city 1210 of 6425
added city 1211 of 6425
added city 1212 of 6425
added city 1213 of 6425
added city 1214 of 6425
added city 1215 of 6425
added city 1216 of 6425
added city 1217 of 6425
added city 1218 of 6425
added city 1219 of 6425
added city 1220 of 6425
added city 1221 of 6425
added city 1222 of 6425
added city 1223 of 6425
added city 1224 of 6425
added city 1225 of 6425
added city 1226 of 6425
added city 1227 of 6425
added city 1228 of 6425
added city 1229 of 6425
added city 1230 of 6425
added city 1231 of 6425
added city 1232 of 6425
added city 1233 of 6425
added city 1234 of 6425
added city 1235 of 6425
added city 1236 of 6425
added city 1237 of 6425
added city 1238 of 6425
added city 1239 of 6425
added city 1240 of 6425
added city 1241 of 6425
added city 1242 of 6425
added city 1243 of 6425
added city 1244 of 6425
added city 1245 of 6425
added city 1246 of 6425
added city 1247 of 6425
added city 1248 of 6425
added city 1249 of 6425
added city 1250 of 6425
added city 1251 of 6425
added city 1252 of 6425
added city 1253 of 6425
added city 1254 of 6425
added city 1255 of 6425
added city 1256 of 6425
added city 1257 of 6425
added city 1258 of 6425
added city 1259 of 6425
added city 1260 of 6425
added city 1261 of 6425
added city 1262 of 6425
added city 1263 of 6425
added city 1264 of 6425
added city 1265 of 6425
added city 1266 of 6425
added city 1267 of 6425
added city 1268 of 6425
added city 1269 of 6425
added city 1270 of 6425
added city 1271 of 6425
added city 1272 of 6425
added city 1273 of 6425
added city 1274 of 6425
added city 1275 of 6425
added city 1276 of 6425
added city 1277 of 6425
added city 1278 of 6425
added city 1279 of 6425
added city 1280 of 6425
added city 1281 of 6425
added city 1282 of 6425
added city 1283 of 6425
added city 1284 of 6425
added city 1285 of 6425
added city 1286 of 6425
added city 1287 of 6425
added city 1288 of 6425
added city 1289 of 6425
added city 1290 of 6425
added city 1291 of 6425
added city 1292 of 6425
added city 1293 of 6425
added city 1294 of 6425
added city 1295 of 6425
added city 1296 of 6425
added city 1297 of 6425
added city 1298 of 6425
added city 1299 of 6425
added city 1300 of 6425
added city 1301 of 6425
added city 1302 of 6425
added city 1303 of 6425
added city 1304 of 6425
added city 1305 of 6425
added city 1306 of 6425
added city 1307 of 6425
added city 1308 of 6425
added city 1309 of 6425
added city 1310 of 6425
added city 1311 of 6425
added city 1312 of 6425
added city 1313 of 6425
added city 1314 of 6425
added city 1315 of 6425
added city 1316 of 6425
added city 1317 of 6425
added city 1318 of 6425
added city 1319 of 6425
added city 1320 of 6425
added city 1321 of 6425
added city 1322 of 6425
added city 1323 of 6425
added city 1324 of 6425
added city 1325 of 6425
added city 1326 of 6425
added city 1327 of 6425
added city 1328 of 6425
added city 1329 of 6425
added city 1330 of 6425
added city 1331 of 6425
added city 1332 of 6425
added city 1333 of 6425
added city 1334 of 6425
added city 1335 of 6425
added city 1336 of 6425
added city 1337 of 6425
added city 1338 of 6425
added city 1339 of 6425
added city 1340 of 6425
added city 1341 of 6425
added city 1342 of 6425
added city 1343 of 6425
added city 1344 of 6425
added city 1345 of 6425
added city 1346 of 6425
added city 1347 of 6425
added city 1348 of 6425
added city 1349 of 6425
added city 1350 of 6425
added city 1351 of 6425
added city 1352 of 6425
added city 1353 of 6425
added city 1354 of 6425
added city 1355 of 6425
added city 1356 of 6425
added city 1357 of 6425
added city 1358 of 6425
added city 1359 of 6425
added city 1360 of 6425
added city 1361 of 6425
added city 1362 of 6425
added city 1363 of 6425
added city 1364 of 6425
added city 1365 of 6425
added city 1366 of 6425
added city 1367 of 6425
added city 1368 of 6425
added city 1369 of 6425
added city 1370 of 6425
added city 1371 of 6425
added city 1372 of 6425
added city 1373 of 6425
added city 1374 of 6425
added city 1375 of 6425
added city 1376 of 6425
added city 1377 of 6425
added city 1378 of 6425
added city 1379 of 6425
added city 1380 of 6425
added city 1381 of 6425
added city 1382 of 6425
added city 1383 of 6425
added city 1384 of 6425
added city 1385 of 6425
added city 1386 of 6425
added city 1387 of 6425
added city 1388 of 6425
added city 1389 of 6425
added city 1390 of 6425
added city 1391 of 6425
added city 1392 of 6425
added city 1393 of 6425
added city 1394 of 6425
added city 1395 of 6425
added city 1396 of 6425
added city 1397 of 6425
added city 1398 of 6425
added city 1399 of 6425
added city 1400 of 6425
added city 1401 of 6425
added city 1402 of 6425
added city 1403 of 6425
added city 1404 of 6425
added city 1405 of 6425
added city 1406 of 6425
added city 1407 of 6425
added city 1408 of 6425
added city 1409 of 6425
added city 1410 of 6425
added city 1411 of 6425
added city 1412 of 6425
added city 1413 of 6425
added city 1414 of 6425
added city 1415 of 6425
added city 1416 of 6425
added city 1417 of 6425
added city 1418 of 6425
added city 1419 of 6425
added city 1420 of 6425
added city 1421 of 6425
added city 1422 of 6425
added city 1423 of 6425
added city 1424 of 6425
added city 1425 of 6425
added city 1426 of 6425
added city 1427 of 6425
added city 1428 of 6425
added city 1429 of 6425
added city 1430 of 6425
added city 1431 of 6425
added city 1432 of 6425
added city 1433 of 6425
added city 1434 of 6425
added city 1435 of 6425
added city 1436 of 6425
added city 1437 of 6425
added city 1438 of 6425
added city 1439 of 6425
added city 1440 of 6425
added city 1441 of 6425
added city 1442 of 6425
added city 1443 of 6425
added city 1444 of 6425
added city 1445 of 6425
added city 1446 of 6425
added city 1447 of 6425
added city 1448 of 6425
added city 1449 of 6425
added city 1450 of 6425
added city 1451 of 6425
added city 1452 of 6425
added city 1453 of 6425
added city 1454 of 6425
added city 1455 of 6425
added city 1456 of 6425
added city 1457 of 6425
added city 1458 of 6425
added city 1459 of 6425
added city 1460 of 6425
added city 1461 of 6425
added city 1462 of 6425
added city 1463 of 6425
added city 1464 of 6425
added city 1465 of 6425
added city 1466 of 6425
added city 1467 of 6425
added city 1468 of 6425
added city 1469 of 6425
added city 1470 of 6425
added city 1471 of 6425
added city 1472 of 6425
added city 1473 of 6425
added city 1474 of 6425
added city 1475 of 6425
added city 1476 of 6425
added city 1477 of 6425
added city 1478 of 6425
added city 1479 of 6425
added city 1480 of 6425
added city 1481 of 6425
added city 1482 of 6425
added city 1483 of 6425
added city 1484 of 6425
added city 1485 of 6425
added city 1486 of 6425
added city 1487 of 6425
added city 1488 of 6425
added city 1489 of 6425
added city 1490 of 6425
added city 1491 of 6425
added city 1492 of 6425
added city 1493 of 6425
added city 1494 of 6425
added city 1495 of 6425
added city 1496 of 6425
added city 1497 of 6425
added city 1498 of 6425
added city 1499 of 6425
added city 1500 of 6425
added city 1501 of 6425
added city 1502 of 6425
added city 1503 of 6425
added city 1504 of 6425
added city 1505 of 6425
added city 1506 of 6425
added city 1507 of 6425
added city 1508 of 6425
added city 1509 of 6425
added city 1510 of 6425
added city 1511 of 6425
added city 1512 of 6425
added city 1513 of 6425
added city 1514 of 6425
added city 1515 of 6425
added city 1516 of 6425
added city 1517 of 6425
added city 1518 of 6425
added city 1519 of 6425
added city 1520 of 6425
added city 1521 of 6425
added city 1522 of 6425
added city 1523 of 6425
added city 1524 of 6425
added city 1525 of 6425
added city 1526 of 6425
added city 1527 of 6425
added city 1528 of 6425
added city 1529 of 6425
added city 1530 of 6425
added city 1531 of 6425
added city 1532 of 6425
added city 1533 of 6425
added city 1534 of 6425
added city 1535 of 6425
added city 1536 of 6425
added city 1537 of 6425
added city 1538 of 6425
added city 1539 of 6425
added city 1540 of 6425
added city 1541 of 6425
added city 1542 of 6425
added city 1543 of 6425
added city 1544 of 6425
added city 1545 of 6425
added city 1546 of 6425
added city 1547 of 6425
added city 1548 of 6425
added city 1549 of 6425
added city 1550 of 6425
added city 1551 of 6425
added city 1552 of 6425
added city 1553 of 6425
added city 1554 of 6425
added city 1555 of 6425
added city 1556 of 6425
added city 1557 of 6425
added city 1558 of 6425
added city 1559 of 6425
added city 1560 of 6425
added city 1561 of 6425
added city 1562 of 6425
added city 1563 of 6425
added city 1564 of 6425
added city 1565 of 6425
added city 1566 of 6425
added city 1567 of 6425
added city 1568 of 6425
added city 1569 of 6425
added city 1570 of 6425
added city 1571 of 6425
added city 1572 of 6425
added city 1573 of 6425
added city 1574 of 6425
added city 1575 of 6425
added city 1576 of 6425
added city 1577 of 6425
added city 1578 of 6425
added city 1579 of 6425
added city 1580 of 6425
added city 1581 of 6425
added city 1582 of 6425
added city 1583 of 6425
added city 1584 of 6425
added city 1585 of 6425
added city 1586 of 6425
added city 1587 of 6425
added city 1588 of 6425
added city 1589 of 6425
added city 1590 of 6425
added city 1591 of 6425
added city 1592 of 6425
added city 1593 of 6425
added city 1594 of 6425
added city 1595 of 6425
added city 1596 of 6425
added city 1597 of 6425
added city 1598 of 6425
added city 1599 of 6425
added city 1600 of 6425
added city 1601 of 6425
added city 1602 of 6425
added city 1603 of 6425
added city 1604 of 6425
added city 1605 of 6425
added city 1606 of 6425
added city 1607 of 6425
added city 1608 of 6425
added city 1609 of 6425
added city 1610 of 6425
added city 1611 of 6425
added city 1612 of 6425
added city 1613 of 6425
added city 1614 of 6425
added city 1615 of 6425
added city 1616 of 6425
added city 1617 of 6425
added city 1618 of 6425
added city 1619 of 6425
added city 1620 of 6425
added city 1621 of 6425
added city 1622 of 6425
added city 1623 of 6425
added city 1624 of 6425
added city 1625 of 6425
added city 1626 of 6425
added city 1627 of 6425
added city 1628 of 6425
added city 1629 of 6425
added city 1630 of 6425
added city 1631 of 6425
added city 1632 of 6425
added city 1633 of 6425
added city 1634 of 6425
added city 1635 of 6425
added city 1636 of 6425
added city 1637 of 6425
added city 1638 of 6425
added city 1639 of 6425
added city 1640 of 6425
added city 1641 of 6425
added city 1642 of 6425
added city 1643 of 6425
added city 1644 of 6425
added city 1645 of 6425
added city 1646 of 6425
added city 1647 of 6425
added city 1648 of 6425
added city 1649 of 6425
added city 1650 of 6425
added city 1651 of 6425
added city 1652 of 6425
added city 1653 of 6425
added city 1654 of 6425
added city 1655 of 6425
added city 1656 of 6425
added city 1657 of 6425
added city 1658 of 6425
added city 1659 of 6425
added city 1660 of 6425
added city 1661 of 6425
added city 1662 of 6425
added city 1663 of 6425
added city 1664 of 6425
added city 1665 of 6425
added city 1666 of 6425
added city 1667 of 6425
added city 1668 of 6425
added city 1669 of 6425
added city 1670 of 6425
added city 1671 of 6425
added city 1672 of 6425
added city 1673 of 6425
added city 1674 of 6425
added city 1675 of 6425
added city 1676 of 6425
added city 1677 of 6425
added city 1678 of 6425
added city 1679 of 6425
added city 1680 of 6425
added city 1681 of 6425
added city 1682 of 6425
added city 1683 of 6425
added city 1684 of 6425
added city 1685 of 6425
added city 1686 of 6425
added city 1687 of 6425
added city 1688 of 6425
added city 1689 of 6425
added city 1690 of 6425
added city 1691 of 6425
added city 1692 of 6425
added city 1693 of 6425
added city 1694 of 6425
added city 1695 of 6425
added city 1696 of 6425
added city 1697 of 6425
added city 1698 of 6425
added city 1699 of 6425
added city 1700 of 6425
added city 1701 of 6425
added city 1702 of 6425
added city 1703 of 6425
added city 1704 of 6425
added city 1705 of 6425
added city 1706 of 6425
added city 1707 of 6425
added city 1708 of 6425
added city 1709 of 6425
added city 1710 of 6425
added city 1711 of 6425
added city 1712 of 6425
added city 1713 of 6425
added city 1714 of 6425
added city 1715 of 6425
added city 1716 of 6425
added city 1717 of 6425
added city 1718 of 6425
added city 1719 of 6425
added city 1720 of 6425
added city 1721 of 6425
added city 1722 of 6425
added city 1723 of 6425
added city 1724 of 6425
added city 1725 of 6425
added city 1726 of 6425
added city 1727 of 6425
added city 1728 of 6425
added city 1729 of 6425
added city 1730 of 6425
added city 1731 of 6425
added city 1732 of 6425
added city 1733 of 6425
added city 1734 of 6425
added city 1735 of 6425
added city 1736 of 6425
added city 1737 of 6425
added city 1738 of 6425
added city 1739 of 6425
added city 1740 of 6425
added city 1741 of 6425
added city 1742 of 6425
added city 1743 of 6425
added city 1744 of 6425
added city 1745 of 6425
added city 1746 of 6425
added city 1747 of 6425
added city 1748 of 6425
added city 1749 of 6425
added city 1750 of 6425
added city 1751 of 6425
added city 1752 of 6425
added city 1753 of 6425
added city 1754 of 6425
added city 1755 of 6425
added city 1756 of 6425
added city 1757 of 6425
added city 1758 of 6425
added city 1759 of 6425
added city 1760 of 6425
added city 1761 of 6425
added city 1762 of 6425
added city 1763 of 6425
added city 1764 of 6425
added city 1765 of 6425
added city 1766 of 6425
added city 1767 of 6425
added city 1768 of 6425
added city 1769 of 6425
added city 1770 of 6425
added city 1771 of 6425
added city 1772 of 6425
added city 1773 of 6425
added city 1774 of 6425
added city 1775 of 6425
added city 1776 of 6425
added city 1777 of 6425
added city 1778 of 6425
added city 1779 of 6425
added city 1780 of 6425
added city 1781 of 6425
added city 1782 of 6425
added city 1783 of 6425
added city 1784 of 6425
added city 1785 of 6425
added city 1786 of 6425
added city 1787 of 6425
added city 1788 of 6425
added city 1789 of 6425
added city 1790 of 6425
added city 1791 of 6425
added city 1792 of 6425
added city 1793 of 6425
added city 1794 of 6425
added city 1795 of 6425
added city 1796 of 6425
added city 1797 of 6425
added city 1798 of 6425
added city 1799 of 6425
added city 1800 of 6425
added city 1801 of 6425
added city 1802 of 6425
added city 1803 of 6425
added city 1804 of 6425
added city 1805 of 6425
added city 1806 of 6425
added city 1807 of 6425
added city 1808 of 6425
added city 1809 of 6425
added city 1810 of 6425
added city 1811 of 6425
added city 1812 of 6425
added city 1813 of 6425
added city 1814 of 6425
added city 1815 of 6425
added city 1816 of 6425
added city 1817 of 6425
added city 1818 of 6425
added city 1819 of 6425
added city 1820 of 6425
added city 1821 of 6425
added city 1822 of 6425
added city 1823 of 6425
added city 1824 of 6425
added city 1825 of 6425
added city 1826 of 6425
added city 1827 of 6425
added city 1828 of 6425
added city 1829 of 6425
added city 1830 of 6425
added city 1831 of 6425
added city 1832 of 6425
added city 1833 of 6425
added city 1834 of 6425
added city 1835 of 6425
added city 1836 of 6425
added city 1837 of 6425
added city 1838 of 6425
added city 1839 of 6425
added city 1840 of 6425
added city 1841 of 6425
added city 1842 of 6425
added city 1843 of 6425
added city 1844 of 6425
added city 1845 of 6425
added city 1846 of 6425
added city 1847 of 6425
added city 1848 of 6425
added city 1849 of 6425
added city 1850 of 6425
added city 1851 of 6425
added city 1852 of 6425
added city 1853 of 6425
added city 1854 of 6425
added city 1855 of 6425
added city 1856 of 6425
added city 1857 of 6425
added city 1858 of 6425
added city 1859 of 6425
added city 1860 of 6425
added city 1861 of 6425
added city 1862 of 6425
added city 1863 of 6425
added city 1864 of 6425
added city 1865 of 6425
added city 1866 of 6425
added city 1867 of 6425
added city 1868 of 6425
added city 1869 of 6425
added city 1870 of 6425
added city 1871 of 6425
added city 1872 of 6425
added city 1873 of 6425
added city 1874 of 6425
added city 1875 of 6425
added city 1876 of 6425
added city 1877 of 6425
added city 1878 of 6425
added city 1879 of 6425
added city 1880 of 6425
added city 1881 of 6425
added city 1882 of 6425
added city 1883 of 6425
added city 1884 of 6425
added city 1885 of 6425
added city 1886 of 6425
added city 1887 of 6425
added city 1888 of 6425
added city 1889 of 6425
added city 1890 of 6425
added city 1891 of 6425
added city 1892 of 6425
added city 1893 of 6425
added city 1894 of 6425
added city 1895 of 6425
added city 1896 of 6425
added city 1897 of 6425
added city 1898 of 6425
added city 1899 of 6425
added city 1900 of 6425
added city 1901 of 6425
added city 1902 of 6425
added city 1903 of 6425
added city 1904 of 6425
added city 1905 of 6425
added city 1906 of 6425
added city 1907 of 6425
added city 1908 of 6425
added city 1909 of 6425
added city 1910 of 6425
added city 1911 of 6425
added city 1912 of 6425
added city 1913 of 6425
added city 1914 of 6425
added city 1915 of 6425
added city 1916 of 6425
added city 1917 of 6425
added city 1918 of 6425
added city 1919 of 6425
added city 1920 of 6425
added city 1921 of 6425
added city 1922 of 6425
added city 1923 of 6425
added city 1924 of 6425
added city 1925 of 6425
added city 1926 of 6425
added city 1927 of 6425
added city 1928 of 6425
added city 1929 of 6425
added city 1930 of 6425
added city 1931 of 6425
added city 1932 of 6425
added city 1933 of 6425
added city 1934 of 6425
added city 1935 of 6425
added city 1936 of 6425
added city 1937 of 6425
added city 1938 of 6425
added city 1939 of 6425
added city 1940 of 6425
added city 1941 of 6425
added city 1942 of 6425
added city 1943 of 6425
added city 1944 of 6425
added city 1945 of 6425
added city 1946 of 6425
added city 1947 of 6425
added city 1948 of 6425
added city 1949 of 6425
added city 1950 of 6425
added city 1951 of 6425
added city 1952 of 6425
added city 1953 of 6425
added city 1954 of 6425
added city 1955 of 6425
added city 1956 of 6425
added city 1957 of 6425
added city 1958 of 6425
added city 1959 of 6425
added city 1960 of 6425
added city 1961 of 6425
added city 1962 of 6425
added city 1963 of 6425
added city 1964 of 6425
added city 1965 of 6425
added city 1966 of 6425
added city 1967 of 6425
added city 1968 of 6425
added city 1969 of 6425
added city 1970 of 6425
added city 1971 of 6425
added city 1972 of 6425
added city 1973 of 6425
added city 1974 of 6425
added city 1975 of 6425
added city 1976 of 6425
added city 1977 of 6425
added city 1978 of 6425
added city 1979 of 6425
added city 1980 of 6425
added city 1981 of 6425
added city 1982 of 6425
added city 1983 of 6425
added city 1984 of 6425
added city 1985 of 6425
added city 1986 of 6425
added city 1987 of 6425
added city 1988 of 6425
added city 1989 of 6425
added city 1990 of 6425
added city 1991 of 6425
added city 1992 of 6425
added city 1993 of 6425
added city 1994 of 6425
added city 1995 of 6425
added city 1996 of 6425
added city 1997 of 6425
added city 1998 of 6425
added city 1999 of 6425
added city 2000 of 6425
added city 2001 of 6425
added city 2002 of 6425
added city 2003 of 6425
added city 2004 of 6425
added city 2005 of 6425
added city 2006 of 6425
added city 2007 of 6425
added city 2008 of 6425
added city 2009 of 6425
added city 2010 of 6425
added city 2011 of 6425
added city 2012 of 6425
added city 2013 of 6425
added city 2014 of 6425
added city 2015 of 6425
added city 2016 of 6425
added city 2017 of 6425
added city 2018 of 6425
added city 2019 of 6425
added city 2020 of 6425
added city 2021 of 6425
added city 2022 of 6425
added city 2023 of 6425
added city 2024 of 6425
added city 2025 of 6425
added city 2026 of 6425
added city 2027 of 6425
added city 2028 of 6425
added city 2029 of 6425
added city 2030 of 6425
added city 2031 of 6425
added city 2032 of 6425
added city 2033 of 6425
added city 2034 of 6425
added city 2035 of 6425
added city 2036 of 6425
added city 2037 of 6425
added city 2038 of 6425
added city 2039 of 6425
added city 2040 of 6425
added city 2041 of 6425
added city 2042 of 6425
added city 2043 of 6425
added city 2044 of 6425
added city 2045 of 6425
added city 2046 of 6425
added city 2047 of 6425
added city 2048 of 6425
added city 2049 of 6425
added city 2050 of 6425
added city 2051 of 6425
added city 2052 of 6425
added city 2053 of 6425
added city 2054 of 6425
added city 2055 of 6425
added city 2056 of 6425
added city 2057 of 6425
added city 2058 of 6425
added city 2059 of 6425
added city 2060 of 6425
added city 2061 of 6425
added city 2062 of 6425
added city 2063 of 6425
added city 2064 of 6425
added city 2065 of 6425
added city 2066 of 6425
added city 2067 of 6425
added city 2068 of 6425
added city 2069 of 6425
added city 2070 of 6425
added city 2071 of 6425
added city 2072 of 6425
added city 2073 of 6425
added city 2074 of 6425
added city 2075 of 6425
added city 2076 of 6425
added city 2077 of 6425
added city 2078 of 6425
added city 2079 of 6425
added city 2080 of 6425
added city 2081 of 6425
added city 2082 of 6425
added city 2083 of 6425
added city 2084 of 6425
added city 2085 of 6425
added city 2086 of 6425
added city 2087 of 6425
added city 2088 of 6425
added city 2089 of 6425
added city 2090 of 6425
added city 2091 of 6425
added city 2092 of 6425
added city 2093 of 6425
added city 2094 of 6425
added city 2095 of 6425
added city 2096 of 6425
added city 2097 of 6425
added city 2098 of 6425
added city 2099 of 6425
added city 2100 of 6425
added city 2101 of 6425
added city 2102 of 6425
added city 2103 of 6425
added city 2104 of 6425
added city 2105 of 6425
added city 2106 of 6425
added city 2107 of 6425
added city 2108 of 6425
added city 2109 of 6425
added city 2110 of 6425
added city 2111 of 6425
added city 2112 of 6425
added city 2113 of 6425
added city 2114 of 6425
added city 2115 of 6425
added city 2116 of 6425
added city 2117 of 6425
added city 2118 of 6425
added city 2119 of 6425
added city 2120 of 6425
added city 2121 of 6425
added city 2122 of 6425
added city 2123 of 6425
added city 2124 of 6425
added city 2125 of 6425
added city 2126 of 6425
added city 2127 of 6425
added city 2128 of 6425
added city 2129 of 6425
added city 2130 of 6425
added city 2131 of 6425
added city 2132 of 6425
added city 2133 of 6425
added city 2134 of 6425
added city 2135 of 6425
added city 2136 of 6425
added city 2137 of 6425
added city 2138 of 6425
added city 2139 of 6425
added city 2140 of 6425
added city 2141 of 6425
added city 2142 of 6425
added city 2143 of 6425
added city 2144 of 6425
added city 2145 of 6425
added city 2146 of 6425
added city 2147 of 6425
added city 2148 of 6425
added city 2149 of 6425
added city 2150 of 6425
added city 2151 of 6425
added city 2152 of 6425
added city 2153 of 6425
added city 2154 of 6425
added city 2155 of 6425
added city 2156 of 6425
added city 2157 of 6425
added city 2158 of 6425
added city 2159 of 6425
added city 2160 of 6425
added city 2161 of 6425
added city 2162 of 6425
added city 2163 of 6425
added city 2164 of 6425
added city 2165 of 6425
added city 2166 of 6425
added city 2167 of 6425
added city 2168 of 6425
added city 2169 of 6425
added city 2170 of 6425
added city 2171 of 6425
added city 2172 of 6425
added city 2173 of 6425
added city 2174 of 6425
added city 2175 of 6425
added city 2176 of 6425
added city 2177 of 6425
added city 2178 of 6425
added city 2179 of 6425
added city 2180 of 6425
added city 2181 of 6425
added city 2182 of 6425
added city 2183 of 6425
added city 2184 of 6425
added city 2185 of 6425
added city 2186 of 6425
added city 2187 of 6425
added city 2188 of 6425
added city 2189 of 6425
added city 2190 of 6425
added city 2191 of 6425
added city 2192 of 6425
added city 2193 of 6425
added city 2194 of 6425
added city 2195 of 6425
added city 2196 of 6425
added city 2197 of 6425
added city 2198 of 6425
added city 2199 of 6425
added city 2200 of 6425
added city 2201 of 6425
added city 2202 of 6425
added city 2203 of 6425
added city 2204 of 6425
added city 2205 of 6425
added city 2206 of 6425
added city 2207 of 6425
added city 2208 of 6425
added city 2209 of 6425
added city 2210 of 6425
added city 2211 of 6425
added city 2212 of 6425
added city 2213 of 6425
added city 2214 of 6425
added city 2215 of 6425
added city 2216 of 6425
added city 2217 of 6425
added city 2218 of 6425
added city 2219 of 6425
added city 2220 of 6425
added city 2221 of 6425
added city 2222 of 6425
added city 2223 of 6425
added city 2224 of 6425
added city 2225 of 6425
added city 2226 of 6425
added city 2227 of 6425
added city 2228 of 6425
added city 2229 of 6425
added city 2230 of 6425
added city 2231 of 6425
added city 2232 of 6425
added city 2233 of 6425
added city 2234 of 6425
added city 2235 of 6425
added city 2236 of 6425
added city 2237 of 6425
added city 2238 of 6425
added city 2239 of 6425
added city 2240 of 6425
added city 2241 of 6425
added city 2242 of 6425
added city 2243 of 6425
added city 2244 of 6425
added city 2245 of 6425
added city 2246 of 6425
added city 2247 of 6425
added city 2248 of 6425
added city 2249 of 6425
added city 2250 of 6425
added city 2251 of 6425
added city 2252 of 6425
added city 2253 of 6425
added city 2254 of 6425
added city 2255 of 6425
added city 2256 of 6425
added city 2257 of 6425
added city 2258 of 6425
added city 2259 of 6425
added city 2260 of 6425
added city 2261 of 6425
added city 2262 of 6425
added city 2263 of 6425
added city 2264 of 6425
added city 2265 of 6425
added city 2266 of 6425
added city 2267 of 6425
added city 2268 of 6425
added city 2269 of 6425
added city 2270 of 6425
added city 2271 of 6425
added city 2272 of 6425
added city 2273 of 6425
added city 2274 of 6425
added city 2275 of 6425
added city 2276 of 6425
added city 2277 of 6425
added city 2278 of 6425
added city 2279 of 6425
added city 2280 of 6425
added city 2281 of 6425
added city 2282 of 6425
added city 2283 of 6425
added city 2284 of 6425
added city 2285 of 6425
added city 2286 of 6425
added city 2287 of 6425
added city 2288 of 6425
added city 2289 of 6425
added city 2290 of 6425
added city 2291 of 6425
added city 2292 of 6425
added city 2293 of 6425
added city 2294 of 6425
added city 2295 of 6425
added city 2296 of 6425
added city 2297 of 6425
added city 2298 of 6425
added city 2299 of 6425
added city 2300 of 6425
added city 2301 of 6425
added city 2302 of 6425
added city 2303 of 6425
added city 2304 of 6425
added city 2305 of 6425
added city 2306 of 6425
added city 2307 of 6425
added city 2308 of 6425
added city 2309 of 6425
added city 2310 of 6425
added city 2311 of 6425
added city 2312 of 6425
added city 2313 of 6425
added city 2314 of 6425
added city 2315 of 6425
added city 2316 of 6425
added city 2317 of 6425
added city 2318 of 6425
added city 2319 of 6425
added city 2320 of 6425
added city 2321 of 6425
added city 2322 of 6425
added city 2323 of 6425
added city 2324 of 6425
added city 2325 of 6425
added city 2326 of 6425
added city 2327 of 6425
added city 2328 of 6425
added city 2329 of 6425
added city 2330 of 6425
added city 2331 of 6425
added city 2332 of 6425
added city 2333 of 6425
added city 2334 of 6425
added city 2335 of 6425
added city 2336 of 6425
added city 2337 of 6425
added city 2338 of 6425
added city 2339 of 6425
added city 2340 of 6425
added city 2341 of 6425
added city 2342 of 6425
added city 2343 of 6425
added city 2344 of 6425
added city 2345 of 6425
added city 2346 of 6425
added city 2347 of 6425
added city 2348 of 6425
added city 2349 of 6425
added city 2350 of 6425
added city 2351 of 6425
added city 2352 of 6425
added city 2353 of 6425
added city 2354 of 6425
added city 2355 of 6425
added city 2356 of 6425
added city 2357 of 6425
added city 2358 of 6425
added city 2359 of 6425
added city 2360 of 6425
added city 2361 of 6425
added city 2362 of 6425
added city 2363 of 6425
added city 2364 of 6425
added city 2365 of 6425
added city 2366 of 6425
added city 2367 of 6425
added city 2368 of 6425
added city 2369 of 6425
added city 2370 of 6425
added city 2371 of 6425
added city 2372 of 6425
added city 2373 of 6425
added city 2374 of 6425
added city 2375 of 6425
added city 2376 of 6425
added city 2377 of 6425
added city 2378 of 6425
added city 2379 of 6425
added city 2380 of 6425
added city 2381 of 6425
added city 2382 of 6425
added city 2383 of 6425
added city 2384 of 6425
added city 2385 of 6425
added city 2386 of 6425
added city 2387 of 6425
added city 2388 of 6425
added city 2389 of 6425
added city 2390 of 6425
added city 2391 of 6425
added city 2392 of 6425
added city 2393 of 6425
added city 2394 of 6425
added city 2395 of 6425
added city 2396 of 6425
added city 2397 of 6425
added city 2398 of 6425
added city 2399 of 6425
added city 2400 of 6425
added city 2401 of 6425
added city 2402 of 6425
added city 2403 of 6425
added city 2404 of 6425
added city 2405 of 6425
added city 2406 of 6425
added city 2407 of 6425
added city 2408 of 6425
added city 2409 of 6425
added city 2410 of 6425
added city 2411 of 6425
added city 2412 of 6425
added city 2413 of 6425
added city 2414 of 6425
added city 2415 of 6425
added city 2416 of 6425
added city 2417 of 6425
added city 2418 of 6425
added city 2419 of 6425
added city 2420 of 6425
added city 2421 of 6425
added city 2422 of 6425
added city 2423 of 6425
added city 2424 of 6425
added city 2425 of 6425
added city 2426 of 6425
added city 2427 of 6425
added city 2428 of 6425
added city 2429 of 6425
added city 2430 of 6425
added city 2431 of 6425
added city 2432 of 6425
added city 2433 of 6425
added city 2434 of 6425
added city 2435 of 6425
added city 2436 of 6425
added city 2437 of 6425
added city 2438 of 6425
added city 2439 of 6425
added city 2440 of 6425
added city 2441 of 6425
added city 2442 of 6425
added city 2443 of 6425
added city 2444 of 6425
added city 2445 of 6425
added city 2446 of 6425
added city 2447 of 6425
added city 2448 of 6425
added city 2449 of 6425
added city 2450 of 6425
added city 2451 of 6425
added city 2452 of 6425
added city 2453 of 6425
added city 2454 of 6425
added city 2455 of 6425
added city 2456 of 6425
added city 2457 of 6425
added city 2458 of 6425
added city 2459 of 6425
added city 2460 of 6425
added city 2461 of 6425
added city 2462 of 6425
added city 2463 of 6425
added city 2464 of 6425
added city 2465 of 6425
added city 2466 of 6425
added city 2467 of 6425
added city 2468 of 6425
added city 2469 of 6425
added city 2470 of 6425
added city 2471 of 6425
added city 2472 of 6425
added city 2473 of 6425
added city 2474 of 6425
added city 2475 of 6425
added city 2476 of 6425
added city 2477 of 6425
added city 2478 of 6425
added city 2479 of 6425
added city 2480 of 6425
added city 2481 of 6425
added city 2482 of 6425
added city 2483 of 6425
added city 2484 of 6425
added city 2485 of 6425
added city 2486 of 6425
added city 2487 of 6425
added city 2488 of 6425
added city 2489 of 6425
added city 2490 of 6425
added city 2491 of 6425
added city 2492 of 6425
added city 2493 of 6425
added city 2494 of 6425
added city 2495 of 6425
added city 2496 of 6425
added city 2497 of 6425
added city 2498 of 6425
added city 2499 of 6425
added city 2500 of 6425
added city 2501 of 6425
added city 2502 of 6425
added city 2503 of 6425
added city 2504 of 6425
added city 2505 of 6425
added city 2506 of 6425
added city 2507 of 6425
added city 2508 of 6425
added city 2509 of 6425
added city 2510 of 6425
added city 2511 of 6425
added city 2512 of 6425
added city 2513 of 6425
added city 2514 of 6425
added city 2515 of 6425
added city 2516 of 6425
added city 2517 of 6425
added city 2518 of 6425
added city 2519 of 6425
added city 2520 of 6425
added city 2521 of 6425
added city 2522 of 6425
added city 2523 of 6425
added city 2524 of 6425
added city 2525 of 6425
added city 2526 of 6425
added city 2527 of 6425
added city 2528 of 6425
added city 2529 of 6425
added city 2530 of 6425
added city 2531 of 6425
added city 2532 of 6425
added city 2533 of 6425
added city 2534 of 6425
added city 2535 of 6425
added city 2536 of 6425
added city 2537 of 6425
added city 2538 of 6425
added city 2539 of 6425
added city 2540 of 6425
added city 2541 of 6425
added city 2542 of 6425
added city 2543 of 6425
added city 2544 of 6425
added city 2545 of 6425
added city 2546 of 6425
added city 2547 of 6425
added city 2548 of 6425
added city 2549 of 6425
added city 2550 of 6425
added city 2551 of 6425
added city 2552 of 6425
added city 2553 of 6425
added city 2554 of 6425
added city 2555 of 6425
added city 2556 of 6425
added city 2557 of 6425
added city 2558 of 6425
added city 2559 of 6425
added city 2560 of 6425
added city 2561 of 6425
added city 2562 of 6425
added city 2563 of 6425
added city 2564 of 6425
added city 2565 of 6425
added city 2566 of 6425
added city 2567 of 6425
added city 2568 of 6425
added city 2569 of 6425
added city 2570 of 6425
added city 2571 of 6425
added city 2572 of 6425
added city 2573 of 6425
added city 2574 of 6425
added city 2575 of 6425
added city 2576 of 6425
added city 2577 of 6425
added city 2578 of 6425
added city 2579 of 6425
added city 2580 of 6425
added city 2581 of 6425
added city 2582 of 6425
added city 2583 of 6425
added city 2584 of 6425
added city 2585 of 6425
added city 2586 of 6425
added city 2587 of 6425
added city 2588 of 6425
added city 2589 of 6425
added city 2590 of 6425
added city 2591 of 6425
added city 2592 of 6425
added city 2593 of 6425
added city 2594 of 6425
added city 2595 of 6425
added city 2596 of 6425
added city 2597 of 6425
added city 2598 of 6425
added city 2599 of 6425
added city 2600 of 6425
added city 2601 of 6425
added city 2602 of 6425
added city 2603 of 6425
added city 2604 of 6425
added city 2605 of 6425
added city 2606 of 6425
added city 2607 of 6425
added city 2608 of 6425
added city 2609 of 6425
added city 2610 of 6425
added city 2611 of 6425
added city 2612 of 6425
added city 2613 of 6425
added city 2614 of 6425
added city 2615 of 6425
added city 2616 of 6425
added city 2617 of 6425
added city 2618 of 6425
added city 2619 of 6425
added city 2620 of 6425
added city 2621 of 6425
added city 2622 of 6425
added city 2623 of 6425
added city 2624 of 6425
added city 2625 of 6425
added city 2626 of 6425
added city 2627 of 6425
added city 2628 of 6425
added city 2629 of 6425
added city 2630 of 6425
added city 2631 of 6425
added city 2632 of 6425
added city 2633 of 6425
added city 2634 of 6425
added city 2635 of 6425
added city 2636 of 6425
added city 2637 of 6425
added city 2638 of 6425
added city 2639 of 6425
added city 2640 of 6425
added city 2641 of 6425
added city 2642 of 6425
added city 2643 of 6425
added city 2644 of 6425
added city 2645 of 6425
added city 2646 of 6425
added city 2647 of 6425
added city 2648 of 6425
added city 2649 of 6425
added city 2650 of 6425
added city 2651 of 6425
added city 2652 of 6425
added city 2653 of 6425
added city 2654 of 6425
added city 2655 of 6425
added city 2656 of 6425
added city 2657 of 6425
added city 2658 of 6425
added city 2659 of 6425
added city 2660 of 6425
added city 2661 of 6425
added city 2662 of 6425
added city 2663 of 6425
added city 2664 of 6425
added city 2665 of 6425
added city 2666 of 6425
added city 2667 of 6425
added city 2668 of 6425
added city 2669 of 6425
added city 2670 of 6425
added city 2671 of 6425
added city 2672 of 6425
added city 2673 of 6425
added city 2674 of 6425
added city 2675 of 6425
added city 2676 of 6425
added city 2677 of 6425
added city 2678 of 6425
added city 2679 of 6425
added city 2680 of 6425
added city 2681 of 6425
added city 2682 of 6425
added city 2683 of 6425
added city 2684 of 6425
added city 2685 of 6425
added city 2686 of 6425
added city 2687 of 6425
added city 2688 of 6425
added city 2689 of 6425
added city 2690 of 6425
added city 2691 of 6425
added city 2692 of 6425
added city 2693 of 6425
added city 2694 of 6425
added city 2695 of 6425
added city 2696 of 6425
added city 2697 of 6425
added city 2698 of 6425
added city 2699 of 6425
added city 2700 of 6425
added city 2701 of 6425
added city 2702 of 6425
added city 2703 of 6425
added city 2704 of 6425
added city 2705 of 6425
added city 2706 of 6425
added city 2707 of 6425
added city 2708 of 6425
added city 2709 of 6425
added city 2710 of 6425
added city 2711 of 6425
added city 2712 of 6425
added city 2713 of 6425
added city 2714 of 6425
added city 2715 of 6425
added city 2716 of 6425
added city 2717 of 6425
added city 2718 of 6425
added city 2719 of 6425
added city 2720 of 6425
added city 2721 of 6425
added city 2722 of 6425
added city 2723 of 6425
added city 2724 of 6425
added city 2725 of 6425
added city 2726 of 6425
added city 2727 of 6425
added city 2728 of 6425
added city 2729 of 6425
added city 2730 of 6425
added city 2731 of 6425
added city 2732 of 6425
added city 2733 of 6425
added city 2734 of 6425
added city 2735 of 6425
added city 2736 of 6425
added city 2737 of 6425
added city 2738 of 6425
added city 2739 of 6425
added city 2740 of 6425
added city 2741 of 6425
added city 2742 of 6425
added city 2743 of 6425
added city 2744 of 6425
added city 2745 of 6425
added city 2746 of 6425
added city 2747 of 6425
added city 2748 of 6425
added city 2749 of 6425
added city 2750 of 6425
added city 2751 of 6425
added city 2752 of 6425
added city 2753 of 6425
added city 2754 of 6425
added city 2755 of 6425
added city 2756 of 6425
added city 2757 of 6425
added city 2758 of 6425
added city 2759 of 6425
added city 2760 of 6425
added city 2761 of 6425
added city 2762 of 6425
added city 2763 of 6425
added city 2764 of 6425
added city 2765 of 6425
added city 2766 of 6425
added city 2767 of 6425
added city 2768 of 6425
added city 2769 of 6425
added city 2770 of 6425
added city 2771 of 6425
added city 2772 of 6425
added city 2773 of 6425
added city 2774 of 6425
added city 2775 of 6425
added city 2776 of 6425
added city 2777 of 6425
added city 2778 of 6425
added city 2779 of 6425
added city 2780 of 6425
added city 2781 of 6425
added city 2782 of 6425
added city 2783 of 6425
added city 2784 of 6425
added city 2785 of 6425
added city 2786 of 6425
added city 2787 of 6425
added city 2788 of 6425
added city 2789 of 6425
added city 2790 of 6425
added city 2791 of 6425
added city 2792 of 6425
added city 2793 of 6425
added city 2794 of 6425
added city 2795 of 6425
added city 2796 of 6425
added city 2797 of 6425
added city 2798 of 6425
added city 2799 of 6425
added city 2800 of 6425
added city 2801 of 6425
added city 2802 of 6425
added city 2803 of 6425
added city 2804 of 6425
added city 2805 of 6425
added city 2806 of 6425
added city 2807 of 6425
added city 2808 of 6425
added city 2809 of 6425
added city 2810 of 6425
added city 2811 of 6425
added city 2812 of 6425
added city 2813 of 6425
added city 2814 of 6425
added city 2815 of 6425
added city 2816 of 6425
added city 2817 of 6425
added city 2818 of 6425
added city 2819 of 6425
added city 2820 of 6425
added city 2821 of 6425
added city 2822 of 6425
added city 2823 of 6425
added city 2824 of 6425
added city 2825 of 6425
added city 2826 of 6425
added city 2827 of 6425
added city 2828 of 6425
added city 2829 of 6425
added city 2830 of 6425
added city 2831 of 6425
added city 2832 of 6425
added city 2833 of 6425
added city 2834 of 6425
added city 2835 of 6425
added city 2836 of 6425
added city 2837 of 6425
added city 2838 of 6425
added city 2839 of 6425
added city 2840 of 6425
added city 2841 of 6425
added city 2842 of 6425
added city 2843 of 6425
added city 2844 of 6425
added city 2845 of 6425
added city 2846 of 6425
added city 2847 of 6425
added city 2848 of 6425
added city 2849 of 6425
added city 2850 of 6425
added city 2851 of 6425
added city 2852 of 6425
added city 2853 of 6425
added city 2854 of 6425
added city 2855 of 6425
added city 2856 of 6425
added city 2857 of 6425
added city 2858 of 6425
added city 2859 of 6425
added city 2860 of 6425
added city 2861 of 6425
added city 2862 of 6425
added city 2863 of 6425
added city 2864 of 6425
added city 2865 of 6425
added city 2866 of 6425
added city 2867 of 6425
added city 2868 of 6425
added city 2869 of 6425
added city 2870 of 6425
added city 2871 of 6425
added city 2872 of 6425
added city 2873 of 6425
added city 2874 of 6425
added city 2875 of 6425
added city 2876 of 6425
added city 2877 of 6425
added city 2878 of 6425
added city 2879 of 6425
added city 2880 of 6425
added city 2881 of 6425
added city 2882 of 6425
added city 2883 of 6425
added city 2884 of 6425
added city 2885 of 6425
added city 2886 of 6425
added city 2887 of 6425
added city 2888 of 6425
added city 2889 of 6425
added city 2890 of 6425
added city 2891 of 6425
added city 2892 of 6425
added city 2893 of 6425
added city 2894 of 6425
added city 2895 of 6425
added city 2896 of 6425
added city 2897 of 6425
added city 2898 of 6425
added city 2899 of 6425
added city 2900 of 6425
added city 2901 of 6425
added city 2902 of 6425
added city 2903 of 6425
added city 2904 of 6425
added city 2905 of 6425
added city 2906 of 6425
added city 2907 of 6425
added city 2908 of 6425
added city 2909 of 6425
added city 2910 of 6425
added city 2911 of 6425
added city 2912 of 6425
added city 2913 of 6425
added city 2914 of 6425
added city 2915 of 6425
added city 2916 of 6425
added city 2917 of 6425
added city 2918 of 6425
added city 2919 of 6425
added city 2920 of 6425
added city 2921 of 6425
added city 2922 of 6425
added city 2923 of 6425
added city 2924 of 6425
added city 2925 of 6425
added city 2926 of 6425
added city 2927 of 6425
added city 2928 of 6425
added city 2929 of 6425
added city 2930 of 6425
added city 2931 of 6425
added city 2932 of 6425
added city 2933 of 6425
added city 2934 of 6425
added city 2935 of 6425
added city 2936 of 6425
added city 2937 of 6425
added city 2938 of 6425
added city 2939 of 6425
added city 2940 of 6425
added city 2941 of 6425
added city 2942 of 6425
added city 2943 of 6425
added city 2944 of 6425
added city 2945 of 6425
added city 2946 of 6425
added city 2947 of 6425
added city 2948 of 6425
added city 2949 of 6425
added city 2950 of 6425
added city 2951 of 6425
added city 2952 of 6425
added city 2953 of 6425
added city 2954 of 6425
added city 2955 of 6425
added city 2956 of 6425
added city 2957 of 6425
added city 2958 of 6425
added city 2959 of 6425
added city 2960 of 6425
added city 2961 of 6425
added city 2962 of 6425
added city 2963 of 6425
added city 2964 of 6425
added city 2965 of 6425
added city 2966 of 6425
added city 2967 of 6425
added city 2968 of 6425
added city 2969 of 6425
added city 2970 of 6425
added city 2971 of 6425
added city 2972 of 6425
added city 2973 of 6425
added city 2974 of 6425
added city 2975 of 6425
added city 2976 of 6425
added city 2977 of 6425
added city 2978 of 6425
added city 2979 of 6425
added city 2980 of 6425
added city 2981 of 6425
added city 2982 of 6425
added city 2983 of 6425
added city 2984 of 6425
added city 2985 of 6425
added city 2986 of 6425
added city 2987 of 6425
added city 2988 of 6425
added city 2989 of 6425
added city 2990 of 6425
added city 2991 of 6425
added city 2992 of 6425
added city 2993 of 6425
added city 2994 of 6425
added city 2995 of 6425
added city 2996 of 6425
added city 2997 of 6425
added city 2998 of 6425
added city 2999 of 6425
added city 3000 of 6425
added city 3001 of 6425
added city 3002 of 6425
added city 3003 of 6425
added city 3004 of 6425
added city 3005 of 6425
added city 3006 of 6425
added city 3007 of 6425
added city 3008 of 6425
added city 3009 of 6425
added city 3010 of 6425
added city 3011 of 6425
added city 3012 of 6425
added city 3013 of 6425
added city 3014 of 6425
added city 3015 of 6425
added city 3016 of 6425
added city 3017 of 6425
added city 3018 of 6425
added city 3019 of 6425
added city 3020 of 6425
added city 3021 of 6425
added city 3022 of 6425
added city 3023 of 6425
added city 3024 of 6425
added city 3025 of 6425
added city 3026 of 6425
added city 3027 of 6425
added city 3028 of 6425
added city 3029 of 6425
added city 3030 of 6425
added city 3031 of 6425
added city 3032 of 6425
added city 3033 of 6425
added city 3034 of 6425
added city 3035 of 6425
added city 3036 of 6425
added city 3037 of 6425
added city 3038 of 6425
added city 3039 of 6425
added city 3040 of 6425
added city 3041 of 6425
added city 3042 of 6425
added city 3043 of 6425
added city 3044 of 6425
added city 3045 of 6425
added city 3046 of 6425
added city 3047 of 6425
added city 3048 of 6425
added city 3049 of 6425
added city 3050 of 6425
added city 3051 of 6425
added city 3052 of 6425
added city 3053 of 6425
added city 3054 of 6425
added city 3055 of 6425
added city 3056 of 6425
added city 3057 of 6425
added city 3058 of 6425
added city 3059 of 6425
added city 3060 of 6425
added city 3061 of 6425
added city 3062 of 6425
added city 3063 of 6425
added city 3064 of 6425
added city 3065 of 6425
added city 3066 of 6425
added city 3067 of 6425
added city 3068 of 6425
added city 3069 of 6425
added city 3070 of 6425
added city 3071 of 6425
added city 3072 of 6425
added city 3073 of 6425
added city 3074 of 6425
added city 3075 of 6425
added city 3076 of 6425
added city 3077 of 6425
added city 3078 of 6425
added city 3079 of 6425
added city 3080 of 6425
added city 3081 of 6425
added city 3082 of 6425
added city 3083 of 6425
added city 3084 of 6425
added city 3085 of 6425
added city 3086 of 6425
added city 3087 of 6425
added city 3088 of 6425
added city 3089 of 6425
added city 3090 of 6425
added city 3091 of 6425
added city 3092 of 6425
added city 3093 of 6425
added city 3094 of 6425
added city 3095 of 6425
added city 3096 of 6425
added city 3097 of 6425
added city 3098 of 6425
added city 3099 of 6425
added city 3100 of 6425
added city 3101 of 6425
added city 3102 of 6425
added city 3103 of 6425
added city 3104 of 6425
added city 3105 of 6425
added city 3106 of 6425
added city 3107 of 6425
added city 3108 of 6425
added city 3109 of 6425
added city 3110 of 6425
added city 3111 of 6425
added city 3112 of 6425
added city 3113 of 6425
added city 3114 of 6425
added city 3115 of 6425
added city 3116 of 6425
added city 3117 of 6425
added city 3118 of 6425
added city 3119 of 6425
added city 3120 of 6425
added city 3121 of 6425
added city 3122 of 6425
added city 3123 of 6425
added city 3124 of 6425
added city 3125 of 6425
added city 3126 of 6425
added city 3127 of 6425
added city 3128 of 6425
added city 3129 of 6425
added city 3130 of 6425
added city 3131 of 6425
added city 3132 of 6425
added city 3133 of 6425
added city 3134 of 6425
added city 3135 of 6425
added city 3136 of 6425
added city 3137 of 6425
added city 3138 of 6425
added city 3139 of 6425
added city 3140 of 6425
added city 3141 of 6425
added city 3142 of 6425
added city 3143 of 6425
added city 3144 of 6425
added city 3145 of 6425
added city 3146 of 6425
added city 3147 of 6425
added city 3148 of 6425
added city 3149 of 6425
added city 3150 of 6425
added city 3151 of 6425
added city 3152 of 6425
added city 3153 of 6425
added city 3154 of 6425
added city 3155 of 6425
added city 3156 of 6425
added city 3157 of 6425
added city 3158 of 6425
added city 3159 of 6425
added city 3160 of 6425
added city 3161 of 6425
added city 3162 of 6425
added city 3163 of 6425
added city 3164 of 6425
added city 3165 of 6425
added city 3166 of 6425
added city 3167 of 6425
added city 3168 of 6425
added city 3169 of 6425
added city 3170 of 6425
added city 3171 of 6425
added city 3172 of 6425
added city 3173 of 6425
added city 3174 of 6425
added city 3175 of 6425
added city 3176 of 6425
added city 3177 of 6425
added city 3178 of 6425
added city 3179 of 6425
added city 3180 of 6425
added city 3181 of 6425
added city 3182 of 6425
added city 3183 of 6425
added city 3184 of 6425
added city 3185 of 6425
added city 3186 of 6425
added city 3187 of 6425
added city 3188 of 6425
added city 3189 of 6425
added city 3190 of 6425
added city 3191 of 6425
added city 3192 of 6425
added city 3193 of 6425
added city 3194 of 6425
added city 3195 of 6425
added city 3196 of 6425
added city 3197 of 6425
added city 3198 of 6425
added city 3199 of 6425
added city 3200 of 6425
added city 3201 of 6425
added city 3202 of 6425
added city 3203 of 6425
added city 3204 of 6425
added city 3205 of 6425
added city 3206 of 6425
added city 3207 of 6425
added city 3208 of 6425
added city 3209 of 6425
added city 3210 of 6425
added city 3211 of 6425
added city 3212 of 6425
added city 3213 of 6425
added city 3214 of 6425
added city 3215 of 6425
added city 3216 of 6425
added city 3217 of 6425
added city 3218 of 6425
added city 3219 of 6425
added city 3220 of 6425
added city 3221 of 6425
added city 3222 of 6425
added city 3223 of 6425
added city 3224 of 6425
added city 3225 of 6425
added city 3226 of 6425
added city 3227 of 6425
added city 3228 of 6425
added city 3229 of 6425
added city 3230 of 6425
added city 3231 of 6425
added city 3232 of 6425
added city 3233 of 6425
added city 3234 of 6425
added city 3235 of 6425
added city 3236 of 6425
added city 3237 of 6425
added city 3238 of 6425
added city 3239 of 6425
added city 3240 of 6425
added city 3241 of 6425
added city 3242 of 6425
added city 3243 of 6425
added city 3244 of 6425
added city 3245 of 6425
added city 3246 of 6425
added city 3247 of 6425
added city 3248 of 6425
added city 3249 of 6425
added city 3250 of 6425
added city 3251 of 6425
added city 3252 of 6425
added city 3253 of 6425
added city 3254 of 6425
added city 3255 of 6425
added city 3256 of 6425
added city 3257 of 6425
added city 3258 of 6425
added city 3259 of 6425
added city 3260 of 6425
added city 3261 of 6425
added city 3262 of 6425
added city 3263 of 6425
added city 3264 of 6425
added city 3265 of 6425
added city 3266 of 6425
added city 3267 of 6425
added city 3268 of 6425
added city 3269 of 6425
added city 3270 of 6425
added city 3271 of 6425
added city 3272 of 6425
added city 3273 of 6425
added city 3274 of 6425
added city 3275 of 6425
added city 3276 of 6425
added city 3277 of 6425
added city 3278 of 6425
added city 3279 of 6425
added city 3280 of 6425
added city 3281 of 6425
added city 3282 of 6425
added city 3283 of 6425
added city 3284 of 6425
added city 3285 of 6425
added city 3286 of 6425
added city 3287 of 6425
added city 3288 of 6425
added city 3289 of 6425
added city 3290 of 6425
added city 3291 of 6425
added city 3292 of 6425
added city 3293 of 6425
added city 3294 of 6425
added city 3295 of 6425
added city 3296 of 6425
added city 3297 of 6425
added city 3298 of 6425
added city 3299 of 6425
added city 3300 of 6425
added city 3301 of 6425
added city 3302 of 6425
added city 3303 of 6425
added city 3304 of 6425
added city 3305 of 6425
added city 3306 of 6425
added city 3307 of 6425
added city 3308 of 6425
added city 3309 of 6425
added city 3310 of 6425
added city 3311 of 6425
added city 3312 of 6425
added city 3313 of 6425
added city 3314 of 6425
added city 3315 of 6425
added city 3316 of 6425
added city 3317 of 6425
added city 3318 of 6425
added city 3319 of 6425
added city 3320 of 6425
added city 3321 of 6425
added city 3322 of 6425
added city 3323 of 6425
added city 3324 of 6425
added city 3325 of 6425
added city 3326 of 6425
added city 3327 of 6425
added city 3328 of 6425
added city 3329 of 6425
added city 3330 of 6425
added city 3331 of 6425
added city 3332 of 6425
added city 3333 of 6425
added city 3334 of 6425
added city 3335 of 6425
added city 3336 of 6425
added city 3337 of 6425
added city 3338 of 6425
added city 3339 of 6425
added city 3340 of 6425
added city 3341 of 6425
added city 3342 of 6425
added city 3343 of 6425
added city 3344 of 6425
added city 3345 of 6425
added city 3346 of 6425
added city 3347 of 6425
added city 3348 of 6425
added city 3349 of 6425
added city 3350 of 6425
added city 3351 of 6425
added city 3352 of 6425
added city 3353 of 6425
added city 3354 of 6425
added city 3355 of 6425
added city 3356 of 6425
added city 3357 of 6425
added city 3358 of 6425
added city 3359 of 6425
added city 3360 of 6425
added city 3361 of 6425
added city 3362 of 6425
added city 3363 of 6425
added city 3364 of 6425
added city 3365 of 6425
added city 3366 of 6425
added city 3367 of 6425
added city 3368 of 6425
added city 3369 of 6425
added city 3370 of 6425
added city 3371 of 6425
added city 3372 of 6425
added city 3373 of 6425
added city 3374 of 6425
added city 3375 of 6425
added city 3376 of 6425
added city 3377 of 6425
added city 3378 of 6425
added city 3379 of 6425
added city 3380 of 6425
added city 3381 of 6425
added city 3382 of 6425
added city 3383 of 6425
added city 3384 of 6425
added city 3385 of 6425
added city 3386 of 6425
added city 3387 of 6425
added city 3388 of 6425
added city 3389 of 6425
added city 3390 of 6425
added city 3391 of 6425
added city 3392 of 6425
added city 3393 of 6425
added city 3394 of 6425
added city 3395 of 6425
added city 3396 of 6425
added city 3397 of 6425
added city 3398 of 6425
added city 3399 of 6425
added city 3400 of 6425
added city 3401 of 6425
added city 3402 of 6425
added city 3403 of 6425
added city 3404 of 6425
added city 3405 of 6425
added city 3406 of 6425
added city 3407 of 6425
added city 3408 of 6425
added city 3409 of 6425
added city 3410 of 6425
added city 3411 of 6425
added city 3412 of 6425
added city 3413 of 6425
added city 3414 of 6425
added city 3415 of 6425
added city 3416 of 6425
added city 3417 of 6425
added city 3418 of 6425
added city 3419 of 6425
added city 3420 of 6425
added city 3421 of 6425
added city 3422 of 6425
added city 3423 of 6425
added city 3424 of 6425
added city 3425 of 6425
added city 3426 of 6425
added city 3427 of 6425
added city 3428 of 6425
added city 3429 of 6425
added city 3430 of 6425
added city 3431 of 6425
added city 3432 of 6425
added city 3433 of 6425
added city 3434 of 6425
added city 3435 of 6425
added city 3436 of 6425
added city 3437 of 6425
added city 3438 of 6425
added city 3439 of 6425
added city 3440 of 6425
added city 3441 of 6425
added city 3442 of 6425
added city 3443 of 6425
added city 3444 of 6425
added city 3445 of 6425
added city 3446 of 6425
added city 3447 of 6425
added city 3448 of 6425
added city 3449 of 6425
added city 3450 of 6425
added city 3451 of 6425
added city 3452 of 6425
added city 3453 of 6425
added city 3454 of 6425
added city 3455 of 6425
added city 3456 of 6425
added city 3457 of 6425
added city 3458 of 6425
added city 3459 of 6425
added city 3460 of 6425
added city 3461 of 6425
added city 3462 of 6425
added city 3463 of 6425
added city 3464 of 6425
added city 3465 of 6425
added city 3466 of 6425
added city 3467 of 6425
added city 3468 of 6425
added city 3469 of 6425
added city 3470 of 6425
added city 3471 of 6425
added city 3472 of 6425
added city 3473 of 6425
added city 3474 of 6425
added city 3475 of 6425
added city 3476 of 6425
added city 3477 of 6425
added city 3478 of 6425
added city 3479 of 6425
added city 3480 of 6425
added city 3481 of 6425
added city 3482 of 6425
added city 3483 of 6425
added city 3484 of 6425
added city 3485 of 6425
added city 3486 of 6425
added city 3487 of 6425
added city 3488 of 6425
added city 3489 of 6425
added city 3490 of 6425
added city 3491 of 6425
added city 3492 of 6425
added city 3493 of 6425
added city 3494 of 6425
added city 3495 of 6425
added city 3496 of 6425
added city 3497 of 6425
added city 3498 of 6425
added city 3499 of 6425
added city 3500 of 6425
added city 3501 of 6425
added city 3502 of 6425
added city 3503 of 6425
added city 3504 of 6425
added city 3505 of 6425
added city 3506 of 6425
added city 3507 of 6425
added city 3508 of 6425
added city 3509 of 6425
added city 3510 of 6425
added city 3511 of 6425
added city 3512 of 6425
added city 3513 of 6425
added city 3514 of 6425
added city 3515 of 6425
added city 3516 of 6425
added city 3517 of 6425
added city 3518 of 6425
added city 3519 of 6425
added city 3520 of 6425
added city 3521 of 6425
added city 3522 of 6425
added city 3523 of 6425
added city 3524 of 6425
added city 3525 of 6425
added city 3526 of 6425
added city 3527 of 6425
added city 3528 of 6425
added city 3529 of 6425
added city 3530 of 6425
added city 3531 of 6425
added city 3532 of 6425
added city 3533 of 6425
added city 3534 of 6425
added city 3535 of 6425
added city 3536 of 6425
added city 3537 of 6425
added city 3538 of 6425
added city 3539 of 6425
added city 3540 of 6425
added city 3541 of 6425
added city 3542 of 6425
added city 3543 of 6425
added city 3544 of 6425
added city 3545 of 6425
added city 3546 of 6425
added city 3547 of 6425
added city 3548 of 6425
added city 3549 of 6425
added city 3550 of 6425
added city 3551 of 6425
added city 3552 of 6425
added city 3553 of 6425
added city 3554 of 6425
added city 3555 of 6425
added city 3556 of 6425
added city 3557 of 6425
added city 3558 of 6425
added city 3559 of 6425
added city 3560 of 6425
added city 3561 of 6425
added city 3562 of 6425
added city 3563 of 6425
added city 3564 of 6425
added city 3565 of 6425
added city 3566 of 6425
added city 3567 of 6425
added city 3568 of 6425
added city 3569 of 6425
added city 3570 of 6425
added city 3571 of 6425
added city 3572 of 6425
added city 3573 of 6425
added city 3574 of 6425
added city 3575 of 6425
added city 3576 of 6425
added city 3577 of 6425
added city 3578 of 6425
added city 3579 of 6425
added city 3580 of 6425
added city 3581 of 6425
added city 3582 of 6425
added city 3583 of 6425
added city 3584 of 6425
added city 3585 of 6425
added city 3586 of 6425
added city 3587 of 6425
added city 3588 of 6425
added city 3589 of 6425
added city 3590 of 6425
added city 3591 of 6425
added city 3592 of 6425
added city 3593 of 6425
added city 3594 of 6425
added city 3595 of 6425
added city 3596 of 6425
added city 3597 of 6425
added city 3598 of 6425
added city 3599 of 6425
added city 3600 of 6425
added city 3601 of 6425
added city 3602 of 6425
added city 3603 of 6425
added city 3604 of 6425
added city 3605 of 6425
added city 3606 of 6425
added city 3607 of 6425
added city 3608 of 6425
added city 3609 of 6425
added city 3610 of 6425
added city 3611 of 6425
added city 3612 of 6425
added city 3613 of 6425
added city 3614 of 6425
added city 3615 of 6425
added city 3616 of 6425
added city 3617 of 6425
added city 3618 of 6425
added city 3619 of 6425
added city 3620 of 6425
added city 3621 of 6425
added city 3622 of 6425
added city 3623 of 6425
added city 3624 of 6425
added city 3625 of 6425
added city 3626 of 6425
added city 3627 of 6425
added city 3628 of 6425
added city 3629 of 6425
added city 3630 of 6425
added city 3631 of 6425
added city 3632 of 6425
added city 3633 of 6425
added city 3634 of 6425
added city 3635 of 6425
added city 3636 of 6425
added city 3637 of 6425
added city 3638 of 6425
added city 3639 of 6425
added city 3640 of 6425
added city 3641 of 6425
added city 3642 of 6425
added city 3643 of 6425
added city 3644 of 6425
added city 3645 of 6425
added city 3646 of 6425
added city 3647 of 6425
added city 3648 of 6425
added city 3649 of 6425
added city 3650 of 6425
added city 3651 of 6425
added city 3652 of 6425
added city 3653 of 6425
added city 3654 of 6425
added city 3655 of 6425
added city 3656 of 6425
added city 3657 of 6425
added city 3658 of 6425
added city 3659 of 6425
added city 3660 of 6425
added city 3661 of 6425
added city 3662 of 6425
added city 3663 of 6425
added city 3664 of 6425
added city 3665 of 6425
added city 3666 of 6425
added city 3667 of 6425
added city 3668 of 6425
added city 3669 of 6425
added city 3670 of 6425
added city 3671 of 6425
added city 3672 of 6425
added city 3673 of 6425
added city 3674 of 6425
added city 3675 of 6425
added city 3676 of 6425
added city 3677 of 6425
added city 3678 of 6425
added city 3679 of 6425
added city 3680 of 6425
added city 3681 of 6425
added city 3682 of 6425
added city 3683 of 6425
added city 3684 of 6425
added city 3685 of 6425
added city 3686 of 6425
added city 3687 of 6425
added city 3688 of 6425
added city 3689 of 6425
added city 3690 of 6425
added city 3691 of 6425
added city 3692 of 6425
added city 3693 of 6425
added city 3694 of 6425
added city 3695 of 6425
added city 3696 of 6425
added city 3697 of 6425
added city 3698 of 6425
added city 3699 of 6425
added city 3700 of 6425
added city 3701 of 6425
added city 3702 of 6425
added city 3703 of 6425
added city 3704 of 6425
added city 3705 of 6425
added city 3706 of 6425
added city 3707 of 6425
added city 3708 of 6425
added city 3709 of 6425
added city 3710 of 6425
added city 3711 of 6425
added city 3712 of 6425
added city 3713 of 6425
added city 3714 of 6425
added city 3715 of 6425
added city 3716 of 6425
added city 3717 of 6425
added city 3718 of 6425
added city 3719 of 6425
added city 3720 of 6425
added city 3721 of 6425
added city 3722 of 6425
added city 3723 of 6425
added city 3724 of 6425
added city 3725 of 6425
added city 3726 of 6425
added city 3727 of 6425
added city 3728 of 6425
added city 3729 of 6425
added city 3730 of 6425
added city 3731 of 6425
added city 3732 of 6425
added city 3733 of 6425
added city 3734 of 6425
added city 3735 of 6425
added city 3736 of 6425
added city 3737 of 6425
added city 3738 of 6425
added city 3739 of 6425
added city 3740 of 6425
added city 3741 of 6425
added city 3742 of 6425
added city 3743 of 6425
added city 3744 of 6425
added city 3745 of 6425
added city 3746 of 6425
added city 3747 of 6425
added city 3748 of 6425
added city 3749 of 6425
added city 3750 of 6425
added city 3751 of 6425
added city 3752 of 6425
added city 3753 of 6425
added city 3754 of 6425
added city 3755 of 6425
added city 3756 of 6425
added city 3757 of 6425
added city 3758 of 6425
added city 3759 of 6425
added city 3760 of 6425
added city 3761 of 6425
added city 3762 of 6425
added city 3763 of 6425
added city 3764 of 6425
added city 3765 of 6425
added city 3766 of 6425
added city 3767 of 6425
added city 3768 of 6425
added city 3769 of 6425
added city 3770 of 6425
added city 3771 of 6425
added city 3772 of 6425
added city 3773 of 6425
added city 3774 of 6425
added city 3775 of 6425
added city 3776 of 6425
added city 3777 of 6425
added city 3778 of 6425
added city 3779 of 6425
added city 3780 of 6425
added city 3781 of 6425
added city 3782 of 6425
added city 3783 of 6425
added city 3784 of 6425
added city 3785 of 6425
added city 3786 of 6425
added city 3787 of 6425
added city 3788 of 6425
added city 3789 of 6425
added city 3790 of 6425
added city 3791 of 6425
added city 3792 of 6425
added city 3793 of 6425
added city 3794 of 6425
added city 3795 of 6425
added city 3796 of 6425
added city 3797 of 6425
added city 3798 of 6425
added city 3799 of 6425
added city 3800 of 6425
added city 3801 of 6425
added city 3802 of 6425
added city 3803 of 6425
added city 3804 of 6425
added city 3805 of 6425
added city 3806 of 6425
added city 3807 of 6425
added city 3808 of 6425
added city 3809 of 6425
added city 3810 of 6425
added city 3811 of 6425
added city 3812 of 6425
added city 3813 of 6425
added city 3814 of 6425
added city 3815 of 6425
added city 3816 of 6425
added city 3817 of 6425
added city 3818 of 6425
added city 3819 of 6425
added city 3820 of 6425
added city 3821 of 6425
added city 3822 of 6425
added city 3823 of 6425
added city 3824 of 6425
added city 3825 of 6425
added city 3826 of 6425
added city 3827 of 6425
added city 3828 of 6425
added city 3829 of 6425
added city 3830 of 6425
added city 3831 of 6425
added city 3832 of 6425
added city 3833 of 6425
added city 3834 of 6425
added city 3835 of 6425
added city 3836 of 6425
added city 3837 of 6425
added city 3838 of 6425
added city 3839 of 6425
added city 3840 of 6425
added city 3841 of 6425
added city 3842 of 6425
added city 3843 of 6425
added city 3844 of 6425
added city 3845 of 6425
added city 3846 of 6425
added city 3847 of 6425
added city 3848 of 6425
added city 3849 of 6425
added city 3850 of 6425
added city 3851 of 6425
added city 3852 of 6425
added city 3853 of 6425
added city 3854 of 6425
added city 3855 of 6425
added city 3856 of 6425
added city 3857 of 6425
added city 3858 of 6425
added city 3859 of 6425
added city 3860 of 6425
added city 3861 of 6425
added city 3862 of 6425
added city 3863 of 6425
added city 3864 of 6425
added city 3865 of 6425
added city 3866 of 6425
added city 3867 of 6425
added city 3868 of 6425
added city 3869 of 6425
added city 3870 of 6425
added city 3871 of 6425
added city 3872 of 6425
added city 3873 of 6425
added city 3874 of 6425
added city 3875 of 6425
added city 3876 of 6425
added city 3877 of 6425
added city 3878 of 6425
added city 3879 of 6425
added city 3880 of 6425
added city 3881 of 6425
added city 3882 of 6425
added city 3883 of 6425
added city 3884 of 6425
added city 3885 of 6425
added city 3886 of 6425
added city 3887 of 6425
added city 3888 of 6425
added city 3889 of 6425
added city 3890 of 6425
added city 3891 of 6425
added city 3892 of 6425
added city 3893 of 6425
added city 3894 of 6425
added city 3895 of 6425
added city 3896 of 6425
added city 3897 of 6425
added city 3898 of 6425
added city 3899 of 6425
added city 3900 of 6425
added city 3901 of 6425
added city 3902 of 6425
added city 3903 of 6425
added city 3904 of 6425
added city 3905 of 6425
added city 3906 of 6425
added city 3907 of 6425
added city 3908 of 6425
added city 3909 of 6425
added city 3910 of 6425
added city 3911 of 6425
added city 3912 of 6425
added city 3913 of 6425
added city 3914 of 6425
added city 3915 of 6425
added city 3916 of 6425
added city 3917 of 6425
added city 3918 of 6425
added city 3919 of 6425
added city 3920 of 6425
added city 3921 of 6425
added city 3922 of 6425
added city 3923 of 6425
added city 3924 of 6425
added city 3925 of 6425
added city 3926 of 6425
added city 3927 of 6425
added city 3928 of 6425
added city 3929 of 6425
added city 3930 of 6425
added city 3931 of 6425
added city 3932 of 6425
added city 3933 of 6425
added city 3934 of 6425
added city 3935 of 6425
added city 3936 of 6425
added city 3937 of 6425
added city 3938 of 6425
added city 3939 of 6425
added city 3940 of 6425
added city 3941 of 6425
added city 3942 of 6425
added city 3943 of 6425
added city 3944 of 6425
added city 3945 of 6425
added city 3946 of 6425
added city 3947 of 6425
added city 3948 of 6425
added city 3949 of 6425
added city 3950 of 6425
added city 3951 of 6425
added city 3952 of 6425
added city 3953 of 6425
added city 3954 of 6425
added city 3955 of 6425
added city 3956 of 6425
added city 3957 of 6425
added city 3958 of 6425
added city 3959 of 6425
added city 3960 of 6425
added city 3961 of 6425
added city 3962 of 6425
added city 3963 of 6425
added city 3964 of 6425
added city 3965 of 6425
added city 3966 of 6425
added city 3967 of 6425
added city 3968 of 6425
added city 3969 of 6425
added city 3970 of 6425
added city 3971 of 6425
added city 3972 of 6425
added city 3973 of 6425
added city 3974 of 6425
added city 3975 of 6425
added city 3976 of 6425
added city 3977 of 6425
added city 3978 of 6425
added city 3979 of 6425
added city 3980 of 6425
added city 3981 of 6425
added city 3982 of 6425
added city 3983 of 6425
added city 3984 of 6425
added city 3985 of 6425
added city 3986 of 6425
added city 3987 of 6425
added city 3988 of 6425
added city 3989 of 6425
added city 3990 of 6425
added city 3991 of 6425
added city 3992 of 6425
added city 3993 of 6425
added city 3994 of 6425
added city 3995 of 6425
added city 3996 of 6425
added city 3997 of 6425
added city 3998 of 6425
added city 3999 of 6425
added city 4000 of 6425
added city 4001 of 6425
added city 4002 of 6425
added city 4003 of 6425
added city 4004 of 6425
added city 4005 of 6425
added city 4006 of 6425
added city 4007 of 6425
added city 4008 of 6425
added city 4009 of 6425
added city 4010 of 6425
added city 4011 of 6425
added city 4012 of 6425
added city 4013 of 6425
added city 4014 of 6425
added city 4015 of 6425
added city 4016 of 6425
added city 4017 of 6425
added city 4018 of 6425
added city 4019 of 6425
added city 4020 of 6425
added city 4021 of 6425
added city 4022 of 6425
added city 4023 of 6425
added city 4024 of 6425
added city 4025 of 6425
added city 4026 of 6425
added city 4027 of 6425
added city 4028 of 6425
added city 4029 of 6425
added city 4030 of 6425
added city 4031 of 6425
added city 4032 of 6425
added city 4033 of 6425
added city 4034 of 6425
added city 4035 of 6425
added city 4036 of 6425
added city 4037 of 6425
added city 4038 of 6425
added city 4039 of 6425
added city 4040 of 6425
added city 4041 of 6425
added city 4042 of 6425
added city 4043 of 6425
added city 4044 of 6425
added city 4045 of 6425
added city 4046 of 6425
added city 4047 of 6425
added city 4048 of 6425
added city 4049 of 6425
added city 4050 of 6425
added city 4051 of 6425
added city 4052 of 6425
added city 4053 of 6425
added city 4054 of 6425
added city 4055 of 6425
added city 4056 of 6425
added city 4057 of 6425
added city 4058 of 6425
added city 4059 of 6425
added city 4060 of 6425
added city 4061 of 6425
added city 4062 of 6425
added city 4063 of 6425
added city 4064 of 6425
added city 4065 of 6425
added city 4066 of 6425
added city 4067 of 6425
added city 4068 of 6425
added city 4069 of 6425
added city 4070 of 6425
added city 4071 of 6425
added city 4072 of 6425
added city 4073 of 6425
added city 4074 of 6425
added city 4075 of 6425
added city 4076 of 6425
added city 4077 of 6425
added city 4078 of 6425
added city 4079 of 6425
added city 4080 of 6425
added city 4081 of 6425
added city 4082 of 6425
added city 4083 of 6425
added city 4084 of 6425
added city 4085 of 6425
added city 4086 of 6425
added city 4087 of 6425
added city 4088 of 6425
added city 4089 of 6425
added city 4090 of 6425
added city 4091 of 6425
added city 4092 of 6425
added city 4093 of 6425
added city 4094 of 6425
added city 4095 of 6425
added city 4096 of 6425
added city 4097 of 6425
added city 4098 of 6425
added city 4099 of 6425
added city 4100 of 6425
added city 4101 of 6425
added city 4102 of 6425
added city 4103 of 6425
added city 4104 of 6425
added city 4105 of 6425
added city 4106 of 6425
added city 4107 of 6425
added city 4108 of 6425
added city 4109 of 6425
added city 4110 of 6425
added city 4111 of 6425
added city 4112 of 6425
added city 4113 of 6425
added city 4114 of 6425
added city 4115 of 6425
added city 4116 of 6425
added city 4117 of 6425
added city 4118 of 6425
added city 4119 of 6425
added city 4120 of 6425
added city 4121 of 6425
added city 4122 of 6425
added city 4123 of 6425
added city 4124 of 6425
added city 4125 of 6425
added city 4126 of 6425
added city 4127 of 6425
added city 4128 of 6425
added city 4129 of 6425
added city 4130 of 6425
added city 4131 of 6425
added city 4132 of 6425
added city 4133 of 6425
added city 4134 of 6425
added city 4135 of 6425
added city 4136 of 6425
added city 4137 of 6425
added city 4138 of 6425
added city 4139 of 6425
added city 4140 of 6425
added city 4141 of 6425
added city 4142 of 6425
added city 4143 of 6425
added city 4144 of 6425
added city 4145 of 6425
added city 4146 of 6425
added city 4147 of 6425
added city 4148 of 6425
added city 4149 of 6425
added city 4150 of 6425
added city 4151 of 6425
added city 4152 of 6425
added city 4153 of 6425
added city 4154 of 6425
added city 4155 of 6425
added city 4156 of 6425
added city 4157 of 6425
added city 4158 of 6425
added city 4159 of 6425
added city 4160 of 6425
added city 4161 of 6425
added city 4162 of 6425
added city 4163 of 6425
added city 4164 of 6425
added city 4165 of 6425
added city 4166 of 6425
added city 4167 of 6425
added city 4168 of 6425
added city 4169 of 6425
added city 4170 of 6425
added city 4171 of 6425
added city 4172 of 6425
added city 4173 of 6425
added city 4174 of 6425
added city 4175 of 6425
added city 4176 of 6425
added city 4177 of 6425
added city 4178 of 6425
added city 4179 of 6425
added city 4180 of 6425
added city 4181 of 6425
added city 4182 of 6425
added city 4183 of 6425
added city 4184 of 6425
added city 4185 of 6425
added city 4186 of 6425
added city 4187 of 6425
added city 4188 of 6425
added city 4189 of 6425
added city 4190 of 6425
added city 4191 of 6425
added city 4192 of 6425
added city 4193 of 6425
added city 4194 of 6425
added city 4195 of 6425
added city 4196 of 6425
added city 4197 of 6425
added city 4198 of 6425
added city 4199 of 6425
added city 4200 of 6425
added city 4201 of 6425
added city 4202 of 6425
added city 4203 of 6425
added city 4204 of 6425
added city 4205 of 6425
added city 4206 of 6425
added city 4207 of 6425
added city 4208 of 6425
added city 4209 of 6425
added city 4210 of 6425
added city 4211 of 6425
added city 4212 of 6425
added city 4213 of 6425
added city 4214 of 6425
added city 4215 of 6425
added city 4216 of 6425
added city 4217 of 6425
added city 4218 of 6425
added city 4219 of 6425
added city 4220 of 6425
added city 4221 of 6425
added city 4222 of 6425
added city 4223 of 6425
added city 4224 of 6425
added city 4225 of 6425
added city 4226 of 6425
added city 4227 of 6425
added city 4228 of 6425
added city 4229 of 6425
added city 4230 of 6425
added city 4231 of 6425
added city 4232 of 6425
added city 4233 of 6425
added city 4234 of 6425
added city 4235 of 6425
added city 4236 of 6425
added city 4237 of 6425
added city 4238 of 6425
added city 4239 of 6425
added city 4240 of 6425
added city 4241 of 6425
added city 4242 of 6425
added city 4243 of 6425
added city 4244 of 6425
added city 4245 of 6425
added city 4246 of 6425
added city 4247 of 6425
added city 4248 of 6425
added city 4249 of 6425
added city 4250 of 6425
added city 4251 of 6425
added city 4252 of 6425
added city 4253 of 6425
added city 4254 of 6425
added city 4255 of 6425
added city 4256 of 6425
added city 4257 of 6425
added city 4258 of 6425
added city 4259 of 6425
added city 4260 of 6425
added city 4261 of 6425
added city 4262 of 6425
added city 4263 of 6425
added city 4264 of 6425
added city 4265 of 6425
added city 4266 of 6425
added city 4267 of 6425
added city 4268 of 6425
added city 4269 of 6425
added city 4270 of 6425
added city 4271 of 6425
added city 4272 of 6425
added city 4273 of 6425
added city 4274 of 6425
added city 4275 of 6425
added city 4276 of 6425
added city 4277 of 6425
added city 4278 of 6425
added city 4279 of 6425
added city 4280 of 6425
added city 4281 of 6425
added city 4282 of 6425
added city 4283 of 6425
added city 4284 of 6425
added city 4285 of 6425
added city 4286 of 6425
added city 4287 of 6425
added city 4288 of 6425
added city 4289 of 6425
added city 4290 of 6425
added city 4291 of 6425
added city 4292 of 6425
added city 4293 of 6425
added city 4294 of 6425
added city 4295 of 6425
added city 4296 of 6425
added city 4297 of 6425
added city 4298 of 6425
added city 4299 of 6425
added city 4300 of 6425
added city 4301 of 6425
added city 4302 of 6425
added city 4303 of 6425
added city 4304 of 6425
added city 4305 of 6425
added city 4306 of 6425
added city 4307 of 6425
added city 4308 of 6425
added city 4309 of 6425
added city 4310 of 6425
added city 4311 of 6425
added city 4312 of 6425
added city 4313 of 6425
added city 4314 of 6425
added city 4315 of 6425
added city 4316 of 6425
added city 4317 of 6425
added city 4318 of 6425
added city 4319 of 6425
added city 4320 of 6425
added city 4321 of 6425
added city 4322 of 6425
added city 4323 of 6425
added city 4324 of 6425
added city 4325 of 6425
added city 4326 of 6425
added city 4327 of 6425
added city 4328 of 6425
added city 4329 of 6425
added city 4330 of 6425
added city 4331 of 6425
added city 4332 of 6425
added city 4333 of 6425
added city 4334 of 6425
added city 4335 of 6425
added city 4336 of 6425
added city 4337 of 6425
added city 4338 of 6425
added city 4339 of 6425
added city 4340 of 6425
added city 4341 of 6425
added city 4342 of 6425
added city 4343 of 6425
added city 4344 of 6425
added city 4345 of 6425
added city 4346 of 6425
added city 4347 of 6425
added city 4348 of 6425
added city 4349 of 6425
added city 4350 of 6425
added city 4351 of 6425
added city 4352 of 6425
added city 4353 of 6425
added city 4354 of 6425
added city 4355 of 6425
added city 4356 of 6425
added city 4357 of 6425
added city 4358 of 6425
added city 4359 of 6425
added city 4360 of 6425
added city 4361 of 6425
added city 4362 of 6425
added city 4363 of 6425
added city 4364 of 6425
added city 4365 of 6425
added city 4366 of 6425
added city 4367 of 6425
added city 4368 of 6425
added city 4369 of 6425
added city 4370 of 6425
added city 4371 of 6425
added city 4372 of 6425
added city 4373 of 6425
added city 4374 of 6425
added city 4375 of 6425
added city 4376 of 6425
added city 4377 of 6425
added city 4378 of 6425
added city 4379 of 6425
added city 4380 of 6425
added city 4381 of 6425
added city 4382 of 6425
added city 4383 of 6425
added city 4384 of 6425
added city 4385 of 6425
added city 4386 of 6425
added city 4387 of 6425
added city 4388 of 6425
added city 4389 of 6425
added city 4390 of 6425
added city 4391 of 6425
added city 4392 of 6425
added city 4393 of 6425
added city 4394 of 6425
added city 4395 of 6425
added city 4396 of 6425
added city 4397 of 6425
added city 4398 of 6425
added city 4399 of 6425
added city 4400 of 6425
added city 4401 of 6425
added city 4402 of 6425
added city 4403 of 6425
added city 4404 of 6425
added city 4405 of 6425
added city 4406 of 6425
added city 4407 of 6425
added city 4408 of 6425
added city 4409 of 6425
added city 4410 of 6425
added city 4411 of 6425
added city 4412 of 6425
added city 4413 of 6425
added city 4414 of 6425
added city 4415 of 6425
added city 4416 of 6425
added city 4417 of 6425
added city 4418 of 6425
added city 4419 of 6425
added city 4420 of 6425
added city 4421 of 6425
added city 4422 of 6425
added city 4423 of 6425
added city 4424 of 6425
added city 4425 of 6425
added city 4426 of 6425
added city 4427 of 6425
added city 4428 of 6425
added city 4429 of 6425
added city 4430 of 6425
added city 4431 of 6425
added city 4432 of 6425
added city 4433 of 6425
added city 4434 of 6425
added city 4435 of 6425
added city 4436 of 6425
added city 4437 of 6425
added city 4438 of 6425
added city 4439 of 6425
added city 4440 of 6425
added city 4441 of 6425
added city 4442 of 6425
added city 4443 of 6425
added city 4444 of 6425
added city 4445 of 6425
added city 4446 of 6425
added city 4447 of 6425
added city 4448 of 6425
added city 4449 of 6425
added city 4450 of 6425
added city 4451 of 6425
added city 4452 of 6425
added city 4453 of 6425
added city 4454 of 6425
added city 4455 of 6425
added city 4456 of 6425
added city 4457 of 6425
added city 4458 of 6425
added city 4459 of 6425
added city 4460 of 6425
added city 4461 of 6425
added city 4462 of 6425
added city 4463 of 6425
added city 4464 of 6425
added city 4465 of 6425
added city 4466 of 6425
added city 4467 of 6425
added city 4468 of 6425
added city 4469 of 6425
added city 4470 of 6425
added city 4471 of 6425
added city 4472 of 6425
added city 4473 of 6425
added city 4474 of 6425
added city 4475 of 6425
added city 4476 of 6425
added city 4477 of 6425
added city 4478 of 6425
added city 4479 of 6425
added city 4480 of 6425
added city 4481 of 6425
added city 4482 of 6425
added city 4483 of 6425
added city 4484 of 6425
added city 4485 of 6425
added city 4486 of 6425
added city 4487 of 6425
added city 4488 of 6425
added city 4489 of 6425
added city 4490 of 6425
added city 4491 of 6425
added city 4492 of 6425
added city 4493 of 6425
added city 4494 of 6425
added city 4495 of 6425
added city 4496 of 6425
added city 4497 of 6425
added city 4498 of 6425
added city 4499 of 6425
added city 4500 of 6425
added city 4501 of 6425
added city 4502 of 6425
added city 4503 of 6425
added city 4504 of 6425
added city 4505 of 6425
added city 4506 of 6425
added city 4507 of 6425
added city 4508 of 6425
added city 4509 of 6425
added city 4510 of 6425
added city 4511 of 6425
added city 4512 of 6425
added city 4513 of 6425
added city 4514 of 6425
added city 4515 of 6425
added city 4516 of 6425
added city 4517 of 6425
added city 4518 of 6425
added city 4519 of 6425
added city 4520 of 6425
added city 4521 of 6425
added city 4522 of 6425
added city 4523 of 6425
added city 4524 of 6425
added city 4525 of 6425
added city 4526 of 6425
added city 4527 of 6425
added city 4528 of 6425
added city 4529 of 6425
added city 4530 of 6425
added city 4531 of 6425
added city 4532 of 6425
added city 4533 of 6425
added city 4534 of 6425
added city 4535 of 6425
added city 4536 of 6425
added city 4537 of 6425
added city 4538 of 6425
added city 4539 of 6425
added city 4540 of 6425
added city 4541 of 6425
added city 4542 of 6425
added city 4543 of 6425
added city 4544 of 6425
added city 4545 of 6425
added city 4546 of 6425
added city 4547 of 6425
added city 4548 of 6425
added city 4549 of 6425
added city 4550 of 6425
added city 4551 of 6425
added city 4552 of 6425
added city 4553 of 6425
added city 4554 of 6425
added city 4555 of 6425
added city 4556 of 6425
added city 4557 of 6425
added city 4558 of 6425
added city 4559 of 6425
added city 4560 of 6425
added city 4561 of 6425
added city 4562 of 6425
added city 4563 of 6425
added city 4564 of 6425
added city 4565 of 6425
added city 4566 of 6425
added city 4567 of 6425
added city 4568 of 6425
added city 4569 of 6425
added city 4570 of 6425
added city 4571 of 6425
added city 4572 of 6425
added city 4573 of 6425
added city 4574 of 6425
added city 4575 of 6425
added city 4576 of 6425
added city 4577 of 6425
added city 4578 of 6425
added city 4579 of 6425
added city 4580 of 6425
added city 4581 of 6425
added city 4582 of 6425
added city 4583 of 6425
added city 4584 of 6425
added city 4585 of 6425
added city 4586 of 6425
added city 4587 of 6425
added city 4588 of 6425
added city 4589 of 6425
added city 4590 of 6425
added city 4591 of 6425
added city 4592 of 6425
added city 4593 of 6425
added city 4594 of 6425
added city 4595 of 6425
added city 4596 of 6425
added city 4597 of 6425
added city 4598 of 6425
added city 4599 of 6425
added city 4600 of 6425
added city 4601 of 6425
added city 4602 of 6425
added city 4603 of 6425
added city 4604 of 6425
added city 4605 of 6425
added city 4606 of 6425
added city 4607 of 6425
added city 4608 of 6425
added city 4609 of 6425
added city 4610 of 6425
added city 4611 of 6425
added city 4612 of 6425
added city 4613 of 6425
added city 4614 of 6425
added city 4615 of 6425
added city 4616 of 6425
added city 4617 of 6425
added city 4618 of 6425
added city 4619 of 6425
added city 4620 of 6425
added city 4621 of 6425
added city 4622 of 6425
added city 4623 of 6425
added city 4624 of 6425
added city 4625 of 6425
added city 4626 of 6425
added city 4627 of 6425
added city 4628 of 6425
added city 4629 of 6425
added city 4630 of 6425
added city 4631 of 6425
added city 4632 of 6425
added city 4633 of 6425
added city 4634 of 6425
added city 4635 of 6425
added city 4636 of 6425
added city 4637 of 6425
added city 4638 of 6425
added city 4639 of 6425
added city 4640 of 6425
added city 4641 of 6425
added city 4642 of 6425
added city 4643 of 6425
added city 4644 of 6425
added city 4645 of 6425
added city 4646 of 6425
added city 4647 of 6425
added city 4648 of 6425
added city 4649 of 6425
added city 4650 of 6425
added city 4651 of 6425
added city 4652 of 6425
added city 4653 of 6425
added city 4654 of 6425
added city 4655 of 6425
added city 4656 of 6425
added city 4657 of 6425
added city 4658 of 6425
added city 4659 of 6425
added city 4660 of 6425
added city 4661 of 6425
added city 4662 of 6425
added city 4663 of 6425
added city 4664 of 6425
added city 4665 of 6425
added city 4666 of 6425
added city 4667 of 6425
added city 4668 of 6425
added city 4669 of 6425
added city 4670 of 6425
added city 4671 of 6425
added city 4672 of 6425
added city 4673 of 6425
added city 4674 of 6425
added city 4675 of 6425
added city 4676 of 6425
added city 4677 of 6425
added city 4678 of 6425
added city 4679 of 6425
added city 4680 of 6425
added city 4681 of 6425
added city 4682 of 6425
added city 4683 of 6425
added city 4684 of 6425
added city 4685 of 6425
added city 4686 of 6425
added city 4687 of 6425
added city 4688 of 6425
added city 4689 of 6425
added city 4690 of 6425
added city 4691 of 6425
added city 4692 of 6425
added city 4693 of 6425
added city 4694 of 6425
added city 4695 of 6425
added city 4696 of 6425
added city 4697 of 6425
added city 4698 of 6425
added city 4699 of 6425
added city 4700 of 6425
added city 4701 of 6425
added city 4702 of 6425
added city 4703 of 6425
added city 4704 of 6425
added city 4705 of 6425
added city 4706 of 6425
added city 4707 of 6425
added city 4708 of 6425
added city 4709 of 6425
added city 4710 of 6425
added city 4711 of 6425
added city 4712 of 6425
added city 4713 of 6425
added city 4714 of 6425
added city 4715 of 6425
added city 4716 of 6425
added city 4717 of 6425
added city 4718 of 6425
added city 4719 of 6425
added city 4720 of 6425
added city 4721 of 6425
added city 4722 of 6425
added city 4723 of 6425
added city 4724 of 6425
added city 4725 of 6425
added city 4726 of 6425
added city 4727 of 6425
added city 4728 of 6425
added city 4729 of 6425
added city 4730 of 6425
added city 4731 of 6425
added city 4732 of 6425
added city 4733 of 6425
added city 4734 of 6425
added city 4735 of 6425
added city 4736 of 6425
added city 4737 of 6425
added city 4738 of 6425
added city 4739 of 6425
added city 4740 of 6425
added city 4741 of 6425
added city 4742 of 6425
added city 4743 of 6425
added city 4744 of 6425
added city 4745 of 6425
added city 4746 of 6425
added city 4747 of 6425
added city 4748 of 6425
added city 4749 of 6425
added city 4750 of 6425
added city 4751 of 6425
added city 4752 of 6425
added city 4753 of 6425
added city 4754 of 6425
added city 4755 of 6425
added city 4756 of 6425
added city 4757 of 6425
added city 4758 of 6425
added city 4759 of 6425
added city 4760 of 6425
added city 4761 of 6425
added city 4762 of 6425
added city 4763 of 6425
added city 4764 of 6425
added city 4765 of 6425
added city 4766 of 6425
added city 4767 of 6425
added city 4768 of 6425
added city 4769 of 6425
added city 4770 of 6425
added city 4771 of 6425
added city 4772 of 6425
added city 4773 of 6425
added city 4774 of 6425
added city 4775 of 6425
added city 4776 of 6425
added city 4777 of 6425
added city 4778 of 6425
added city 4779 of 6425
added city 4780 of 6425
added city 4781 of 6425
added city 4782 of 6425
added city 4783 of 6425
added city 4784 of 6425
added city 4785 of 6425
added city 4786 of 6425
added city 4787 of 6425
added city 4788 of 6425
added city 4789 of 6425
added city 4790 of 6425
added city 4791 of 6425
added city 4792 of 6425
added city 4793 of 6425
added city 4794 of 6425
added city 4795 of 6425
added city 4796 of 6425
added city 4797 of 6425
added city 4798 of 6425
added city 4799 of 6425
added city 4800 of 6425
added city 4801 of 6425
added city 4802 of 6425
added city 4803 of 6425
added city 4804 of 6425
added city 4805 of 6425
added city 4806 of 6425
added city 4807 of 6425
added city 4808 of 6425
added city 4809 of 6425
added city 4810 of 6425
added city 4811 of 6425
added city 4812 of 6425
added city 4813 of 6425
added city 4814 of 6425
added city 4815 of 6425
added city 4816 of 6425
added city 4817 of 6425
added city 4818 of 6425
added city 4819 of 6425
added city 4820 of 6425
added city 4821 of 6425
added city 4822 of 6425
added city 4823 of 6425
added city 4824 of 6425
added city 4825 of 6425
added city 4826 of 6425
added city 4827 of 6425
added city 4828 of 6425
added city 4829 of 6425
added city 4830 of 6425
added city 4831 of 6425
added city 4832 of 6425
added city 4833 of 6425
added city 4834 of 6425
added city 4835 of 6425
added city 4836 of 6425
added city 4837 of 6425
added city 4838 of 6425
added city 4839 of 6425
added city 4840 of 6425
added city 4841 of 6425
added city 4842 of 6425
added city 4843 of 6425
added city 4844 of 6425
added city 4845 of 6425
added city 4846 of 6425
added city 4847 of 6425
added city 4848 of 6425
added city 4849 of 6425
added city 4850 of 6425
added city 4851 of 6425
added city 4852 of 6425
added city 4853 of 6425
added city 4854 of 6425
added city 4855 of 6425
added city 4856 of 6425
added city 4857 of 6425
added city 4858 of 6425
added city 4859 of 6425
added city 4860 of 6425
added city 4861 of 6425
added city 4862 of 6425
added city 4863 of 6425
added city 4864 of 6425
added city 4865 of 6425
added city 4866 of 6425
added city 4867 of 6425
added city 4868 of 6425
added city 4869 of 6425
added city 4870 of 6425
added city 4871 of 6425
added city 4872 of 6425
added city 4873 of 6425
added city 4874 of 6425
added city 4875 of 6425
added city 4876 of 6425
added city 4877 of 6425
added city 4878 of 6425
added city 4879 of 6425
added city 4880 of 6425
added city 4881 of 6425
added city 4882 of 6425
added city 4883 of 6425
added city 4884 of 6425
added city 4885 of 6425
added city 4886 of 6425
added city 4887 of 6425
added city 4888 of 6425
added city 4889 of 6425
added city 4890 of 6425
added city 4891 of 6425
added city 4892 of 6425
added city 4893 of 6425
added city 4894 of 6425
added city 4895 of 6425
added city 4896 of 6425
added city 4897 of 6425
added city 4898 of 6425
added city 4899 of 6425
added city 4900 of 6425
added city 4901 of 6425
added city 4902 of 6425
added city 4903 of 6425
added city 4904 of 6425
added city 4905 of 6425
added city 4906 of 6425
added city 4907 of 6425
added city 4908 of 6425
added city 4909 of 6425
added city 4910 of 6425
added city 4911 of 6425
added city 4912 of 6425
added city 4913 of 6425
added city 4914 of 6425
added city 4915 of 6425
added city 4916 of 6425
added city 4917 of 6425
added city 4918 of 6425
added city 4919 of 6425
added city 4920 of 6425
added city 4921 of 6425
added city 4922 of 6425
added city 4923 of 6425
added city 4924 of 6425
added city 4925 of 6425
added city 4926 of 6425
added city 4927 of 6425
added city 4928 of 6425
added city 4929 of 6425
added city 4930 of 6425
added city 4931 of 6425
added city 4932 of 6425
added city 4933 of 6425
added city 4934 of 6425
added city 4935 of 6425
added city 4936 of 6425
added city 4937 of 6425
added city 4938 of 6425
added city 4939 of 6425
added city 4940 of 6425
added city 4941 of 6425
added city 4942 of 6425
added city 4943 of 6425
added city 4944 of 6425
added city 4945 of 6425
added city 4946 of 6425
added city 4947 of 6425
added city 4948 of 6425
added city 4949 of 6425
added city 4950 of 6425
added city 4951 of 6425
added city 4952 of 6425
added city 4953 of 6425
added city 4954 of 6425
added city 4955 of 6425
added city 4956 of 6425
added city 4957 of 6425
added city 4958 of 6425
added city 4959 of 6425
added city 4960 of 6425
added city 4961 of 6425
added city 4962 of 6425
added city 4963 of 6425
added city 4964 of 6425
added city 4965 of 6425
added city 4966 of 6425
added city 4967 of 6425
added city 4968 of 6425
added city 4969 of 6425
added city 4970 of 6425
added city 4971 of 6425
added city 4972 of 6425
added city 4973 of 6425
added city 4974 of 6425
added city 4975 of 6425
added city 4976 of 6425
added city 4977 of 6425
added city 4978 of 6425
added city 4979 of 6425
added city 4980 of 6425
added city 4981 of 6425
added city 4982 of 6425
added city 4983 of 6425
added city 4984 of 6425
added city 4985 of 6425
added city 4986 of 6425
added city 4987 of 6425
added city 4988 of 6425
added city 4989 of 6425
added city 4990 of 6425
added city 4991 of 6425
added city 4992 of 6425
added city 4993 of 6425
added city 4994 of 6425
added city 4995 of 6425
added city 4996 of 6425
added city 4997 of 6425
added city 4998 of 6425
added city 4999 of 6425
added city 5000 of 6425
added city 5001 of 6425
added city 5002 of 6425
added city 5003 of 6425
added city 5004 of 6425
added city 5005 of 6425
added city 5006 of 6425
added city 5007 of 6425
added city 5008 of 6425
added city 5009 of 6425
added city 5010 of 6425
added city 5011 of 6425
added city 5012 of 6425
added city 5013 of 6425
added city 5014 of 6425
added city 5015 of 6425
added city 5016 of 6425
added city 5017 of 6425
added city 5018 of 6425
added city 5019 of 6425
added city 5020 of 6425
added city 5021 of 6425
added city 5022 of 6425
added city 5023 of 6425
added city 5024 of 6425
added city 5025 of 6425
added city 5026 of 6425
added city 5027 of 6425
added city 5028 of 6425
added city 5029 of 6425
added city 5030 of 6425
added city 5031 of 6425
added city 5032 of 6425
added city 5033 of 6425
added city 5034 of 6425
added city 5035 of 6425
added city 5036 of 6425
added city 5037 of 6425
added city 5038 of 6425
added city 5039 of 6425
added city 5040 of 6425
added city 5041 of 6425
added city 5042 of 6425
added city 5043 of 6425
added city 5044 of 6425
added city 5045 of 6425
added city 5046 of 6425
added city 5047 of 6425
added city 5048 of 6425
added city 5049 of 6425
added city 5050 of 6425
added city 5051 of 6425
added city 5052 of 6425
added city 5053 of 6425
added city 5054 of 6425
added city 5055 of 6425
added city 5056 of 6425
added city 5057 of 6425
added city 5058 of 6425
added city 5059 of 6425
added city 5060 of 6425
added city 5061 of 6425
added city 5062 of 6425
added city 5063 of 6425
added city 5064 of 6425
added city 5065 of 6425
added city 5066 of 6425
added city 5067 of 6425
added city 5068 of 6425
added city 5069 of 6425
added city 5070 of 6425
added city 5071 of 6425
added city 5072 of 6425
added city 5073 of 6425
added city 5074 of 6425
added city 5075 of 6425
added city 5076 of 6425
added city 5077 of 6425
added city 5078 of 6425
added city 5079 of 6425
added city 5080 of 6425
added city 5081 of 6425
added city 5082 of 6425
added city 5083 of 6425
added city 5084 of 6425
added city 5085 of 6425
added city 5086 of 6425
added city 5087 of 6425
added city 5088 of 6425
added city 5089 of 6425
added city 5090 of 6425
added city 5091 of 6425
added city 5092 of 6425
added city 5093 of 6425
added city 5094 of 6425
added city 5095 of 6425
added city 5096 of 6425
added city 5097 of 6425
added city 5098 of 6425
added city 5099 of 6425
added city 5100 of 6425
added city 5101 of 6425
added city 5102 of 6425
added city 5103 of 6425
added city 5104 of 6425
added city 5105 of 6425
added city 5106 of 6425
added city 5107 of 6425
added city 5108 of 6425
added city 5109 of 6425
added city 5110 of 6425
added city 5111 of 6425
added city 5112 of 6425
added city 5113 of 6425
added city 5114 of 6425
added city 5115 of 6425
added city 5116 of 6425
added city 5117 of 6425
added city 5118 of 6425
added city 5119 of 6425
added city 5120 of 6425
added city 5121 of 6425
added city 5122 of 6425
added city 5123 of 6425
added city 5124 of 6425
added city 5125 of 6425
added city 5126 of 6425
added city 5127 of 6425
added city 5128 of 6425
added city 5129 of 6425
added city 5130 of 6425
added city 5131 of 6425
added city 5132 of 6425
added city 5133 of 6425
added city 5134 of 6425
added city 5135 of 6425
added city 5136 of 6425
added city 5137 of 6425
added city 5138 of 6425
added city 5139 of 6425
added city 5140 of 6425
added city 5141 of 6425
added city 5142 of 6425
added city 5143 of 6425
added city 5144 of 6425
added city 5145 of 6425
added city 5146 of 6425
added city 5147 of 6425
added city 5148 of 6425
added city 5149 of 6425
added city 5150 of 6425
added city 5151 of 6425
added city 5152 of 6425
added city 5153 of 6425
added city 5154 of 6425
added city 5155 of 6425
added city 5156 of 6425
added city 5157 of 6425
added city 5158 of 6425
added city 5159 of 6425
added city 5160 of 6425
added city 5161 of 6425
added city 5162 of 6425
added city 5163 of 6425
added city 5164 of 6425
added city 5165 of 6425
added city 5166 of 6425
added city 5167 of 6425
added city 5168 of 6425
added city 5169 of 6425
added city 5170 of 6425
added city 5171 of 6425
added city 5172 of 6425
added city 5173 of 6425
added city 5174 of 6425
added city 5175 of 6425
added city 5176 of 6425
added city 5177 of 6425
added city 5178 of 6425
added city 5179 of 6425
added city 5180 of 6425
added city 5181 of 6425
added city 5182 of 6425
added city 5183 of 6425
added city 5184 of 6425
added city 5185 of 6425
added city 5186 of 6425
added city 5187 of 6425
added city 5188 of 6425
added city 5189 of 6425
added city 5190 of 6425
added city 5191 of 6425
added city 5192 of 6425
added city 5193 of 6425
added city 5194 of 6425
added city 5195 of 6425
added city 5196 of 6425
added city 5197 of 6425
added city 5198 of 6425
added city 5199 of 6425
added city 5200 of 6425
added city 5201 of 6425
added city 5202 of 6425
added city 5203 of 6425
added city 5204 of 6425
added city 5205 of 6425
added city 5206 of 6425
added city 5207 of 6425
added city 5208 of 6425
added city 5209 of 6425
added city 5210 of 6425
added city 5211 of 6425
added city 5212 of 6425
added city 5213 of 6425
added city 5214 of 6425
added city 5215 of 6425
added city 5216 of 6425
added city 5217 of 6425
added city 5218 of 6425
added city 5219 of 6425
added city 5220 of 6425
added city 5221 of 6425
added city 5222 of 6425
added city 5223 of 6425
added city 5224 of 6425
added city 5225 of 6425
added city 5226 of 6425
added city 5227 of 6425
added city 5228 of 6425
added city 5229 of 6425
added city 5230 of 6425
added city 5231 of 6425
added city 5232 of 6425
added city 5233 of 6425
added city 5234 of 6425
added city 5235 of 6425
added city 5236 of 6425
added city 5237 of 6425
added city 5238 of 6425
added city 5239 of 6425
added city 5240 of 6425
added city 5241 of 6425
added city 5242 of 6425
added city 5243 of 6425
added city 5244 of 6425
added city 5245 of 6425
added city 5246 of 6425
added city 5247 of 6425
added city 5248 of 6425
added city 5249 of 6425
added city 5250 of 6425
added city 5251 of 6425
added city 5252 of 6425
added city 5253 of 6425
added city 5254 of 6425
added city 5255 of 6425
added city 5256 of 6425
added city 5257 of 6425
added city 5258 of 6425
added city 5259 of 6425
added city 5260 of 6425
added city 5261 of 6425
added city 5262 of 6425
added city 5263 of 6425
added city 5264 of 6425
added city 5265 of 6425
added city 5266 of 6425
added city 5267 of 6425
added city 5268 of 6425
added city 5269 of 6425
added city 5270 of 6425
added city 5271 of 6425
added city 5272 of 6425
added city 5273 of 6425
added city 5274 of 6425
added city 5275 of 6425
added city 5276 of 6425
added city 5277 of 6425
added city 5278 of 6425
added city 5279 of 6425
added city 5280 of 6425
added city 5281 of 6425
added city 5282 of 6425
added city 5283 of 6425
added city 5284 of 6425
added city 5285 of 6425
added city 5286 of 6425
added city 5287 of 6425
added city 5288 of 6425
added city 5289 of 6425
added city 5290 of 6425
added city 5291 of 6425
added city 5292 of 6425
added city 5293 of 6425
added city 5294 of 6425
added city 5295 of 6425
added city 5296 of 6425
added city 5297 of 6425
added city 5298 of 6425
added city 5299 of 6425
added city 5300 of 6425
added city 5301 of 6425
added city 5302 of 6425
added city 5303 of 6425
added city 5304 of 6425
added city 5305 of 6425
added city 5306 of 6425
added city 5307 of 6425
added city 5308 of 6425
added city 5309 of 6425
added city 5310 of 6425
added city 5311 of 6425
added city 5312 of 6425
added city 5313 of 6425
added city 5314 of 6425
added city 5315 of 6425
added city 5316 of 6425
added city 5317 of 6425
added city 5318 of 6425
added city 5319 of 6425
added city 5320 of 6425
added city 5321 of 6425
added city 5322 of 6425
added city 5323 of 6425
added city 5324 of 6425
added city 5325 of 6425
added city 5326 of 6425
added city 5327 of 6425
added city 5328 of 6425
added city 5329 of 6425
added city 5330 of 6425
added city 5331 of 6425
added city 5332 of 6425
added city 5333 of 6425
added city 5334 of 6425
added city 5335 of 6425
added city 5336 of 6425
added city 5337 of 6425
added city 5338 of 6425
added city 5339 of 6425
added city 5340 of 6425
added city 5341 of 6425
added city 5342 of 6425
added city 5343 of 6425
added city 5344 of 6425
added city 5345 of 6425
added city 5346 of 6425
added city 5347 of 6425
added city 5348 of 6425
added city 5349 of 6425
added city 5350 of 6425
added city 5351 of 6425
added city 5352 of 6425
added city 5353 of 6425
added city 5354 of 6425
added city 5355 of 6425
added city 5356 of 6425
added city 5357 of 6425
added city 5358 of 6425
added city 5359 of 6425
added city 5360 of 6425
added city 5361 of 6425
added city 5362 of 6425
added city 5363 of 6425
added city 5364 of 6425
added city 5365 of 6425
added city 5366 of 6425
added city 5367 of 6425
added city 5368 of 6425
added city 5369 of 6425
added city 5370 of 6425
added city 5371 of 6425
added city 5372 of 6425
added city 5373 of 6425
added city 5374 of 6425
added city 5375 of 6425
added city 5376 of 6425
added city 5377 of 6425
added city 5378 of 6425
added city 5379 of 6425
added city 5380 of 6425
added city 5381 of 6425
added city 5382 of 6425
added city 5383 of 6425
added city 5384 of 6425
added city 5385 of 6425
added city 5386 of 6425
added city 5387 of 6425
added city 5388 of 6425
added city 5389 of 6425
added city 5390 of 6425
added city 5391 of 6425
added city 5392 of 6425
added city 5393 of 6425
added city 5394 of 6425
added city 5395 of 6425
added city 5396 of 6425
added city 5397 of 6425
added city 5398 of 6425
added city 5399 of 6425
added city 5400 of 6425
added city 5401 of 6425
added city 5402 of 6425
added city 5403 of 6425
added city 5404 of 6425
added city 5405 of 6425
added city 5406 of 6425
added city 5407 of 6425
added city 5408 of 6425
added city 5409 of 6425
added city 5410 of 6425
added city 5411 of 6425
added city 5412 of 6425
added city 5413 of 6425
added city 5414 of 6425
added city 5415 of 6425
added city 5416 of 6425
added city 5417 of 6425
added city 5418 of 6425
added city 5419 of 6425
added city 5420 of 6425
added city 5421 of 6425
added city 5422 of 6425
added city 5423 of 6425
added city 5424 of 6425
added city 5425 of 6425
added city 5426 of 6425
added city 5427 of 6425
added city 5428 of 6425
added city 5429 of 6425
added city 5430 of 6425
added city 5431 of 6425
added city 5432 of 6425
added city 5433 of 6425
added city 5434 of 6425
added city 5435 of 6425
added city 5436 of 6425
added city 5437 of 6425
added city 5438 of 6425
added city 5439 of 6425
added city 5440 of 6425
added city 5441 of 6425
added city 5442 of 6425
added city 5443 of 6425
added city 5444 of 6425
added city 5445 of 6425
added city 5446 of 6425
added city 5447 of 6425
added city 5448 of 6425
added city 5449 of 6425
added city 5450 of 6425
added city 5451 of 6425
added city 5452 of 6425
added city 5453 of 6425
added city 5454 of 6425
added city 5455 of 6425
added city 5456 of 6425
added city 5457 of 6425
added city 5458 of 6425
added city 5459 of 6425
added city 5460 of 6425
added city 5461 of 6425
added city 5462 of 6425
added city 5463 of 6425
added city 5464 of 6425
added city 5465 of 6425
added city 5466 of 6425
added city 5467 of 6425
added city 5468 of 6425
added city 5469 of 6425
added city 5470 of 6425
added city 5471 of 6425
added city 5472 of 6425
added city 5473 of 6425
added city 5474 of 6425
added city 5475 of 6425
added city 5476 of 6425
added city 5477 of 6425
added city 5478 of 6425
added city 5479 of 6425
added city 5480 of 6425
added city 5481 of 6425
added city 5482 of 6425
added city 5483 of 6425
added city 5484 of 6425
added city 5485 of 6425
added city 5486 of 6425
added city 5487 of 6425
added city 5488 of 6425
added city 5489 of 6425
added city 5490 of 6425
added city 5491 of 6425
added city 5492 of 6425
added city 5493 of 6425
added city 5494 of 6425
added city 5495 of 6425
added city 5496 of 6425
added city 5497 of 6425
added city 5498 of 6425
added city 5499 of 6425
added city 5500 of 6425
added city 5501 of 6425
added city 5502 of 6425
added city 5503 of 6425
added city 5504 of 6425
added city 5505 of 6425
added city 5506 of 6425
added city 5507 of 6425
added city 5508 of 6425
added city 5509 of 6425
added city 5510 of 6425
added city 5511 of 6425
added city 5512 of 6425
added city 5513 of 6425
added city 5514 of 6425
added city 5515 of 6425
added city 5516 of 6425
added city 5517 of 6425
added city 5518 of 6425
added city 5519 of 6425
added city 5520 of 6425
added city 5521 of 6425
added city 5522 of 6425
added city 5523 of 6425
added city 5524 of 6425
added city 5525 of 6425
added city 5526 of 6425
added city 5527 of 6425
added city 5528 of 6425
added city 5529 of 6425
added city 5530 of 6425
added city 5531 of 6425
added city 5532 of 6425
added city 5533 of 6425
added city 5534 of 6425
added city 5535 of 6425
added city 5536 of 6425
added city 5537 of 6425
added city 5538 of 6425
added city 5539 of 6425
added city 5540 of 6425
added city 5541 of 6425
added city 5542 of 6425
added city 5543 of 6425
added city 5544 of 6425
added city 5545 of 6425
added city 5546 of 6425
added city 5547 of 6425
added city 5548 of 6425
added city 5549 of 6425
added city 5550 of 6425
added city 5551 of 6425
added city 5552 of 6425
added city 5553 of 6425
added city 5554 of 6425
added city 5555 of 6425
added city 5556 of 6425
added city 5557 of 6425
added city 5558 of 6425
added city 5559 of 6425
added city 5560 of 6425
added city 5561 of 6425
added city 5562 of 6425
added city 5563 of 6425
added city 5564 of 6425
added city 5565 of 6425
added city 5566 of 6425
added city 5567 of 6425
added city 5568 of 6425
added city 5569 of 6425
added city 5570 of 6425
added city 5571 of 6425
added city 5572 of 6425
added city 5573 of 6425
added city 5574 of 6425
added city 5575 of 6425
added city 5576 of 6425
added city 5577 of 6425
added city 5578 of 6425
added city 5579 of 6425
added city 5580 of 6425
added city 5581 of 6425
added city 5582 of 6425
added city 5583 of 6425
added city 5584 of 6425
added city 5585 of 6425
added city 5586 of 6425
added city 5587 of 6425
added city 5588 of 6425
added city 5589 of 6425
added city 5590 of 6425
added city 5591 of 6425
added city 5592 of 6425
added city 5593 of 6425
added city 5594 of 6425
added city 5595 of 6425
added city 5596 of 6425
added city 5597 of 6425
added city 5598 of 6425
added city 5599 of 6425
added city 5600 of 6425
added city 5601 of 6425
added city 5602 of 6425
added city 5603 of 6425
added city 5604 of 6425
added city 5605 of 6425
added city 5606 of 6425
added city 5607 of 6425
added city 5608 of 6425
added city 5609 of 6425
added city 5610 of 6425
added city 5611 of 6425
added city 5612 of 6425
added city 5613 of 6425
added city 5614 of 6425
added city 5615 of 6425
added city 5616 of 6425
added city 5617 of 6425
added city 5618 of 6425
added city 5619 of 6425
added city 5620 of 6425
added city 5621 of 6425
added city 5622 of 6425
added city 5623 of 6425
added city 5624 of 6425
added city 5625 of 6425
added city 5626 of 6425
added city 5627 of 6425
added city 5628 of 6425
added city 5629 of 6425
added city 5630 of 6425
added city 5631 of 6425
added city 5632 of 6425
added city 5633 of 6425
added city 5634 of 6425
added city 5635 of 6425
added city 5636 of 6425
added city 5637 of 6425
added city 5638 of 6425
added city 5639 of 6425
added city 5640 of 6425
added city 5641 of 6425
added city 5642 of 6425
added city 5643 of 6425
added city 5644 of 6425
added city 5645 of 6425
added city 5646 of 6425
added city 5647 of 6425
added city 5648 of 6425
added city 5649 of 6425
added city 5650 of 6425
added city 5651 of 6425
added city 5652 of 6425
added city 5653 of 6425
added city 5654 of 6425
added city 5655 of 6425
added city 5656 of 6425
added city 5657 of 6425
added city 5658 of 6425
added city 5659 of 6425
added city 5660 of 6425
added city 5661 of 6425
added city 5662 of 6425
added city 5663 of 6425
added city 5664 of 6425
added city 5665 of 6425
added city 5666 of 6425
added city 5667 of 6425
added city 5668 of 6425
added city 5669 of 6425
added city 5670 of 6425
added city 5671 of 6425
added city 5672 of 6425
added city 5673 of 6425
added city 5674 of 6425
added city 5675 of 6425
added city 5676 of 6425
added city 5677 of 6425
added city 5678 of 6425
added city 5679 of 6425
added city 5680 of 6425
added city 5681 of 6425
added city 5682 of 6425
added city 5683 of 6425
added city 5684 of 6425
added city 5685 of 6425
added city 5686 of 6425
added city 5687 of 6425
added city 5688 of 6425
added city 5689 of 6425
added city 5690 of 6425
added city 5691 of 6425
added city 5692 of 6425
added city 5693 of 6425
added city 5694 of 6425
added city 5695 of 6425
added city 5696 of 6425
added city 5697 of 6425
added city 5698 of 6425
added city 5699 of 6425
added city 5700 of 6425
added city 5701 of 6425
added city 5702 of 6425
added city 5703 of 6425
added city 5704 of 6425
added city 5705 of 6425
added city 5706 of 6425
added city 5707 of 6425
added city 5708 of 6425
added city 5709 of 6425
added city 5710 of 6425
added city 5711 of 6425
added city 5712 of 6425
added city 5713 of 6425
added city 5714 of 6425
added city 5715 of 6425
added city 5716 of 6425
added city 5717 of 6425
added city 5718 of 6425
added city 5719 of 6425
added city 5720 of 6425
added city 5721 of 6425
added city 5722 of 6425
added city 5723 of 6425
added city 5724 of 6425
added city 5725 of 6425
added city 5726 of 6425
added city 5727 of 6425
added city 5728 of 6425
added city 5729 of 6425
added city 5730 of 6425
added city 5731 of 6425
added city 5732 of 6425
added city 5733 of 6425
added city 5734 of 6425
added city 5735 of 6425
added city 5736 of 6425
added city 5737 of 6425
added city 5738 of 6425
added city 5739 of 6425
added city 5740 of 6425
added city 5741 of 6425
added city 5742 of 6425
added city 5743 of 6425
added city 5744 of 6425
added city 5745 of 6425
added city 5746 of 6425
added city 5747 of 6425
added city 5748 of 6425
added city 5749 of 6425
added city 5750 of 6425
added city 5751 of 6425
added city 5752 of 6425
added city 5753 of 6425
added city 5754 of 6425
added city 5755 of 6425
added city 5756 of 6425
added city 5757 of 6425
added city 5758 of 6425
added city 5759 of 6425
added city 5760 of 6425
added city 5761 of 6425
added city 5762 of 6425
added city 5763 of 6425
added city 5764 of 6425
added city 5765 of 6425
added city 5766 of 6425
added city 5767 of 6425
added city 5768 of 6425
added city 5769 of 6425
added city 5770 of 6425
added city 5771 of 6425
added city 5772 of 6425
added city 5773 of 6425
added city 5774 of 6425
added city 5775 of 6425
added city 5776 of 6425
added city 5777 of 6425
added city 5778 of 6425
added city 5779 of 6425
added city 5780 of 6425
added city 5781 of 6425
added city 5782 of 6425
added city 5783 of 6425
added city 5784 of 6425
added city 5785 of 6425
added city 5786 of 6425
added city 5787 of 6425
added city 5788 of 6425
added city 5789 of 6425
added city 5790 of 6425
added city 5791 of 6425
added city 5792 of 6425
added city 5793 of 6425
added city 5794 of 6425
added city 5795 of 6425
added city 5796 of 6425
added city 5797 of 6425
added city 5798 of 6425
added city 5799 of 6425
added city 5800 of 6425
added city 5801 of 6425
added city 5802 of 6425
added city 5803 of 6425
added city 5804 of 6425
added city 5805 of 6425
added city 5806 of 6425
added city 5807 of 6425
added city 5808 of 6425
added city 5809 of 6425
added city 5810 of 6425
added city 5811 of 6425
added city 5812 of 6425
added city 5813 of 6425
added city 5814 of 6425
added city 5815 of 6425
added city 5816 of 6425
added city 5817 of 6425
added city 5818 of 6425
added city 5819 of 6425
added city 5820 of 6425
added city 5821 of 6425
added city 5822 of 6425
added city 5823 of 6425
added city 5824 of 6425
added city 5825 of 6425
added city 5826 of 6425
added city 5827 of 6425
added city 5828 of 6425
added city 5829 of 6425
added city 5830 of 6425
added city 5831 of 6425
added city 5832 of 6425
added city 5833 of 6425
added city 5834 of 6425
added city 5835 of 6425
added city 5836 of 6425
added city 5837 of 6425
added city 5838 of 6425
added city 5839 of 6425
added city 5840 of 6425
added city 5841 of 6425
added city 5842 of 6425
added city 5843 of 6425
added city 5844 of 6425
added city 5845 of 6425
added city 5846 of 6425
added city 5847 of 6425
added city 5848 of 6425
added city 5849 of 6425
added city 5850 of 6425
added city 5851 of 6425
added city 5852 of 6425
added city 5853 of 6425
added city 5854 of 6425
added city 5855 of 6425
added city 5856 of 6425
added city 5857 of 6425
added city 5858 of 6425
added city 5859 of 6425
added city 5860 of 6425
added city 5861 of 6425
added city 5862 of 6425
added city 5863 of 6425
added city 5864 of 6425
added city 5865 of 6425
added city 5866 of 6425
added city 5867 of 6425
added city 5868 of 6425
added city 5869 of 6425
added city 5870 of 6425
added city 5871 of 6425
added city 5872 of 6425
added city 5873 of 6425
added city 5874 of 6425
added city 5875 of 6425
added city 5876 of 6425
added city 5877 of 6425
added city 5878 of 6425
added city 5879 of 6425
added city 5880 of 6425
added city 5881 of 6425
added city 5882 of 6425
added city 5883 of 6425
added city 5884 of 6425
added city 5885 of 6425
added city 5886 of 6425
added city 5887 of 6425
added city 5888 of 6425
added city 5889 of 6425
added city 5890 of 6425
added city 5891 of 6425
added city 5892 of 6425
added city 5893 of 6425
added city 5894 of 6425
added city 5895 of 6425
added city 5896 of 6425
added city 5897 of 6425
added city 5898 of 6425
added city 5899 of 6425
added city 5900 of 6425
added city 5901 of 6425
added city 5902 of 6425
added city 5903 of 6425
added city 5904 of 6425
added city 5905 of 6425
added city 5906 of 6425
added city 5907 of 6425
added city 5908 of 6425
added city 5909 of 6425
added city 5910 of 6425
added city 5911 of 6425
added city 5912 of 6425
added city 5913 of 6425
added city 5914 of 6425
added city 5915 of 6425
added city 5916 of 6425
added city 5917 of 6425
added city 5918 of 6425
added city 5919 of 6425
added city 5920 of 6425
added city 5921 of 6425
added city 5922 of 6425
added city 5923 of 6425
added city 5924 of 6425
added city 5925 of 6425
added city 5926 of 6425
added city 5927 of 6425
added city 5928 of 6425
added city 5929 of 6425
added city 5930 of 6425
added city 5931 of 6425
added city 5932 of 6425
added city 5933 of 6425
added city 5934 of 6425
added city 5935 of 6425
added city 5936 of 6425
added city 5937 of 6425
added city 5938 of 6425
added city 5939 of 6425
added city 5940 of 6425
added city 5941 of 6425
added city 5942 of 6425
added city 5943 of 6425
added city 5944 of 6425
added city 5945 of 6425
added city 5946 of 6425
added city 5947 of 6425
added city 5948 of 6425
added city 5949 of 6425
added city 5950 of 6425
added city 5951 of 6425
added city 5952 of 6425
added city 5953 of 6425
added city 5954 of 6425
added city 5955 of 6425
added city 5956 of 6425
added city 5957 of 6425
added city 5958 of 6425
added city 5959 of 6425
added city 5960 of 6425
added city 5961 of 6425
added city 5962 of 6425
added city 5963 of 6425
added city 5964 of 6425
added city 5965 of 6425
added city 5966 of 6425
added city 5967 of 6425
added city 5968 of 6425
added city 5969 of 6425
added city 5970 of 6425
added city 5971 of 6425
added city 5972 of 6425
added city 5973 of 6425
added city 5974 of 6425
added city 5975 of 6425
added city 5976 of 6425
added city 5977 of 6425
added city 5978 of 6425
added city 5979 of 6425
added city 5980 of 6425
added city 5981 of 6425
added city 5982 of 6425
added city 5983 of 6425
added city 5984 of 6425
added city 5985 of 6425
added city 5986 of 6425
added city 5987 of 6425
added city 5988 of 6425
added city 5989 of 6425
added city 5990 of 6425
added city 5991 of 6425
added city 5992 of 6425
added city 5993 of 6425
added city 5994 of 6425
added city 5995 of 6425
added city 5996 of 6425
added city 5997 of 6425
added city 5998 of 6425
added city 5999 of 6425
added city 6000 of 6425
added city 6001 of 6425
added city 6002 of 6425
added city 6003 of 6425
added city 6004 of 6425
added city 6005 of 6425
added city 6006 of 6425
added city 6007 of 6425
added city 6008 of 6425
added city 6009 of 6425
added city 6010 of 6425
added city 6011 of 6425
added city 6012 of 6425
added city 6013 of 6425
added city 6014 of 6425
added city 6015 of 6425
added city 6016 of 6425
added city 6017 of 6425
added city 6018 of 6425
added city 6019 of 6425
added city 6020 of 6425
added city 6021 of 6425
added city 6022 of 6425
added city 6023 of 6425
added city 6024 of 6425
added city 6025 of 6425
added city 6026 of 6425
added city 6027 of 6425
added city 6028 of 6425
added city 6029 of 6425
added city 6030 of 6425
added city 6031 of 6425
added city 6032 of 6425
added city 6033 of 6425
added city 6034 of 6425
added city 6035 of 6425
added city 6036 of 6425
added city 6037 of 6425
added city 6038 of 6425
added city 6039 of 6425
added city 6040 of 6425
added city 6041 of 6425
added city 6042 of 6425
added city 6043 of 6425
added city 6044 of 6425
added city 6045 of 6425
added city 6046 of 6425
added city 6047 of 6425
added city 6048 of 6425
added city 6049 of 6425
added city 6050 of 6425
added city 6051 of 6425
added city 6052 of 6425
added city 6053 of 6425
added city 6054 of 6425
added city 6055 of 6425
added city 6056 of 6425
added city 6057 of 6425
added city 6058 of 6425
added city 6059 of 6425
added city 6060 of 6425
added city 6061 of 6425
added city 6062 of 6425
added city 6063 of 6425
added city 6064 of 6425
added city 6065 of 6425
added city 6066 of 6425
added city 6067 of 6425
added city 6068 of 6425
added city 6069 of 6425
added city 6070 of 6425
added city 6071 of 6425
added city 6072 of 6425
added city 6073 of 6425
added city 6074 of 6425
added city 6075 of 6425
added city 6076 of 6425
added city 6077 of 6425
added city 6078 of 6425
added city 6079 of 6425
added city 6080 of 6425
added city 6081 of 6425
added city 6082 of 6425
added city 6083 of 6425
added city 6084 of 6425
added city 6085 of 6425
added city 6086 of 6425
added city 6087 of 6425
added city 6088 of 6425
added city 6089 of 6425
added city 6090 of 6425
added city 6091 of 6425
added city 6092 of 6425
added city 6093 of 6425
added city 6094 of 6425
added city 6095 of 6425
added city 6096 of 6425
added city 6097 of 6425
added city 6098 of 6425
added city 6099 of 6425
added city 6100 of 6425
added city 6101 of 6425
added city 6102 of 6425
added city 6103 of 6425
added city 6104 of 6425
added city 6105 of 6425
added city 6106 of 6425
added city 6107 of 6425
added city 6108 of 6425
added city 6109 of 6425
added city 6110 of 6425
added city 6111 of 6425
added city 6112 of 6425
added city 6113 of 6425
added city 6114 of 6425
added city 6115 of 6425
added city 6116 of 6425
added city 6117 of 6425
added city 6118 of 6425
added city 6119 of 6425
added city 6120 of 6425
added city 6121 of 6425
added city 6122 of 6425
added city 6123 of 6425
added city 6124 of 6425
added city 6125 of 6425
added city 6126 of 6425
added city 6127 of 6425
added city 6128 of 6425
added city 6129 of 6425
added city 6130 of 6425
added city 6131 of 6425
added city 6132 of 6425
added city 6133 of 6425
added city 6134 of 6425
added city 6135 of 6425
added city 6136 of 6425
added city 6137 of 6425
added city 6138 of 6425
added city 6139 of 6425
added city 6140 of 6425
added city 6141 of 6425
added city 6142 of 6425
added city 6143 of 6425
added city 6144 of 6425
added city 6145 of 6425
added city 6146 of 6425
added city 6147 of 6425
added city 6148 of 6425
added city 6149 of 6425
added city 6150 of 6425
added city 6151 of 6425
added city 6152 of 6425
added city 6153 of 6425
added city 6154 of 6425
added city 6155 of 6425
added city 6156 of 6425
added city 6157 of 6425
added city 6158 of 6425
added city 6159 of 6425
added city 6160 of 6425
added city 6161 of 6425
added city 6162 of 6425
added city 6163 of 6425
added city 6164 of 6425
added city 6165 of 6425
added city 6166 of 6425
added city 6167 of 6425
added city 6168 of 6425
added city 6169 of 6425
added city 6170 of 6425
added city 6171 of 6425
added city 6172 of 6425
added city 6173 of 6425
added city 6174 of 6425
added city 6175 of 6425
added city 6176 of 6425
added city 6177 of 6425
added city 6178 of 6425
added city 6179 of 6425
added city 6180 of 6425
added city 6181 of 6425
added city 6182 of 6425
added city 6183 of 6425
added city 6184 of 6425
added city 6185 of 6425
added city 6186 of 6425
added city 6187 of 6425
added city 6188 of 6425
added city 6189 of 6425
added city 6190 of 6425
added city 6191 of 6425
added city 6192 of 6425
added city 6193 of 6425
added city 6194 of 6425
added city 6195 of 6425
added city 6196 of 6425
added city 6197 of 6425
added city 6198 of 6425
added city 6199 of 6425
added city 6200 of 6425
added city 6201 of 6425
added city 6202 of 6425
added city 6203 of 6425
added city 6204 of 6425
added city 6205 of 6425
added city 6206 of 6425
added city 6207 of 6425
added city 6208 of 6425
added city 6209 of 6425
added city 6210 of 6425
added city 6211 of 6425
added city 6212 of 6425
added city 6213 of 6425
added city 6214 of 6425
added city 6215 of 6425
added city 6216 of 6425
added city 6217 of 6425
added city 6218 of 6425
added city 6219 of 6425
added city 6220 of 6425
added city 6221 of 6425
added city 6222 of 6425
added city 6223 of 6425
added city 6224 of 6425
added city 6225 of 6425
added city 6226 of 6425
added city 6227 of 6425
added city 6228 of 6425
added city 6229 of 6425
added city 6230 of 6425
added city 6231 of 6425
added city 6232 of 6425
added city 6233 of 6425
added city 6234 of 6425
added city 6235 of 6425
added city 6236 of 6425
added city 6237 of 6425
added city 6238 of 6425
added city 6239 of 6425
added city 6240 of 6425
added city 6241 of 6425
added city 6242 of 6425
added city 6243 of 6425
added city 6244 of 6425
added city 6245 of 6425
added city 6246 of 6425
added city 6247 of 6425
added city 6248 of 6425
added city 6249 of 6425
added city 6250 of 6425
added city 6251 of 6425
added city 6252 of 6425
added city 6253 of 6425
added city 6254 of 6425
added city 6255 of 6425
added city 6256 of 6425
added city 6257 of 6425
added city 6258 of 6425
added city 6259 of 6425
added city 6260 of 6425
added city 6261 of 6425
added city 6262 of 6425
added city 6263 of 6425
added city 6264 of 6425
added city 6265 of 6425
added city 6266 of 6425
added city 6267 of 6425
added city 6268 of 6425
added city 6269 of 6425
added city 6270 of 6425
added city 6271 of 6425
added city 6272 of 6425
added city 6273 of 6425
added city 6274 of 6425
added city 6275 of 6425
added city 6276 of 6425
added city 6277 of 6425
added city 6278 of 6425
added city 6279 of 6425
added city 6280 of 6425
added city 6281 of 6425
added city 6282 of 6425
added city 6283 of 6425
added city 6284 of 6425
added city 6285 of 6425
added city 6286 of 6425
added city 6287 of 6425
added city 6288 of 6425
added city 6289 of 6425
added city 6290 of 6425
added city 6291 of 6425
added city 6292 of 6425
added city 6293 of 6425
added city 6294 of 6425
added city 6295 of 6425
added city 6296 of 6425
added city 6297 of 6425
added city 6298 of 6425
added city 6299 of 6425
added city 6300 of 6425
added city 6301 of 6425
added city 6302 of 6425
added city 6303 of 6425
added city 6304 of 6425
added city 6305 of 6425
added city 6306 of 6425
added city 6307 of 6425
added city 6308 of 6425
added city 6309 of 6425
added city 6310 of 6425
added city 6311 of 6425
added city 6312 of 6425
added city 6313 of 6425
added city 6314 of 6425
added city 6315 of 6425
added city 6316 of 6425
added city 6317 of 6425
added city 6318 of 6425
added city 6319 of 6425
added city 6320 of 6425
added city 6321 of 6425
added city 6322 of 6425
added city 6323 of 6425
added city 6324 of 6425
added city 6325 of 6425
added city 6326 of 6425
added city 6327 of 6425
added city 6328 of 6425
added city 6329 of 6425
added city 6330 of 6425
added city 6331 of 6425
added city 6332 of 6425
added city 6333 of 6425
added city 6334 of 6425
added city 6335 of 6425
added city 6336 of 6425
added city 6337 of 6425
added city 6338 of 6425
added city 6339 of 6425
added city 6340 of 6425
added city 6341 of 6425
added city 6342 of 6425
added city 6343 of 6425
added city 6344 of 6425
added city 6345 of 6425
added city 6346 of 6425
added city 6347 of 6425
added city 6348 of 6425
added city 6349 of 6425
added city 6350 of 6425
added city 6351 of 6425
added city 6352 of 6425
added city 6353 of 6425
added city 6354 of 6425
added city 6355 of 6425
added city 6356 of 6425
added city 6357 of 6425
added city 6358 of 6425
added city 6359 of 6425
added city 6360 of 6425
added city 6361 of 6425
added city 6362 of 6425
added city 6363 of 6425
added city 6364 of 6425
added city 6365 of 6425
added city 6366 of 6425
added city 6367 of 6425
added city 6368 of 6425
added city 6369 of 6425
added city 6370 of 6425
added city 6371 of 6425
added city 6372 of 6425
added city 6373 of 6425
added city 6374 of 6425
added city 6375 of 6425
added city 6376 of 6425
added city 6377 of 6425
added city 6378 of 6425
added city 6379 of 6425
added city 6380 of 6425
added city 6381 of 6425
added city 6382 of 6425
added city 6383 of 6425
added city 6384 of 6425
added city 6385 of 6425
added city 6386 of 6425
added city 6387 of 6425
added city 6388 of 6425
added city 6389 of 6425
added city 6390 of 6425
added city 6391 of 6425
added city 6392 of 6425
added city 6393 of 6425
added city 6394 of 6425
added city 6395 of 6425
added city 6396 of 6425
added city 6397 of 6425
added city 6398 of 6425
added city 6399 of 6425
added city 6400 of 6425
added city 6401 of 6425
added city 6402 of 6425
added city 6403 of 6425
added city 6404 of 6425
added city 6405 of 6425
added city 6406 of 6425
added city 6407 of 6425
added city 6408 of 6425
added city 6409 of 6425
added city 6410 of 6425
added city 6411 of 6425
added city 6412 of 6425
added city 6413 of 6425
added city 6414 of 6425
added city 6415 of 6425
added city 6416 of 6425
added city 6417 of 6425
added city 6418 of 6425
added city 6419 of 6425
added city 6420 of 6425
added city 6421 of 6425
added city 6422 of 6425
added city 6423 of 6425
added city 6424 of 6425

In [354]:
# check item in array
len(city_array)
# city_array[55]['properties']['unclaimed']


Out[354]:
6424

In [355]:
# Create FeatureCollection
city_feature_collection = {}
city_feature_collection["type"] = "FeatureCollection"
city_feature_collection["features"] = city_array
# city_feature_collection

In [356]:
# Convert FeatureCollection to JSON format
city_geojson = geojson.dumps(city_feature_collection)
# check type to make sure conversion was sucessful
print(type(city_geojson))


<class 'str'>

In [357]:
# Save JSON-formatted FeatureCollection as JSON file
# Save as new json file
with open('JSON/city_geojson.json', 'w', encoding='utf-8') as json_file:
    json_file.write(city_geojson)

In [ ]:


In [ ]:

PART 9 - construct state-, and county--level GeoJSON files - POLYGONS

Part 1/2 Construct State-level GeoJSON with correct structure - mapped to polygons


In [ ]:
# get headers
missing_header = list(missing_df.columns.values)
print("missing header:", missing_header)
unclaimed_header = list(unclaimed_df.columns.values)
print("unclaimed header:", unclaimed_header)
unidentified_header = list(unidentified_df.columns.values)
print("unidentified header:", unidentified_header)

In [ ]:
# load state json
state_gpd = gpd.read_file('JSON/state_polygons.json')

In [ ]:
state_gpd.head()

In [ ]:
type(state_gpd['STATEFP'][0])

In [ ]:
state_gpd['STATEFP'] = state_gpd['STATEFP'].astype(int)

In [ ]:
type(state_gpd['STATEFP'][0])

In [ ]:
# convert to dictionary
state_polygons = state_gpd.to_dict(orient='records')

In [ ]:
len(state_polygons)

In [ ]:
type(missing_df['State_FIPS'][0])

In [ ]:
type(state_polygons[0]["STATEFP"])

In [ ]:
state_polygons[0]

In [ ]:
## Create state array
state_poly_array = []
## for each state in state_centroids...
i = 0
while i < len(state_polygons):
    state_poly_dict = {}
    state_poly_dict["type"] = "Feature"
    state_poly_dict["name"] = state_polygons[i]["NAME"]
    state_poly_dict["name_abbr"] = state_polygons[i]["STUSPS"]
    state_poly_dict["state_FIPS"] = str(state_polygons[i]["STATEFP"])
    state_poly_dict["properties"] = {}
    missing_array = []
    j = 0
    while j < len(missing_df):
        # check if state_fips matches
        if missing_df['State_FIPS'][j] == state_polygons[i]["STATEFP"]:
            missing_dict = {}
            for item in missing_header:
                missing_dict[item] = str(missing_df[item][j])
            # append dictionary to missing array
            missing_array.append(missing_dict)
        # increment j
        j += 1
    state_poly_dict["properties"]['missing'] = missing_array     
    
    unclaimed_array = []
    k = 0
    while k < len(unclaimed_df):
        # check if state_fips matches
        if unclaimed_df['State_FIPS'][k] == state_polygons[i]["STATEFP"]:
            unclaimed_dict = {}
            for item in unclaimed_header:
                unclaimed_dict[item] = str(unclaimed_df[item][k])
            # append dictionary to unclaimed array
            unclaimed_array.append(unclaimed_dict)
        # increment k
        k += 1
    state_poly_dict["properties"]['unclaimed'] = unclaimed_array
    
    unidentified_array = []
    l = 0
    while l < len(unidentified_df):
        # check if state_fips matches
        if unidentified_df['State_FIPS'][l] == state_polygons[i]["STATEFP"]:
            unidentified_dict = {}
            for item in unidentified_header:
                unidentified_dict[item] = str(unidentified_df[item][l])
            # append dictionary to unclaimed array
            unidentified_array.append(unidentified_dict)
        # increment l
        l += 1
    state_poly_dict["properties"]['unidentified'] = unidentified_array
    
    state_poly_dict["properties"]['filtered'] = []
    ## set geometry
    state_poly_dict["geometry"] = state_polygons[i]["geometry"]
    ## append state dictionary to array
    state_poly_array.append(state_poly_dict)
    # test statement
    print("added state", str(i+1), "of", len(state_polygons))
    # increment interator
    i += 1
# state_poly_array

In [ ]:
# check item in array
# len(state_poly_array)
# state_poly_array[9]['properties']['unclaimed'][0]
state_poly_array[9]['geometry']

In [ ]:
# Create FeatureCollection
state_poly_feature_collection = {}
state_poly_feature_collection["type"] = "FeatureCollection"
state_poly_feature_collection["features"] = state_poly_array
# state_poly_feature_collection

In [ ]:
# Convert FeatureCollection to JSON format
state_poly_geojson = geojson.dumps(state_poly_feature_collection)
# check type to make sure conversion was sucessful
print(type(state_poly_geojson))

In [ ]:
# Save JSON-formatted FeatureCollection as JSON file
# Save as new json file
with open('JSON/state_poly_geojson.json', 'w', encoding='utf-8') as json_file:
    json_file.write(state_poly_geojson)

Part 2/2 Construct COUNTY-LEVEL GeoJSON with correct structure - mapped to polygons


In [ ]:
# get headers
missing_header = list(missing_df.columns.values)
print("missing header:", missing_header)
unclaimed_header = list(unclaimed_df.columns.values)
print("unclaimed header:", unclaimed_header)
unidentified_header = list(unidentified_df.columns.values)
print("unidentified header:", unidentified_header)

In [ ]:
# load county json
county_gpd = gpd.read_file('JSON/county_polygons.json')

In [ ]:
county_gpd.head()

In [ ]:
county_gpd['STATEFP'] = county_gpd['STATEFP'].astype(int)

In [ ]:
county_gpd['GEOID'] = county_gpd['GEOID'].astype(int)

In [ ]:
# sort county centroids by state FIPS
county_gpd = county_gpd.sort_values(by=['GEOID'])
county_gpd.head()

In [ ]:
# convert to dictionary
county_polygons = county_gpd.to_dict(orient='records')

In [ ]:
len(county_polygons)

In [ ]:
county_polygons[0]

In [ ]:
missing_df.head()

In [ ]:
# sort dataframes by county fips
missing_df = missing_df.sort_values(by=['County_FIPS'])
unclaimed_df = unclaimed_df.sort_values(by=['County_FIPS'])
unidentified_df = unidentified_df.sort_values(by=['County_FIPS'])

In [ ]:
unclaimed_df.head()

In [ ]:
type(missing_df['County_FIPS'][0])

In [ ]:
type(county_polygons[0]["GEOID"])

In [ ]:
county_polygons[0]

In [ ]:
## Create county array 
county_poly_array = []
## for each county in county_centroids_v2... 
i = 0
while i < len(county_polygons):
    county_poly_dict = {}
    county_poly_dict["type"] = "Feature"
    county_poly_dict["name"] = county_polygons[i]["NAME"]
    county_poly_dict["county_FIPS"] = str(county_polygons[i]["GEOID"])
    county_poly_dict["state_name"] = county_polygons[i]["STATE_NAME"]
    county_poly_dict["state_abbr"] = county_polygons[i]["STUSPS"]
    county_poly_dict["state_FIPS"] = str(county_polygons[i]["STATEFP"])
    county_poly_dict["properties"] = {}
    missing_array = []
    j = 0
    while j < len(missing_df):
        # check if county_fips matches
        if missing_df['County_FIPS'][j] == county_polygons[i]["GEOID"]:
            missing_dict = {}
            for item in missing_header:
                missing_dict[item] = str(missing_df[item][j])
            # append dictionary to missing array
            missing_array.append(missing_dict)
        # increment j
        j += 1
    county_poly_dict["properties"]['missing'] = missing_array     
    
    unclaimed_array = []
    k = 0
    while k < len(unclaimed_df):
        # check if county_fips matches
        if unclaimed_df['County_FIPS'][k] == county_polygons[i]["GEOID"]:
            unclaimed_dict = {}
            for item in unclaimed_header:
                unclaimed_dict[item] = str(unclaimed_df[item][k])
            # append dictionary to unclaimed array
            unclaimed_array.append(unclaimed_dict)
        # increment k
        k += 1
    county_poly_dict["properties"]['unclaimed'] = unclaimed_array
    
    unidentified_array = []
    l = 0
    while l < len(unidentified_df):
        # check if county_fips matches
        if unidentified_df['County_FIPS'][l] == county_polygons[i]["GEOID"]:
            unidentified_dict = {}
            for item in unidentified_header:
                unidentified_dict[item] = str(unidentified_df[item][l])
            # append dictionary to unclaimed array
            unidentified_array.append(unidentified_dict)
        # increment l
        l += 1
    county_poly_dict["properties"]['unidentified'] = unidentified_array
    
    county_poly_dict["properties"]['filtered'] = []
    ## set geometry
    county_poly_dict["geometry"] = county_polygons[i]["geometry"]
    ## append county dictionary to array
    county_poly_array.append(county_poly_dict)
    # test statement
    print("added county", str(i+1), "of 3228")
    # increment interator
    i += 1
# county_poly_array

In [ ]:
# check item in array
len(county_poly_array)
# county_poly_array[3]

In [ ]:
# Create FeatureCollection
county_poly_feature_collection = {}
county_poly_feature_collection["type"] = "FeatureCollection"
county_poly_feature_collection["features"] = county_poly_array
# county_poly_feature_collection

In [ ]:
# Convert FeatureCollection to JSON format
county_poly_geojson = geojson.dumps(county_poly_feature_collection)
# check type to make sure conversion was sucessful
print(type(county_poly_geojson))

In [ ]:
# Save JSON-formatted FeatureCollection as JSON file
# Save as new json file
with open('JSON/county_poly_geojson.json', 'w', encoding='utf-8') as json_file:
    json_file.write(county_poly_geojson)

In [ ]: