#python #pandas #google-maps
#python #панды #google-карты
Вопрос:
Я новичок в python и dataframes, и теперь я столкнулся с проблемой. Я создал фрейм данных, содержащий адреса. Я хочу создать вычисляемый столбец, который показывает расстояние от моего дома. Я зашел так далеко:
API_key = 'Very secret api key'
gmaps = googlemaps.Client(key=API_key)
def distance(destination):
origin = ('44100, Kuhnamontie 1, Finland')
distance = (gmaps.distance_matrix(origin, destination, mode='driving')["rows"][0]["elements"][0]["distance"]["value"])/1000
return distance
df["distance"] = distance(df.Adress)
Это решение работает для первой строки в фрейме данных, но всем строкам в столбце присваивается одно и то же значение. Я предполагаю, что вычисление и запрос api должны выполняться для каждой строки. Я предполагаю, что я мог бы перебирать фрейм данных, но, насколько я понимаю, есть способы получше.
Можете ли вы мне помочь?
Комментарии:
1. … Я надеюсь, что это не ваш фактический адрес. Стоит иметь в виду, что в этой области вы находитесь в присутствии нескольких очень опытных хакеров.
Ответ №1:
Использование pandas apply должно быть немного более эффективным, чем цикл:
df["distance"] = df.apply(lambda row : distance(row["Adress"]),axis=1))