title: How to find census tract from latitude and longitude in python
body: <p>I have two data set that I want to merge to find the census tract based on longitude and latitude</p>
  <p>The first data set that I am using is the New York City Airbnb Open Data and its latitude and longitude column look like this.</p>
  <pre><code>latitude    longitude   
  40.64749    -73.97237
  40.75362    -73.98377
  40.80902    -73.94190
  40.68514    -73.95976
  40.79851    -73.94399
  </code></pre>
  <p>The second data set that I am using contains the census block code for coordinates in NY.</p>
  <pre><code>Latitude    Longitude   BlockCode   
  40.48   -74.280000  340230076002012 
  40.48   -74.276834  340230076005000 
  40.48   -74.273668  340230076003018 
  40.48   -74.270503  340230076003004 
  40.48   -74.267337  340230074021000
  </code></pre>
  <p>I first attempted to calculate the single_pt_haversine (assume the distance's point to have coordinate (0,0)) for the latitude and longitude. Then, I inner join the two data set on the single_pt_haversine, there is not a match between the data sets. I then round up the single_pt_haversine to 3 decimal places and there were some matches in the columns, but only 300 or so rows got returned (out of the 48895 in the first dataset).</p>
  <p>Is there a better to do this? Or maybe a package to determine the census tract from coordinate in Python?</p>