[Explode](https://geopandas.org/en/stable/docs/reference/api/geopandas.GeoDataFrame.explode.html):

> Each row containing a multi-part geometry will be split into multiple
> rows with single geometries, thereby increasing the vertical size of
> the GeoDataFrame.


The first row is a multipolygon with three parts.

    import geopandas as gpd
    df = gpd.read_file(r"C:\GIS\GIStest\multipolygons.shp")
    df.plot(column="id", cmap="cool")

[![enter image description here][1]][1]
    
    #df.head()
    #    id                                           geometry
    # 0   1  MULTIPOLYGON (((633399.839 7186225.194, 635561...
    # 1   2  POLYGON ((640064.755 7186290.697, 640064.755 7...
    # 2   3  POLYGON ((638721.946 7182507.908, 638721.946 7...
    # 3   4  POLYGON ((633989.365 7187502.500, 633989.365 7...
    
    exploded = df.explode()
    # exploded.head()
    #      id                                           geometry
    # 0 0   1  POLYGON ((633399.839 7186225.194, 635561.434 7...
    #   1   1  POLYGON ((636069.081 7186143.316, 637280.883 7...
    #   2   1  POLYGON ((636232.838 7184571.247, 637575.646 7...
    # 1 0   2  POLYGON ((640064.755 7186290.697, 640064.755 7...
    # 2 0   3  POLYGON ((638721.946 7182507.908, 638721.946 7...



  [1]: https://i.sstatic.net/oIWeDYA4.png