我正在尝试应用一个函数,该函数计算点与数据框列中每一行之间的距离。
我将特定点的纬度和经度保存为元组
New_Haven_DMA = (41.310809, 72.924953)
我有一个数据框,其中包含一系列我想用来测量距离的点的经度和纬度。我尝试定义一个函数来计算点与New_Haven_DMA之间的距离,但无法将其应用于整个数据帧。
作为参考,我在数据框中的Lat_Long列如下所示:
(33.4484, -112.074)
(35.1495, -90.04899999999999)
(35.1495, -90.04899999999999)
(35.2962, -89.6615)
(35.2962, -89.6615)
这是我到目前为止所拥有的;
New_Haven_DMA = (41.310809, 72.924953)
def Dist_New_Haven(row):
coord_1 = row(df_Lat_Long['Lat_Long'])
return distance.distance(coord_1, (41.310809, 72.924953)).miles
df_Lat_Long['New_Haven'] = df_Lat_Long.apply(Dist_New_Haven, axis = 1)
我希望创建一个名为“ New_Haven”的新列,该列中的每个值都是从“ Lat_Long”到纽黑文的距离。
我收到以下错误:
“ TypeError :(“'系列'对象不可调用”,'发生在索引0')”
任何帮助都将不胜感激!
答案 0 :(得分:0)
您需要在特定列上使用apply
。
尝试一下:
def Dist_New_Haven(row):
return distance.distance(row, (41.310809, 72.924953)).miles
df_Lat_Long['New_Haven'] = df_Lat_Long['Lat_Long'].apply(Dist_New_Haven)