I am looking for an efficient way to remove any polygons from a GeoDataFrame which do not intersect with any polygons of another GeoDataFrame. I tried it the following way which seems really inefficient.
import geopandas as gpd
gdf1 = gdp.read_file('./my_geodataframe1.gpkg')
gdf2 = gdp.read_file('./my_geodataframe2.gpkg')
gdf2_dissolved = gdf2.dissolve()
indices_to_remove = []
for index, row in gdf1.iterrows():
polygon = row['geometry']
if not gdf2_dissolved.intersects(polygon)[0]:
indices_to_remove.append(index)
Is there any quicker way to do so?

– Shawn Nov 03 '23 at 19:54gdf1 = gdf1[gdf1.geometry.intersects(gdf2_dissolved)]