根据数据帧计算列



我是python和数据帧的初学者,现在遇到了一个问题。我制作了一个包含地址的数据帧。我想创建一个计算柱,显示与我家的距离。我已经走了这么远:

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请求必须按行进行。我想我可以循环浏览数据帧,但据我所知,还有更好的方法。你能帮我吗?

使用pandas-apply应该比循环更高效:

df["distance"] = df.apply(lambda row : distance(row["Adress"]),axis=1))

相关内容

  • 没有找到相关文章

最新更新