Вычислить столбец из фрейма данных

#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))