【发布时间】:2020-02-24 06:50:57
【问题描述】:
我有一列包含“CITY”和“STATE”字符串。我尝试使用 geopy 库中的地理编码器来计算纬度和经度,但它超时,因为它超过了请求的数量,而且数据集中大约有 85895 行。所以我对“CITY_STATE”列进行了计数,有 1340 个值。有没有办法可以找到这 1340 个值的纬度和经度,然后将这些值映射到相应的“CITY”和“STATE”。
from opencage.geocoder import OpenCageGeocode
key = 'my_key' # get api key from : https://opencagedata.com
geocoder = OpenCageGeocode(key)
list_lat = [] # create empty lists
list_long = []
for index, row in train.iterrows(): # iterate over rows in dataframe
City = row['CITY']
State = row['STATE']
query = str(City)+','+str(State)
results = geocoder.geocode(query)
lat = results[0]['geometry']['lat']
long = results[0]['geometry']['lng']
list_lat.append(lat)
list_long.append(long)
# create new columns from lists
train['lat'] = list_lat
test['lon'] = list_long
【问题讨论】:
-
您可以将代码添加到问题中吗?
-
您可以使用this在请求之间添加延迟以防止超时
标签: python pandas numpy machine-learning data-processing