title: Merging datasets in Python on timestamp with emphasis on Date
body: <p>I have a large dataset ('df'; ~400,000 lines) of rows with a datetime index describing features of cities.<br>
  eg.</p>
  
  <pre class="lang-py prettyprint-override"><code>df = pd.DataFrame([['2016-01-01 00:00:00','Jacksonville'], ['2016-01-01 01:00:00','Jacksonville'], 
                    ['2016-01-01 02:00:00','Jacksonville'], ['2016-01-01 03:00:00','Toronto']], columns=['timestamp','City'])
  </code></pre>
  
  <p>I want to merge this with another smaller dataset I've created ('public_holidays'; ~300 lines) that lists public holidays for those cities.</p>
  
  <p>eg.</p>
  
  <pre class="lang-py prettyprint-override"><code>public_holidays = pd.DataFrame([['1/01/2016','New Year\'s Day','Jacksonville'], ['1/01/2016','New Year\'s Day','San Francisco'], 
                     ['25/12/2018','Christmas Day','Toronto'], ['26/12/2018','Boxing Day','Toronto']], columns=['timestamp','Holiday','City'])
  </code></pre>
  
  <p>Currently I've done this:</p>
  
  <pre class="lang-py prettyprint-override"><code>new_df= pd.merge(df, public_holidays, how = 'left', on = ['timestamp','City'])
  </code></pre>
  
  <p>This works, however as 'df's timestamp contains every hour of each day, the merge only occures at the hour 00:00 (as 'public_holidays' "timestamp" is only by date).</p>
  
  <p>How can I get <code>'public_holidays'</code> to map to every row that matches its date, regardless of time?</p>
  
  <p>Many thanks for any assistance.</p>