我正在将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
这个错误意味着什么,我该如何解决它?
答案 0 :(得分: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)
Nnote认为bad form在python中有一个全大写的变量。