Aan de slagGa gratis aan de slag

Zip Code Tabulation Areas

In marketing is het heel gebruikelijk om demografie op ZIP Code-niveau te willen kennen. ZIP Code Tabulation Areas ("ZCTAs") zijn door de Census gedefinieerde equivalenten van ZIP Codes die zijn opgebouwd uit Censusblokken. In deze oefening ga je de totale bevolking opvragen voor alle ZCTAs in de staat Alabama.

In pandas kun je een index gebruiken om specifieke rijen op te halen. De GEOIDs zijn geschikte rij-identificatoren. In deze oefening stel je een multi-level index in op basis van de staat en de ZCTA van elke rij.

De pakketten requests en pandas zijn geïmporteerd. De base_url is gedefinieerd, net als de predicates-dictionary met de lijst variabelen die je gaat opvragen.

Deze oefening maakt deel uit van de cursus

US Census-gegevens analyseren in Python

Cursus bekijken

Oefeninstructies

  • Stel de "for"-sleutel in de predicates-dict zo in dat je alle ZCTAs terugkrijgt; schrijf de geografie volledig uit als "zip code tabulation area (or part)""
  • Stel de "in"-sleutel in de predicates-dict zo in dat je alleen ZCTAs in de staat Alabama terugkrijgt; je moet de FIPS-code voor Alabama opzoeken in een van de online bronnen die je hebt leren kennen
  • Stel de DataFrame-index in als de concatenatie van de kolommen state en zcta. Gebruik inplace = True om geen nieuwe DataFrame te maken.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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())
Code bewerken en uitvoeren