Просто краткое руководство
Обработка большого количества данных на локальном компьютере иногда может быть проблемой, особенно если наша основная цель скорее исследовательская. Я столкнулся с этой проблемой, когда хотел увидеть общую тенденцию открытых данных полиции.
Стэнфордский открытый полицейский проект собирает данные об остановках транспортных средств и пешеходов, которые полиция делает по всей стране. Они предлагают очень хорошо организованный ряд данных, разделенных по разным местам. Вместо того, чтобы собирать каждый файл и создавать большую компиляцию всех доступных экземпляров, мне нужно было получить доступ только к некоторым частям каждого набора данных и собрать все остальное.
Итак, здесь я описываю, как я загружаю несколько zip-файлов с их веб-сайта в пакетном режиме, извлекаю файл CSV и объединяю их во фрейм данных после фильтрации в определенный период времени.
Ссылки для веб-парсинга
Сначала мы соберем все ссылки для скачивания, доступные на их сайте. Для каждого доступного места есть отдельные файлы.
BeautifulSoup
позволяет выполнять поиск внутри HTML-страницы с помощью тега и атрибута. Здесь мы ищем все <a>
теги с title
"Загрузить данные как CSV", а затем извлекаем все href
атрибуты из этих тегов. Это дает нам ссылки на все zip-файлы на этой странице.
Скачать, разархивировать и скомпилировать
Теперь для каждой ссылки, которую мы собрали выше, мы будем повторять следующие шаги: открытие ссылки, разархивирование zip-файла, чтение CSV как фрейма данных Pandas и слияние с другими наборами данных.
Вуаля, теперь у нас есть отфильтрованный и случайно выбранный (в большинстве случаев с недостаточной выборкой) набор данных с веб-сайта.
В этой статье я кратко рассказал, как загрузить несколько сжатых файлов CSV с веб-сайта и скомпилировать их в виде фрейма данных Pandas.