Я пишу алгоритм для проблемы маршрутизации транспортных средств. Когда время в пути от одного города-семени до другого города минимально, оно должно быть добавлено к моему маршруту. Чтобы проверить это, я использую
new_point_row_df = emte_df[emte_df["seed_time"] == emte_df.seed_time.min()]
, что дает мне весь ряд нового города. Затем я использую
lat = new_point_row_df["Lat"].squeeze()
long = new_point_row_df["Long"].squeeze()
, который дает мне координаты этого города. Затем я передаю эти координаты вместе с моими «домашними» координатами (координатами расположения центра распределения) в функцию «time_to_home», которая вычисляет, без сюрпризов, time_to_home.
time_to_home((lat,long), veghel_coordinates)
В большинстве случаях это работает отлично. Тем не менее, в редком случае, когда emte_df.seed_time.min()
возвращает несколько строк (таким образом, 2 города l ie в точно то же самое время вождения от моей начальной точки), широта и долгота составляют pandas Series вместо numpy плавает. Когда я передаю серии в мою функцию time_to_home, она ломается и выдает
TypeError: cannot convert the series to <class 'float'>
, что имеет смысл.
Мой вопрос: если emte_df.seed_time.min()
возвращает несколько строк, как я могу сделать так, чтобы я выбрал только один , чтобы перейти в мои координаты широты / долготы и затем функцию time_to_home? Неважно, какая строка выбрана, поскольку она только одна, поэтому моя функция time_to_home не выходит из строя.