我目前有一个DataFrame,其中的列分别包含“纬度”(浮点数)和“经度”(浮点数),我想用相关的邮政编码创建一列“ ZipCode”。
到目前为止,我有以下代码:
location = geolocator.reverse("41.750722, -73.997276")
geo_string = location.address.split(",")
geo_string[-2]
但是,我无法弄清楚如何为DataFrame中的每一行运行它。谢谢您的帮助!
不能完全确定您的数据框是什么样,但是我相信您应该可以使用.iterrows()
:
for index, row in df.iterrows():
location = geolocator.reverse("{}, {}".format(row['Latitude'], row['Longitude']))
geo_string = location.address.split(",")
geo_string[-2]```
我不熟悉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)