根据经纬度批量解析省份城市

查看 65|回复 8
作者:77Jagger   
前言
最近在处理经纬度的时候,想要保留指定省市的经纬度,删去多余的。经纬度太多,挨个查询太耗费时间,所以编写了这段代码。主要就是利用高德地图的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)

经纬度, 文件

koberussell   

谢谢分享
losingstars   

输入文件提供下不?
cn2jp   

干嘛用的这个?
d199212   

有一点要注意下,就是经纬度的格式哦。不然也是不准的
77Jagger
OP
  


losingstars 发表于 2025-4-24 23:10
输入文件提供下不?

这个就是NOAA气象站点数据
77Jagger
OP
  


cn2jp 发表于 2025-4-25 08:45
干嘛用的这个?

面对大批量经纬度时,确定是否是所需要的,可以进行筛选
77Jagger
OP
  


d199212 发表于 2025-4-25 08:59
有一点要注意下,就是经纬度的格式哦。不然也是不准的

是的,谢谢提醒
zcming   

收藏了先 前两天刚查了几个经纬度
您需要登录后才可以回帖 登录 | 立即注册

返回顶部