多的不说,直接上码,需要更改的地方我给大家打上# ***,改成自己的直接用即可:
两种方法:
1 利用geopy
首先导入包,并读取数据
import pandas as pd
from geopy.geocoders import Nominatim
from geopy.exc import GeocoderTimedOut
data = pd.read_excel('这里替换成自己的数据.xlsx') # ***
初始化nominatim服务,不用管,加上就即可
# 初始化 geopy 的 Nominatim 服务
geolocator = Nominatim(user_agent="geoapiExercises")
定义逆地理编码函数,这里language使用的是zh,要是想用英文,可以换成en
# 定义逆地理编码函数
def reverse_geocode(lat, lon):
try:
location = geolocator.reverse((lat, lon), language='zh')
return location.address
except GeocoderTimedOut:
return reverse_geocode(lat, lon)
apply一下即可
# 为每个坐标对应用逆地理编码
data['address'] = data.apply(lambda row: reverse_geocode(row[