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

2024-09-30 14:20:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

Tags: 数据getindex错误levelhldistancevalues
1条回答
网友
1楼 · 发布于 2024-09-30 14:20:28

因为^{}返回标签的“向量”。在第一个示例中,访问向量并适当地检索值。在第二个示例中,传递整个向量,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'])

相关问题 更多 >