web-dev-qa-db-ja.com

geopandasdfからlat / lon列へのシェイプポイントジオメトリ

形の良いポイントオブジェクトの列を持つgeopandasdfがあります。シェイプポイントオブジェクトから座標(lat/lon)を抽出して、緯度と経度の列を生成したいと思います。これを行う簡単な方法があるはずですが、私にはわかりません。

私はあなたがこのように個々の座標を抽出できることを知っています:

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

そして、df全体に対してこれを行う関数を作成することもできましたが、より効率的でエレガントな方法があると思いました。

5
jtam

最新バージョンのgeopandas(執筆時点で0.3.0)があり、dfがGeoDataFrameの場合、x属性とy属性を使用できます。ジオメトリ列:

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)
10
joris

データフレームを反復処理することなく、次のことができます。

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