You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python 3 Pandas中创建含Google Maps地理位置的DataFrame?

如何为包含地址的Pandas DataFrame添加Google Maps地理位置信息

嘿,我看你已经有了一个包含安保企业信息的DataFrame,想要给它加上Google Maps的经纬度坐标对吧?这事儿不难,我给你一步步拆解具体怎么做,用Python 3、Pandas搭配Google Maps的地理编码API就能搞定。

1. 先搞定依赖和API密钥

首先得安装官方的Google Maps Python客户端库,打开终端跑这个命令:

pip install googlemaps

然后你需要去Google Cloud平台申请一个Geocoding API密钥,记得要先启用Geocoding API服务,还要注意API的计费规则——免费额度有限,超出会收费,调用的时候别太猛哦。

2. 写个地理编码的工具函数

接下来写个函数,输入地址字符串,就能返回对应的纬度和经度。还要处理一些异常情况,比如地址找不到、API调用失败的情况:

import googlemaps
import time
import pandas as pd

# 替换成你自己的API密钥
gmaps_client = googlemaps.Client(key='你的Google Maps API密钥')

def get_lat_lng(address):
    try:
        # 调用地理编码接口
        geocode_result = gmaps_client.geocode(address)
        if geocode_result:
            # 从返回结果里提取经纬度
            location = geocode_result[0]['geometry']['location']
            return location['lat'], location['lng']
        else:
            # 地址没找到的情况返回空值
            return None, None
    except Exception as e:
        print(f"处理地址「{address}」时出错: {str(e)}")
        return None, None

3. 给你的DataFrame生成完整地址

地理编码的准确性依赖于完整的地址,你可以把DataFrame里的相关字段(比如企业名称、州)拼接成完整地址列。比如:

# 假设你还有其他地址字段(比如城市、街道),可以一起加进去,地址越详细越准确
consolidado['full_address'] = consolidado.apply(
    lambda row: f"{row['nome_empresa']}, {row['estado']}",
    axis=1
)

4. 把函数应用到DataFrame,生成经纬度列

因为Google API有调用频率限制(免费版一般每秒最多5次),所以最好加个小延迟避免被限流。我们可以用带延迟的版本:

def get_lat_lng_with_delay(address):
    time.sleep(0.2)  # 每次调用间隔0.2秒,刚好符合每秒5次的限制
    return get_lat_lng(address)

# 应用带延迟的函数,生成经纬度列
consolidado[['latitude', 'longitude']] = consolidado['full_address'].apply(
    lambda x: pd.Series(get_lat_lng_with_delay(x))
)

5. 检查和清理结果

最后看看生成的列,处理空值:

# 查看有多少行没获取到坐标
print(f"未获取到坐标的行数: {consolidado[consolidado['latitude'].isnull()].shape[0]}")

# 可以选择删除空值行,或者根据需求填充默认值
consolidado_clean = consolidado.dropna(subset=['latitude', 'longitude'])

这样你就得到一个包含Google Maps地理位置信息的DataFrame啦!

内容的提问来源于stack exchange,提问作者Reinaldo Chaves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:11:59