title: pd.merge_asof with aggregation
body: <p>Given a data frame with start time of a new time period (a new work shift), sum all sales that occur up to next time period (work shift).</p>
  <pre><code>import pandas as pd
  df_checkpoints = pd.DataFrame({'time':[1,5,10], 'shift':['Adam','Ben','Carl']})
  df_sales = pd.DataFrame({'time':[2,6,7,9,15], 'soldCount':[1,2,3,4,5]})
  
  # This is the wanted output...
  df_output = pd.DataFrame({'time':[1,5,10], 'shift':['Adam','Ben','Carl'], 'totSold':[1,9,5]})
  </code></pre>
  <p>So pd.merge_asof does what I want except it only does 1:1 merge. Best would be to get a multiIndex dataframe with index[0] being the checkpoints and index[1] being the sales rows, such that I can aggregate freely afterwards. Last resort would be an ugly O(n) loop.</p>
  <p>Number of rows in each df is a couple of millions.
  Any idea?</p>