我有一个 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
模块中的内置函数。
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.
有人能帮我解释一下为什么会出现这两个错误,以及可能的解决方法吗?