# How to extract biggest Polygon from MultiPolygon in GeoPandas?

Given a Shapely MultiPolygon, how can I extract the biggest Polygon?

For example, given a MultiPolygon as follows:

``````from shapely.geometry import Polygon, MultiPolygon

multipolygon = MultiPolygon([Polygon([(0,0), (1,0), (1,0.25), (1, 0.5), (1,0.75), (1,1), (0,1)]),
Polygon([(2,0), (1.2,0.25), (1.2,0.25), (1.2,0.75), (2,0.75)])])
``````

How can I get just the largest part?

Here's what I would do:

``````max(multipolygon, key=lambda a: a.area)
``````

The built-in max function used this way will return the item from the list where `lambda a: a.area` is maximized.

• That's really elegant. Love these one-liners! Jun 19, 2020 at 19:40

I think I found an interim solution, if there is a better way please let me know!

``````def get_biggest_part(multipolygon):

# Get the area of all mutipolygon parts
areas = [i.area for i in multipolygon]

# Get the area of the largest part
max_area = areas.index(max(areas))

# Return the index of the largest area
return multipolygon[max_area]
``````

As of shapely 2.0.2 (and may be earlier versions), you need to append `.geoms`:

``````max(multipolygon.geoms, key=lambda a: a.area)
``````