title: Match new shapely Point to a series of shapely polygons - fast
body: <p>I have a Series of Shapely Polygons (&gt;1000), which do not overlap. And I want to introduce a new shapely point and want to know fast, in which polygon the point would be. I have a for loop for this but I am looking for a method that would be faster.</p>
  <pre><code>from shapely.geometry import Point
  from shapely.geometry.polygon import Polygon
  
  test_points  = pd.Series([[(0,1), (1,1), (1,0)], [(0,0), (0,1), (1,0)]])
  
  # a Dataframe containing my polygons and an id
  polygonized_points = pd.DataFrame({&quot;polygons&quot; : test_points.map(lambda x : Polygon(x)), &quot;id&quot; : range(0, len(test_points), 1)})
  
  # a new point
  new_point = Point(0.4, 0.3)
  
  # allocation of point to hexes (which I want to be faster)
  for idx, row in polygonized_points.iterrows() :
      if row.polygons.contains(new_point) :
          new_point_in_id = row.id # imagine this would be a df with an empty column for the id variable
  </code></pre>
  <p>I'm seriously sure I missed something to speed this up b/c I don't think the for loop scales well. Thank you for your help! Best</p>