Територіальні одиниці за індексом ZIP
У маркетингу дуже часто потрібно знати демографію за індексом ZIP. Територіальні одиниці за індексом ZIP ("ZCTA") — це еквіваленти ZIP, визначені Бюро перепису, які формуються з блоків перепису. У цій вправі ви надішлете запит на загальну чисельність населення для всіх ZCTA у штаті Алабама.
У pandas індекс можна використовувати для вибірки конкретних рядків. GEOID підходять як ідентифікатори рядків. У цій вправі ви встановите багаторівневий індекс на основі штату та ZCTA кожного рядка.
Пакети requests і pandas імпортовано. Визначено base_url, а також словник predicates зі списком змінних для запиту.
Ця вправа є частиною курсу
Аналіз даних перепису США в Python
Інструкції до вправи
- Встановіть ключ
"for"у словникуpredicates, щоб повернути усі ZCTA; повністю пропишіть географію як"zip code tabulation area (or part)"" - Встановіть ключ
"in"у словникуpredicates, щоб повертати лише ZCTA у штаті Алабама; вам знадобиться знайти код FIPS для Алабами в одному з онлайн-джерел, про які ви дізналися - Встановіть індекс DataFrame як конкатенацію стовпців
stateіzcta. Використайтеinplace = True, щоб не створювати новий DataFrame.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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())