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

208      Глава 9. Анализ данных о местоположении

(расстояние до места подачи для каждого автомобиля), так и непространственные данные (наличие или отсутствие детского кресла в каждом такси):

 

cab

seat

dist

0

cab_26

0

2165

1

cab_112

1

2861

 

 

 

 

Преобразуем датафрейм в список кортежей, который затем фильтруем, оставляя только те строки, в поле seat которых установлено значение 1:

result_list = list(df.itertuples(index=False,name=None)) result_list = [x for x in result_list if x[1] == 1]

Используем метод датафрейма itertuples()для преобразования каждой строки в кортеж, затем оборачиваем кортежи в список с помощью функции list().

Последний шаг — определение строки с наименьшим значением в поле с расстоянием (индекс 2):

print(min(result_list, key=lambda x: x[2]))

Вывод:

('cab_112', 1, 2861)

Сравните его с результатом предыдущего раздела. Как видите, из-за потребности в детском кресле на этот заказ пришлось назначить другую машину.

Выводы

На реальном примере службы такси в этой главе показано, как анализировать пространственные данные. Мы начали с рассмотрения примера преобразования стандартного вида адреса в геокоординаты с помощью Google Geocoding API и библиотеки Python googlemaps. Затем научились использовать telegram-бота для сбора данных о местоположении со смартфонов. Далее мы воспользовались библиотеками­ geopy и Shapely для выполнения фундаментальных геопространственных операций, таких как измерение расстояния между точками и определение того, находятся ли точки в определенной области. С помощью этих библиотек, встроенных структур данных Python и pandas DataFrame мы разработали приложение, определяющее подходящий автомобиль для указанного места подачи на основе различных пространственных и непространственных критериев.