在geopandas df到lat / lon列中的匀称点几何

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

我有一个具有一系列形状点对象的geopandas df。我想从形状上的点对象中提取坐标(lat / lon)以生成纬度和经度列。必须有一个简单的方法来做到这一点,但我无法弄清楚。

我知道你可以像这样提取单个坐标:

lon = df.point_object[0].x
lat = df.point_object[0].y

我可以创建一个为整个df执行此操作的函数,但我认为有一种更有效/更优雅的方式。

python gis latitude-longitude geopandas shapely
2个回答
5
投票

如果您有最新版本的geopandas(撰写时为0.3.0),并且if df是GeoDataFrame,则可以在几何列上使用xy属性:

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

一般来说,如果你有一列形状对象,你也可以使用apply来完成你可以在整个列的单独坐标上做的事情:

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

1
投票

无需迭代Dataframe,您可以执行以下操作:

df['lon'] = df['geometry'].x
df['lat'] = df['geometry'].y
© www.soinside.com 2019 - 2024. All rights reserved.