In [1]:
from shapely.geometry import Polygon
import geopandas as gpd

In [2]:
polys1 = gpd.GeoSeries([Polygon([(0,0), (2,0), (2,2), (0,2)]),
                              Polygon([(2,2), (4,2), (4,4), (2,4)])])
    

polys2 = gpd.GeoSeries([Polygon([(1,1), (3,1), (3,3), (1,3)]),
                              Polygon([(3,3), (5,3), (5,5), (3,5)])])
    
df1 = gpd.GeoDataFrame({'geometry': polys1, 'df1':[1,2]})

df2 = gpd.GeoDataFrame({'geometry': polys2, 'df2':[1,2]})

In [5]:
ax = df1.plot(color='red');

df2.plot(ax=ax, color='green', alpha=0.5);



In [4]:
res_intersection = gpd.overlay(df1, df2, how='intersection')
ax = res_intersection.plot(cmap='tab10')
df1.plot(ax=ax, facecolor='none', edgecolor='k')
df2.plot(ax=ax, facecolor='none', edgecolor='k')


Out[4]:
<matplotlib.axes._subplots.AxesSubplot at 0x2b9238f8ba8>

In [ ]: