НачатьНачать бесплатно

Зоны табуляции почтовых индексов

В сфере маркетинга часто возникает необходимость узнать демографические данные по почтовым индексам. Зоны табуляции почтовых индексов (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())
Редактировать и запускать код