Pandas: rolling mean by time interval

I'm new to Pandas.... I've got a bunch of polling data; I want to compute a rolling mean to get an estimate for each day based on a three-day window. As I understand from this question, the rolling_* functions compute the window based on a specified number of values, and not a specific datetime range.

Is there a different function that implements this functionality? Or am I stuck writing my own?

EDIT:

Sample input data:

    polls_subset.tail(20)
    Out[185]: 
                favorable  unfavorable  other

    enddate                                  
    2012-10-25       0.48         0.49   0.03
    2012-10-25       0.51         0.48   0.02
    2012-10-27       0.51         0.47   0.02
    2012-10-26       0.56         0.40   0.04
    2012-10-28       0.48         0.49   0.04
    2012-10-28       0.46         0.46   0.09
    2012-10-28       0.48         0.49   0.03
    2012-10-28       0.49         0.48   0.03
    2012-10-30       0.53         0.45   0.02
    2012-11-01       0.49         0.49   0.03
    2012-11-01       0.47         0.47   0.05
    2012-11-01       0.51         0.45   0.04
    2012-11-03       0.49         0.45   0.06
    2012-11-04       0.53         0.39   0.00
    2012-11-04       0.47         0.44   0.08
    2012-11-04       0.49         0.48   0.03
    2012-11-04       0.52         0.46   0.01
    2012-11-04       0.50         0.47   0.03
    2012-11-05       0.51         0.46   0.02
    2012-11-07       0.51         0.41   0.00

Output would have only one row for each date.

EDIT x2: fixed typo

In the meantime, a time-window capability was added. See the link below:

https://github.com/pydata/pandas/pull/13513

    In [1]: df = DataFrame({'B': range(5)})

    In [2]: df.index = [Timestamp('20130101 09:00:00'),
       ...:             Timestamp('20130101 09:00:02'),
       ...:             Timestamp('20130101 09:00:03'),
       ...:             Timestamp('20130101 09:00:05'),
       ...:             Timestamp('20130101 09:00:06')]

    In [3]: df
    Out[3]: 
                         B
    2013-01-01 09:00:00  0
    2013-01-01 09:00:02  1
    2013-01-01 09:00:03  2
    2013-01-01 09:00:05  3
    2013-01-01 09:00:06  4

    In [4]: df.rolling(2, min_periods=1).sum()
    Out[4]: 
                           B
    2013-01-01 09:00:00  0.0
    2013-01-01 09:00:02  1.0
    2013-01-01 09:00:03  3.0
    2013-01-01 09:00:05  5.0
    2013-01-01 09:00:06  7.0

    In [5]: df.rolling('2s', min_periods=1).sum()
    Out[5]: 
                           B
    2013-01-01 09:00:00  0.0
    2013-01-01 09:00:02  1.0
    2013-01-01 09:00:03  3.0
    2013-01-01 09:00:05  3.0
    2013-01-01 09:00:06  7.0

From: stackoverflow.com/q/15771472