python - 如何在熊猫列中应用 Geopy?
问题描述
我的 DataFrame'df'
有一列df['Cidade']
包含城市名称,我想使用 Geopy 找出每个城市的纬度和经度。以下代码适用于单个城市输入:
address='Pacoti'
geolocator = Nominatim(user_agent="Your_Name")
location = geolocator.geocode(address)
print(location.address)
print((location.latitude, location.longitude))
输出:
Pacoti, Região Geográfica Imediata de Redenção-Acarape, Região Geográfica Intermediária de Fortaleza, Ceará, Região Nordeste, 62770-000, 巴西 (-4.2253561, -38.9208352)
所以我尝试创建一个函数:
def lat_long(x):
address= x
geolocator = Nominatim(user_agent="Your_Name")
location = geolocator.geocode(address)
return location.latitude, location.longitude
然后我使用'map'
了功能:
df['Cidade'].map(lat_long)
但我收到以下错误:
AttributeError: 'NoneType' object has no attribute 'latitude'
我究竟做错了什么?
解决方案
当您将它们全部映射到其中时,该数据框中可能有一个“坏”条目,当您使用对象经纬度时,它会给您一个无对象。检查是否是这种情况,并为您提供修复它的想法:
if location is none:
print("something")
推荐阅读
- java - JTextArea 的文本可以看起来像控制台吗?
- .net - 使用 Entity Framework Core 和迁移的微服务中的实体关系
- oauth-2.0 - WebAPI2 中基于令牌的安全性是无状态的吗?
- svg - 为什么 viewBox 会影响我的非缩放笔画?
- lua - 在LUA(Corona SDK)中比较第一次点击的价值和第二次点击的价值
- vue.js - Vue
在孩子里面 组件不更新父组件 - azure - 替换 Azure 资源组中不同资源的一个标记
- javascript - 如何从 HTML 中的 md-switch 存储和修改 JS 变量?
- python - Selenium click() 函数(看似)随机不点击框[无错误][Python]
- linux - 如何知道使用 gdb 的程序中的库调用生成了哪些系统调用?