Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Воган Ли - Python для хакеров (Библиотека программиста) - 2023.pdf
Скачиваний:
5
Добавлен:
07.04.2024
Размер:
14.76 Mб
Скачать

336      Глава 11. Создание интерактивной карты побега от зомби

Стоун-Маунтин находится ближе 20 миль от Атланты в округе ДеКалб с населением 2586 человек на квадратную милю. Вудбери (в реальности город Сеноя) расположен всего в 35 милях от центра Атланты на границе округа Ковета с населением 289 человек на квадратную милю и округа Файетт с населением 549 человек на квадратную милю. Неудивительно, что у выживших было так много проблем. Если бы у них в группе был хотя бы один специалист по обработке данных…

Итоги

В этой главе вы научились работать с библиотекой анализа данных pandas, а также с модулями визуализации bokeh и holoviews. Вы осуществили первичную обработку данных, очистив их и связав информацию из разных источников.

Дополнительная литература

Статья «If the Zombie Apocalypse Happens, Scientists Say You Should Run for the Hills» («Ученые говорят, что если случится зомби-апокалипсис, то надо бежать в горы») (Business Insider, 2017) Кевина Лориа (Kevin Loria) описывает применение стандартных моделей заболеваемости к показателям увеличения числа зомби при зомби-апокалипсисе.

Статья «What to Consider When Creating Choropleth Maps» (Chartable, 2018) Лизы Шарлотты Рост (Lisa Charlotte Rost) содержит полезные рекомендации по составлению хороплетных карт. Найти ее можно на https://blog.datawrapper. de/choroplethmaps/.

Публикация Ларри Веру (Larry Weru) «Muddy America: Color Balancing the Election Map—Infographic» (STEM Lounge, 2019) демонстрирует способы увеличения количества полезных опций хороплетных карт на примере стандартной красно-синей карты, показывающей результаты выборов в США.

«Python Data Science Handbook: Essential Tools for Working with Data»1 (O’Reilly Media, 2016), написанная Джеком Ван Дер Пласом (Jake VanderPlas), представляет подробный справочник важных инструментов Python для работы с данными, включая pandas.

«Beneath the Window: Early Ranch Life in the Big Bend Country» (Iron Mountain Press, 2003), написанная Патрицией Уилсон Клотьер (Patricia Wilson

1Вандер Плас Дж. «Python для сложных задач. Наука о данных и машинное обучение». СПб., издательство «Питер».

Усложняем проект: отображение на карте изменения численности...       337

Clothier), — увлекательная история о жизни автора в начале XX века на обширном ранчо в округе Биг-Бенд штата Техас, еще до того, как эта территория стала Национальным парком. В книге автор размышляет на тему, как выжившие во время апокалипсиса могут обустроить жизнь в суровых природных условиях.

«Game Theory: Real Tips for SURVIVING a Zombie Apocalypse (7 Days to Die)» (The Game Theorists, 2016) — видеосюжет, посвященный лучшему в мире месту для проживания во время зомби-апокалипсиса. В отличие от «Ходячих мертвецов» сюжет предполагает, что вирус зомби может передаваться через москитов и клещей, на основе чего и происходит выбор места. Посмотреть сюжет можно онлайн.

Усложняем проект: отображение на карте изменения численности населения США

Правительство США ежегодно публикует данные переписи населения. На момент написания книги доступны промежуточные, не очень точные данные от 2019 года. Используйте один из их вариантов вместе с данными от 2010 года из проекта 15 для построения новой хороплетной карты, охватывающей изменение в населенности по округам в течение этого временного отрезка.

Подсказка: можно вычесть столбцы в датафрейме pandas, чтобы сгенерировать данные, отражающие разницу, как показано в примере ниже. Значения плотности населения на 2020 год представляют фиктивные данные.

>>>import pandas as pd

>>># Генерируем набор данных о населении по округам:

>>>pop_2010 = {'county': ['Autauga', 'Baldwin', 'Barbour', 'Bibb'],

'popl': [54571, 182265, 27457, 22915]}

>>> pop_2020 = {'county': ['Autauga', 'Baldwin', 'Barbour', 'Bibb'],

'popl': [52910, 258321, 29073, 29881]}

>>>

>>>df_2010 = pd.DataFrame(pop_2010)

>>>df_2020 = pd.DataFrame(pop_2020)

>>>df_diff = df_2020.copy() # Копируем датафрейм 2020 года в новый датафрейм

>>>df_diff['diff'] = df_diff['popl'].sub(df_2010['popl']) # Вычитаем столбцы

popl

>>> print(df_diff.loc[:4, ['county', 'diff']])

 

county

diff

0

Autauga

-1661

1

Baldwin

76056

2

Barbour

1616

3

Bibb

6966