2

I have a GeoDataFrame consisting polygons. How can I convert each polygon into a list of coordinates? Is there any attribute, method or function in GeoPandas to do this?

enter image description here

2 Answers 2

6

A very effective, very fast solution would be to build a function and then use apply instead of a list comprehension

def coord_lister(geom):
    coords = list(geom.exterior.coords)
    return (coords)

coordinates = shp.geometry.apply(coord_lister)
3

You can use the following list comprehension to achieve this:

[list(shp.geometry.exterior[row_id].coords) for row_id in range(shp.shape[0])]

where shp is your geopandas dataframe. It uses the exterior and coords methods from shapely.

2
  • It worked, though there is a problem with multipolygons. Thanks!
    – Vinay
    Oct 31, 2018 at 15:43
  • [list(shp.geometry.exterior.iloc[row_id].coords) for row_id in range(shp.shape[0])]
    – Jackssn
    Aug 25, 2021 at 12:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.