title: How to find the intersection of two geodataframes in pandas?
body: <p>Some Info on my work:</p>
  
  <ol>
  <li><p>I have a shape file with county's soil ssurgo data exported from ARC GIS. It is read into a GeoDataFrame (Gdf1).</p></li>
  <li><p>I have a shape file with boundaries for a farm's individual fields exported from SMS AgLeader. It has been read as DataFrame and converted into GeoDataFrame (Gdf2).</p></li>
  </ol>
  
  <p>When I perform subplots:</p>
  
  <pre><code>aa = Gdf1.plot()
  Gdf2.plot(ax=aa)
  </code></pre>
  
  <p>I can see that the Gdf2 falls inside Gdf1.</p>
  
  <p>This is where I am stuck:</p>
  
  <p>I am trying to replicate a "crop" function from R. Python seems to have "overlay" function that is supposed to work, but my code never completes running. Overlay is either overSlow or just doesn't work in this case (confusion, not a statement annnnnnnd the point of my frustration).</p>
  
  <h1>Example of R code (that works):</h1>
  
  <pre><code>result &lt;- crop(Gdf1, Gdf2)
  </code></pre>
  
  <h1>Example of Python code that never completes executing:</h1>
  
  <pre><code>result = overlay(Gdf1, Gdf2, how='intersection')
  </code></pre>
  
  <h1>Other attempts that I am not sure of:</h1>
  
  <p>*1. result = Gdf1.geometry.intersects(Gdf2.geometry) # result.plot() produces a plot with a horizontal line.</p>
  
  <p>*2. result = Gdf1[Gdf1.within(Gdf2)] # result.plot() gives error: "cannot reindex from a duplicate axis".</p>
  
  <p>*3. result = Gdf1['geometry'] &amp; Gdf2['geometry'] # result.plot() produces a blank plot.</p>