Конечная цель, учитывая большой набор адресов, получить 'lat' и 'lng' от службы геокодирования API Google (что я могу сделать).Затем проанализируйте данные так, чтобы lat и long могли войти в кадр данных pandas в той же строке, что и предоставленный адрес (что я тоже могу сделать).
Мой набор данных будет расширяться, но я получилзастрял при разборе небольшого подмножества этого, так как я хочу избежать выполнения для циклов по кадрам данных, поскольку это, вероятно, будет медленным, когда набор данных переходит от 30 строк к нескольким тысячам.
Вот гдеЯ начал:
import pandas as pd
import googlemaps
Прочитать в фрейме данных
df = pd.read_csv("SmallDecember2018")
connect
gmaps = googlemaps.Client(key='shhhItsSecret')
получить геокод для каждого элемента на основе адресов (AddressConcat) в моем файле,поместите их в DF.
df['geo_result'] = df['AddressConcat'].apply(lambda x: gmaps.geocode(x))
Это прекрасно работает.
Я получаю данные в df
, но это несколько неловко.Python видит его как список со встроенным словарем.
Чтобы получить первую строку данных, которую я хочу получить из df
, этот код работает для элементов, которые меня интересуют
lat = df['geo_result'][0][0].get('geometry').get('location').get('lat')
lng = df['geo_result'][0][0].get('geometry').get('location').get('lng')
print (lat + " " lng)
в идеале я хотел сделать другую лямбда-функцию, чтобы посмотреть на ['geo_result']
и разобрать lat/lng
Я пытался, просто для 'lat' ...
df['lat'] = df['geo_result'].apply(lambda x: df['geo_result'].[x][0].get('geometry').get('location').get('lat')
Это неМне кажется, что этот подход нравится, так как функция lambda
не хочет хэшировать словарь или список - я попытался пойти обоими путями.
Извлечение его в кадр данных с помощью лямбда-функции будет работать на 2-3k запросов одновременно?У меня есть учетная запись GCP, и я могу поместить их в BigQuery, если это будет рекомендация, если в конечном итоге я смогу передать ее в DataFrame.Как мне отформатировать его после получения ответа?(json? словарь?) Как мне разобрать данные при возврате (для циклов или есть более плавный способ?)
Я начинаю с Python, но не женат на нем, так как ищу большеНаправление и рекомендации, чем код.Я пытаюсь не взломать эту часть этого.
Заранее спасибо!