【发布时间】:2020-01-08 11:03:40
【问题描述】:
我有一个位置列表。对于位置列中的每个位置,都有一个函数可以找到它的坐标,如果它们还没有的话。对所有人执行此操作。循环复制所有行中的最后一个纬度和经度值,这是不应该做的。我在哪里做错了?
我有什么
location gpslat gpslong
Brandenburger Tor na na
India Gate na na
Gateway of India na na
我想要什么
location gpslat gpslong
Brandenburger Tor 52.16 13.37
India Gate 28.61 77.22
Gateway of India 18.92 72.81
我得到了什么
location gpslat gpslong
Brandenburger Tor 18.92 72.81
India Gate 18.92 72.81
Gateway of India 18.92 72.81
我的代码
i = 0
for location in df.location_clean:
try:
if np.isnan(float(df.gpslat.iloc[i])) == True:
df.gpslat.iloc[i], df.gpslong.iloc[i] = find_coordinates(location)
print(i, "Coordinates Found for --->", df.location_clean.iloc[i])
else:
print(i,'Coordinates Already Present')
except:
print('Spelling Mistake Encountered at', df.location_clean.iloc[i], 'Moving to NEXT row')
continue
i = i + 1
我想,我在索引 i 或语句 df.gpslat.iloc[i], df.gpslong.iloc[i] = find_coordinates(location) 上犯了一个逻辑错误。我尝试更改它们并重新运行循环,但它是相同的。这也是一个耗时的过程,因为有数千个地点。
【问题讨论】:
-
请将您的
df粘贴到您的问题中 -
根据您提供的示例,我建议您查看您的 find_coordinates() 函数返回的内容 - 它实际上返回不同的值吗?
-
是的,它确实返回了不同的值,因为我先检查了它,然后我将它应用到了那里。
-
它正在工作。在任何处理开始之前,我增加了浏览器窗口的等待时间。谢谢Cribber
标签: python pandas for-loop logic