Зоны табуляции почтовых индексов
В сфере маркетинга часто возникает необходимость узнать демографические данные по почтовым индексам. Зоны табуляции почтовых индексов (ZIP Code Tabulation Areas, «ZCTA») — это определённые Бюро переписи аналоги почтовых индексов, формируемые из блоков переписи. В этом упражнении вы запросите данные об общей численности населения для всех 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())