反向地理编码Python熊猫数据框

问题描述 投票:0回答:2

我目前有一个DataFrame,其中的列分别包含“纬度”(浮点数)和“经度”(浮点数),我想用相关的邮政编码创建一列“ ZipCode”。

到目前为止,我有以下代码:

location = geolocator.reverse("41.750722, -73.997276")
geo_string = location.address.split(",")
geo_string[-2]

但是,我无法弄清楚如何为DataFrame中的每一行运行它。谢谢您的帮助!

python pandas reverse-geocoding zipcode
2个回答
0
投票

不能完全确定您的数据框是什么样,但是我相信您应该可以使用.iterrows()

for index, row in df.iterrows():
    location = geolocator.reverse("{}, {}".format(row['Latitude'], row['Longitude']))
    geo_string = location.address.split(",")
    geo_string[-2]```

0
投票

我不熟悉geopy。但是,假设定义了geolocator,您可以像这样进行单线处理。

df = pd.DataFrame([[41.750722, -73.997276]], columns=["Latitude", "Longitude"])
df["ZipCode"] = df.apply(lambda x:geolocator.reverse(str(x["Latitude"])+", "+str(x["Longitude"])).address.split(",")[-2], axis=1)
© www.soinside.com 2019 - 2024. All rights reserved.