我正在尝试根据数据框中的纬度和经度来定义位置:
lat long
40.712784 -74.005941
55.755826 37.617300
41.902783 12.496366
我正在使用 geopy 库,我想将检索位置存储在现有数据框的新第三列中。有这样的事:
lat long location
40.712784 -74.005941 New-York
55.755826 37.617300 Moscow
41.902783 12.496366 Rome
我执行的代码是:
def take_location():
geolocator = Nominatim()
df['location']=''
for row, index in df.iterrows():
location= geolocator.reverse("%f, %f" % (row['lat'], row['long']))
row['location']=location.address
return df
此行出现问题:
----> 6 location= geolocator.reverse("%f, %f"% (row['lat'], row['long']))
如下
IndexError:标量变量的索引无效。
我想参数和从行单元格中提取值可能有问题
最佳答案
DataFrame.iterrows()
按顺序给出值 - (index, row)
- 但你假设它按顺序出现 (row,index )
,这是错误的,因此您遇到了问题。你应该使用 -
for index, row in df.iterrows():
location= geolocator.reverse("%f, %f" % (row['lat'], row['long']))
row['location']=location.address
关于python - 数据框行迭代期间出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33264389/