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


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.

  • It worked, though there is a problem with multipolygons. Thanks! – Vinay Oct 31 '18 at 15:43

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)

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.