我有一个数据帧,其中包含列“ start_station”和“ end_station”(它们是位置字符串),并且我使用geopy.geocoders将“ start_station”和“ end_station”转换为一个(纬度,经度)数组,并生成两个新列“ start_coordin'和'end_coordin'用于进一步的距离计算。当我使用地图功能转换每个测站时,发生了一个错误:“ NoneType”对象没有属性“ latitude”。
我试图添加一个条件(“如果loc不为None”)以滤除None,但它不起作用。我该如何解决?谢谢
from geopy.geocoders import Nominatim
from geopy.exc import GeocoderTimedOut
geolocator = Nominatim(user_agent="csit5210")
def do_geocode(address):
loc = geolocator.geocode(address)
if loc is not None:
try:
return loc
except GeocoderTimedOut:
return do_geocode(address)
start_loc = train['start_station'].map(lambda i : (do_geocode(i).latitude, do_geocode(i).longitude))
end_loc = train['end_station'].map(lambda j : (do_geocode(j).latitude, do_geocode(j).longitude))
train['start_coordin'] = start_loc
train['end_coordin'] = end_loc