python中数据帧列的函数计算结果

python中数据帧列的函数计算结果,python,function,pandas,dataframe,Python,Function,Pandas,Dataframe,我正在用python编写一个数据帧,以计算位置与数据帧中的纬度和经度列之间的距离。当我运行下面的代码时,没有错误: lLat= 43.679194 lLon= -79.633352 LCentroid= (lLat, lLon) # getDistanceBetween gets two centroids and calculate the distance dfTowers['distance']= HL.getDistanceBetween(LCentroid, dfTowers.inde

我正在用python编写一个数据帧,以计算位置与数据帧中的
纬度
经度
列之间的距离。当我运行下面的代码时,没有错误:

lLat= 43.679194
lLon= -79.633352
LCentroid= (lLat, lLon)
# getDistanceBetween gets two centroids and calculate the distance
dfTowers['distance']= HL.getDistanceBetween(LCentroid, dfTowers.index.get_level_values('LATITUDE')[0],     dfTowers.index.get_level_values('LONGITUDE')[0]))
但当我使用下面的一个,有一个错误

lLat= 43.679194
lLon= -79.633352
LCentroid= (lLat, lLon)

dfTowers['distance']= HL.getDistanceBetween(LCentroid, dfTowers.index.get_level_values('LATITUDE'), dfTowers.index.get_level_values('LONGITUDE')))
错误是:

TypeError                                 Traceback (most recent call last)
<ipython-input-43-065640ee0e20> in <module>()
  5 
  6 dfTowers['distance']= HL.getDistanceBetween(LCentroid,     (dfTowers.index.get_level_values('LATITUDE'), 
----> 7                                         dfTowers.index.get_level_values('LONGITUDE')))

C:\Users\x190523\Documents\python exercice\HomeLocation.pyc in getDistanceBetween(c1, c2)

TypeError: a float is required
TypeError回溯(最近一次调用)
在()
5.
6 dfTowers['distance']=HL.getDistanceBetween(LCentroid,(dfTowers.index.get_level_值(“纬度”),
---->7 dfTowers.index.get_level_值('LONGITUDE'))
C:\Users\x190523\Documents\python exercice\HomeLocation.pyc在GetDistanceBeween(c1,c2)中
TypeError:需要浮点
因为返回标签的“向量”。在第一个示例中,访问向量并适当地检索值。在第二个示例中,您传递整个向量,而
getDistanceBetween
不知道如何处理它

编辑: 现在要计算所有行的语法,我们不需要上面的任何语法

# add the new column, initialized to NaN
dfTowers['distance'] = np.nan
for row_name, row in dfTowers.iterrows():
    row['distance'] = HL.getDistanceBetween(LCentroid, row['LATITUDE'], row['LONGITUDE'])

那么,我该如何解决这个问题呢。注意:
dfTowers
是使用
groupby
生成的。我想如果您只在第一个示例中使用代码,一切都会正常。第一个示例成功后,您就能够验证自己了。您可以向我们展示更多您正在使用的内容吗?在第一个示例中,
距离
列的值是使用第一行的
纬度
经度
计算的。但是我想根据相应行的
纬度
经度
的值来计算每行的
距离
。我想如果我可以访问使用group by创建的数据帧的结果,类似于一个简单的数据帧,问题就会解决。但是,我不知道如何更新。@user3854325我有一个更新。如果有问题,请告诉我,我正在通过手机提交。谢谢。它正确地计算了距离,当我添加另一行
打印行['distance']
时,它不会更新
dfTowers
中的值,如果我将'row['distance']`更改为'dfTowers['distance']`,它会显示所有行的最后距离。