在我过滤掉None之后,仍然存在'NoneType'对象在地址解析中没有属性'latitude'错误

时间:2019-04-22 14:00:47

标签: python dataframe geopy

我有一个数据帧,其中包含列“ 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

0 个答案:

没有答案