形の良いポイントオブジェクトの列を持つgeopandasdfがあります。シェイプポイントオブジェクトから座標(lat/lon)を抽出して、緯度と経度の列を生成したいと思います。これを行う簡単な方法があるはずですが、私にはわかりません。
私はあなたがこのように個々の座標を抽出できることを知っています:
lon = df.point_object[0].x
lat = df.point_object[0].y
そして、df全体に対してこれを行う関数を作成することもできましたが、より効率的でエレガントな方法があると思いました。
最新バージョンの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)
データフレームを反復処理することなく、次のことができます。
df['lon'] = df['geometry'].x
df['lat'] = df['geometry'].y