最近在处理经纬度的时候,想要保留指定省市的经纬度,删去多余的。经纬度太多,挨个查询太耗费时间,所以编写了这段代码。主要就是利用高德地图的API解析不同经纬度对应的省市。
新人发帖,还请大家多多关照
仅需修改代码中文件地址,高德地图API,输出文件地址即可。
注意:原始表格中要有LAN、LON字段。
处理前:

处理前.png (30.52 KB, 下载次数: 0)
下载附件
2025-4-24 18:42 上传
处理后:

处理后.png (86.86 KB, 下载次数: 0)
下载附件
2025-4-24 18:42 上传
[Python] 纯文本查看 复制代码import requestsimport pandas as pd
import time
# 读取Excel文件
df = pd.read_excel('输入文件地址')
# 检查Excel文件中是否包含'LAT'和'LON'列
if 'LAT' not in df.columns or 'LON' not in df.columns:
raise ValueError("Excel文件中必须包含'LAT'和'LON'列")
# 高德地图API的访问密钥
gaode_key = '高德地图API'
# 用于存储结果的列表
result_list = []
# 遍历Excel表格中的每一行
for index, row in df.iterrows():
lat = row['LAT']
lon = row['LON']
location = f"{lon},{lat}"
r = requests.get(url='https://restapi.amap.com/v3/geocode/regeo',
params={
'key': gaode_key,
'location': location,
'extensions': 'base'
})
result = r.json()
# 检查API返回结果是否包含所需信息
if result.get('status') == '1' and result.get('regeocode'):
address_component = result['regeocode']['addressComponent']
province = address_component.get('province', '未知')
city = address_component.get('city', '未知')
else:
province = '未知'
city = '未知'
result_list.append({
'经纬度': location,
'省份': province,
'城市': city
})
# 将结果转换为DataFrame
result_df = pd.DataFrame(result_list)
# 输出结果表格
print(result_df)
# 保存结果为Excel文件
result_df.to_excel('输出文件地址', index=False)