簡體   English   中英

將幾何列轉換為地理數據框中的經緯度列

[英]Turn geometry column into lat/long columns in Geodataframe

我有一個帶有“幾何”列的地理數據框,其中包含點幾何,例如 POINT (-0.01334 51.52883)。 我需要提取緯度和經度並將其添加為數據框中的新列。

我嘗試使用

df['lon'] = df['geometry'].x
df['lat'] = df['geometry'].y

但它給了我一個 SettingWithCopyWarning,我不知道為什么。 有人可以幫忙嗎? 謝謝!

您可以嘗試將 lan/lon 提取直接應用於 df,如下所示:

df['lon'] = df.geometry.apply(lambda p: p.x)
df['lat'] = df.geometry.apply(lambda p: p.y)

問題不在於發布的代碼 - 根據 martinfleis 的評論,它與在運行此代碼之前多次切片原始數據幀有關。 我通過從原始數據框中刪除不需要的行而不是切片來避免 SettingWithCopyWarning。

考慮到這些值是所描述格式的字符串(lat lon)您可以先替換括號以更好地查看。

  1. df["geo"] = df["geo"].str.replace(r"[\\(\\)", "") 在此處輸入圖片說明

之后,您可以通過中間的空格字符拆分並擴展列。 str.split 文檔

  1. df = df["geo"].str.split(" ", expand=True)

    分割線

您最終會得到兩列 0 和 1,只需在此之后重命名它們即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM