-1

我正在将 CSV 导入到 pandas 数据框中,然后尝试根据从以下位置检索到的数据在该数据框中创建三个新列geopy.geocoders.GoogleV3()

import pandas from geopy.geocoders import GoogleV3

DATA = pandas.read_csv("file/to/csv") 
geolocator = GoogleV3()

DATA.googleaddress, (DATA.latitude, DATA.longitude) = geolocator.geocode(DATA.address)

问题是我不断收到此错误:

Traceback (most recent call last):
  File "C:/Path/To/GeoCoder.py", line 9, in <module>
    DATA.googleaddress, (DATA.latitude, DATA.longitude) = geolocator.geocode(DATA.address)
TypeError: 'NoneType' object is not iterable

这个错误是什么意思,我该如何解决?

4

1 回答 1

1

因为geolocator.geocode一次需要一个参数,而不是列表(或数组)。

你可以试试:

locs = [ geolocator.geocode(addr) for addr in DATA.address ]
geo_info = pandas.DataFrame(
    [ (addr.address, addr.latitude, addr.longitude) for addr in locs ],
    columns=['googleaddress', 'latitude', 'longitude'])

您所要做的就是合并这些 DataFrame:

DATA.combine_first(geo_info)

请注意,在 python 中使用全大写变量被认为是不好的形式。

于 2014-12-11T19:53:47.850 回答