У меня есть panda dataframe
со следующим schema
:
customer_id int64
vehicle_type object
pickup_place object
place_category object
how_long_it_took_to_order object
pickup_lat float64
pickup_lon float64
dropoff_lat float64
dropoff_lon float64
pickup_coord object
dropoff_coord object
dtype: object
Я пытаюсь найти расстояние между точками захвата и падения.Поэтому я сначала попытался использовать подход здесь Получение расстояния между двумя точками на основе широты / долготы с помощью формулы haversine.Когда я попытался преобразовать градусы в радианы, используя
df_post['lat1'] = radians(df_post['pickup_lat'])
, я получил эту ошибку:
TypeError: cannot convert the series to <class 'float'>
Поэтому я попытался следовать подходу в третьем ответе, используя модуль geopy.distance
используя встроенную функцию и для этого создал кортеж lat и long.
df_post['pickup_coord']=list(zip(df_post['pickup_lat'],df_post['pickup_lon']))
df_post['dropoff_coord']=list(zip(df_post['dropoff_lat'],df_post['dropoff_lon'])
Но когда я попробовал встроенную функцию
df_post['pickup_dropoff_distance']=gd.VincentyDistance(df_post['pickup_coord'],df_post['dropoff_coord']).miles
Я получаю новую ошибку:
ValueError: When creating a Point from sequence, it must not have more than 3 items.
Может кто-нибудь помочь мне с тем, почему либоошибки происходят и каково возможное решение.