Просто краткое руководство

Обработка большого количества данных на локальном компьютере иногда может быть проблемой, особенно если наша основная цель скорее исследовательская. Я столкнулся с этой проблемой, когда хотел увидеть общую тенденцию открытых данных полиции.

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

Итак, здесь я описываю, как я загружаю несколько zip-файлов с их веб-сайта в пакетном режиме, извлекаю файл CSV и объединяю их во фрейм данных после фильтрации в определенный период времени.

Ссылки для веб-парсинга

Сначала мы соберем все ссылки для скачивания, доступные на их сайте. Для каждого доступного места есть отдельные файлы.

BeautifulSoup позволяет выполнять поиск внутри HTML-страницы с помощью тега и атрибута. Здесь мы ищем все <a> теги с title "Загрузить данные как CSV", а затем извлекаем все href атрибуты из этих тегов. Это дает нам ссылки на все zip-файлы на этой странице.

Скачать, разархивировать и скомпилировать

Теперь для каждой ссылки, которую мы собрали выше, мы будем повторять следующие шаги: открытие ссылки, разархивирование zip-файла, чтение CSV как фрейма данных Pandas и слияние с другими наборами данных.

Вуаля, теперь у нас есть отфильтрованный и случайно выбранный (в большинстве случаев с недостаточной выборкой) набор данных с веб-сайта.

В этой статье я кратко рассказал, как загрузить несколько сжатых файлов CSV с веб-сайта и скомпилировать их в виде фрейма данных Pandas.

Счастливых праздников!