In [1]:
import pandas as pd

In [2]:
df = pd.DataFrame({'value': range(1, 32, 2)},
                  index=pd.date_range('2018-08-01', '2018-08-31', freq='2D'))

In [3]:
print(df)


            value
2018-08-01      1
2018-08-03      3
2018-08-05      5
2018-08-07      7
2018-08-09      9
2018-08-11     11
2018-08-13     13
2018-08-15     15
2018-08-17     17
2018-08-19     19
2018-08-21     21
2018-08-23     23
2018-08-25     25
2018-08-27     27
2018-08-29     29
2018-08-31     31

In [4]:
print(df.resample('W'))


DatetimeIndexResampler [freq=<Week: weekday=6>, axis=0, closed=right, label=right, convention=start, base=0]

In [5]:
print(type(df.resample('W')))


<class 'pandas.core.resample.DatetimeIndexResampler'>

In [6]:
print(df.resample('W').mean())


            value
2018-08-05      3
2018-08-12      9
2018-08-19     16
2018-08-26     23
2018-09-02     29

In [7]:
print(df.resample('W').median())


            value
2018-08-05      3
2018-08-12      9
2018-08-19     16
2018-08-26     23
2018-09-02     29

In [8]:
print(df.resample('W').sum())


            value
2018-08-05      9
2018-08-12     27
2018-08-19     64
2018-08-26     69
2018-09-02     87

In [9]:
print(df.resample('W').first())


            value
2018-08-05      1
2018-08-12      7
2018-08-19     13
2018-08-26     21
2018-09-02     27

In [10]:
print(df.resample('W').last())


            value
2018-08-05      5
2018-08-12     11
2018-08-19     19
2018-08-26     25
2018-09-02     31

In [11]:
print(df.resample('W').count())


            value
2018-08-05      3
2018-08-12      3
2018-08-19      4
2018-08-26      3
2018-09-02      3

In [12]:
print(df.resample('W').ohlc())


           value               
            open high low close
2018-08-05     1    5   1     5
2018-08-12     7   11   7    11
2018-08-19    13   19  13    19
2018-08-26    21   25  21    25
2018-09-02    27   31  27    31

In [13]:
print(df.resample('W').apply(list))


                       value
2018-08-05         [1, 3, 5]
2018-08-12        [7, 9, 11]
2018-08-19  [13, 15, 17, 19]
2018-08-26      [21, 23, 25]
2018-09-02      [27, 29, 31]

In [14]:
print(df.resample('W').agg(['min', 'max', 'sum']))


           value        
             min max sum
2018-08-05     1   5   9
2018-08-12     7  11  27
2018-08-19    13  19  64
2018-08-26    21  25  69
2018-09-02    27  31  87

In [15]:
print(df.resample('W').apply(list))


                       value
2018-08-05         [1, 3, 5]
2018-08-12        [7, 9, 11]
2018-08-19  [13, 15, 17, 19]
2018-08-26      [21, 23, 25]
2018-09-02      [27, 29, 31]

In [16]:
print(df.resample('W', label='left').apply(list))


                       value
2018-07-29         [1, 3, 5]
2018-08-05        [7, 9, 11]
2018-08-12  [13, 15, 17, 19]
2018-08-19      [21, 23, 25]
2018-08-26      [27, 29, 31]

In [17]:
print(df.resample('W', label='left', closed='left').apply(list))


                       value
2018-07-29            [1, 3]
2018-08-05     [5, 7, 9, 11]
2018-08-12      [13, 15, 17]
2018-08-19  [19, 21, 23, 25]
2018-08-26      [27, 29, 31]

In [18]:
df_reset = df.reset_index()
print(df_reset)


        index  value
0  2018-08-01      1
1  2018-08-03      3
2  2018-08-05      5
3  2018-08-07      7
4  2018-08-09      9
5  2018-08-11     11
6  2018-08-13     13
7  2018-08-15     15
8  2018-08-17     17
9  2018-08-19     19
10 2018-08-21     21
11 2018-08-23     23
12 2018-08-25     25
13 2018-08-27     27
14 2018-08-29     29
15 2018-08-31     31

In [19]:
print(df_reset.resample('W', on='index').sum())


            value
index            
2018-08-05      9
2018-08-12     27
2018-08-19     64
2018-08-26     69
2018-09-02     87