def _resample_date_offset_to_tick(df, target_index, resample_func):
    """Re-sample a date offset to tick based index."""
    target_tick = target_index.freq
    target_single_tick = target_tick.base
    new_df = df.resample(target_single_tick).ffill()
    start = target_index[0].asfreq(target_single_tick, how='start')
    end = target_index[-1].asfreq(target_single_tick, how='end')
    new_df = new_df[start:end]
    if target_tick.n > 1:
        new_df = new_df.resample(target_tick).agg(resample_func)
    return new_df
