jta*_*tam 4 python gis latitude-longitude shapely geopandas
我有一个geopandas df,其中有一列匀称的点对象。我想从形状良好的点对象中提取坐标(纬度/经度)以生成纬度和经度列。必须有一种简单的方法来执行此操作,但是我无法弄清楚。
我知道您可以像这样提取单个坐标:
lon = df.point_object[0].x
lat = df.point_object[0].y
Run Code Online (Sandbox Code Playgroud)
而且我可以创建一个对整个df都执行此操作的函数,但是我发现有一种更有效/更优雅的方法。
小智 12
无需遍历 Dataframe,您可以执行以下操作:
df['lon'] = df['geometry'].x
df['lat'] = df['geometry'].y
Run Code Online (Sandbox Code Playgroud)
如果您使用的是最新版本的Geopandas(撰写本文时为0.3.0),并且if df是GeoDataFrame,则可以使用geometry列上的x和y属性:
df['lon'] = df.point_object.x
df['lat'] = df.point_object.y
Run Code Online (Sandbox Code Playgroud)
通常,如果您有一列匀称的对象,则还可以使用apply该方法对整列的单个坐标执行以下操作:
df['lon'] = df.point_object.apply(lambda p: p.x)
df['lat'] = df.point_object.apply(lambda p: p.y)
Run Code Online (Sandbox Code Playgroud)