反向地理编码与进度适用

时间:2019-05-28 15:23:18

标签: python pandas geopy

我有一个包含一列纬度坐标和一列经度坐标的数据框,并且我尝试使用这两列作为参数来调用progress_apply函数,因为我有一个很大的数据集,需要使用RateLimiter包装器。我的问题是progress_apply很难识别数据帧中的元组。这是我的代码:

geolocator = Nominatim(user_agent="user")
reverse = RateLimiter(geolocator.reverse, min_delay_seconds=0.1, max_retries=10)

data = pd.read_excel('file_path')
df = pd.DataFrame(data, columns = ['Column3','Column4','Column21','Column22','Column23'])
df.columns = ['status', 'class', 'year', 'latitude', 'longitude']
df['points'] = [(tuple['latitude'], tuple['longitude']) for i, tuple in df.iterrows()]

tqdm.pandas()
df['country'] = df['points'].progress_apply(lambda x: reverse(x).raw['address']['country'])

程序会引发“ ValueError:必须是坐标对或Point”,但是当我检查x使用的是type(x)时,程序会将其识别为元组。

感谢您的帮助。另外,如果您知道从纬度和经度中获取国家/地区信息的更好方法,那么它也将起作用。

0 个答案:

没有答案