У меня есть 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
Я пытаюсь найти расстояние между местами погрузки и высадки. Итак, я сначала попытался использовать подход здесь по широте/долготе по формуле гаверсинуса. Когда я попытался преобразовать градусы в радианы, используя
df_post['lat1'] = radians(df_post['pickup_lat'])
Я получил эту ошибку:
TypeError: cannot convert the series to <class 'float'>
Итак, я попытался следовать подходу в 3-м ответе, используя модуль 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.
Может ли кто-нибудь помочь мне с тем, почему возникает одна из ошибок и каково возможное решение.