Zones de tabulation des codes postaux
Dans le domaine du marketing, on souhaite très souvent connaître la démographie par code postal. Les Zip Code Tabulation Areas (« ZCTA ») sont des équivalents des ZIP Codes définis par le Census, construits à partir de blocs de recensement. Dans cet exercice, vous allez demander la population totale pour toutes les ZCTA de l'État de l'Alabama.
Dans pandas, un index peut servir à récupérer des lignes précises. Les GEOID conviennent comme identifiants de lignes. Dans cet exercice, vous allez définir un index à plusieurs niveaux basé sur l'État et la ZCTA de chaque ligne.
Les modules requests et pandas ont été importés. Le base_url est défini, tout comme le dictionnaire predicates avec la liste des variables à demander.
Cette activité fait partie du cours
Analyser les données du recensement des États-Unis avec Python
Instructions de l’exercice
- Définissez la clé
"for"dans le dictionnairepredicatespour retourner toutes les ZCTA; écrivez le nom de la géographie au complet comme"zip code tabulation area (or part)" - Définissez la clé
"in"dans le dictionnairepredicatespour ne retourner que les ZCTA de l'État de l'Alabama; vous devrez chercher le code FIPS de l'Alabama dans l'une des sources en ligne vues précédemment - Définissez l'index du DataFrame comme la concaténation des colonnes
stateetzcta. Utilisezinplace = Truepour ne pas créer un nouveau DataFrame.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Build dictionary of predicates and execute the request
predicates = {}
predicates["get"] = ",".join(["NAME", "P001001"])
____
____
r = requests.get(base_url, params=predicates)
# Construct the DataFrame
col_names = ["name", "total_pop", "state", "zcta"]
zctas = pd.DataFrame(columns=col_names, data=r.json()[1:])
zctas["total_pop"] = zctas["total_pop"].astype(int)
# Set multilevel index from GEOIDs and print the head
zctas.set_index([____, ____], inplace = True)
print(zctas.head())