将一年中的几周分开并计算数据框中的平均值

Separate out weeks in a year and calculate averages in a dataframe

我有一个全年价格每小时间隔的数据框,如下所示:

                      DE     FR     NL     CH     BE     AT  peak  offpeak
2015-12-14 00:00:00  30.93  36.56  32.44  45.53  32.44  28.50     0        1
2015-12-14 01:00:00  31.49  31.49  31.49  42.12  31.49  26.65     0        1
2015-12-14 02:00:00  29.50  29.50  29.50  41.24  29.50  27.00     0        1
2015-12-14 03:00:00  27.84  27.84  27.84  40.29  27.84  26.75     0        1
2015-12-14 04:00:00  27.45  27.45  27.45  37.72  27.45  26.00     0        1
2015-12-14 05:00:00  29.65  29.65  29.65  43.44  29.65  29.37     0        1
2015-12-14 06:00:00  41.26  41.26  41.26  54.99  41.26  41.30     0        1
2015-12-14 07:00:00  53.46  53.46  53.46  66.89  53.46  53.43     0        1
2015-12-14 08:00:00  56.70  56.70  56.70  68.90  56.70  57.30     1        0
2015-12-14 09:00:00  51.50  60.47  51.39  68.95  59.03  54.21     1        0

...                    ...    ...    ...    ...    ...    ...   ...      ...
2016-12-14 20:00:00  67.54  71.20  67.47  65.99  70.38  53.88     1        0
2016-12-14 21:00:00  47.94  64.47  47.92  60.69  60.77  49.14     0        1
2016-12-14 22:00:00  41.71  63.65  39.57  59.97  59.49  40.00     0        1
2016-12-14 23:00:00  35.57  62.45  33.08  57.38  57.53  35.66     0        1

我希望能够将一年中的每个星期分开,然后将每个列 DE、FR、NL、CH、BE、AT 的每个星期的平均值加在一起。

如果有人可以提供帮助。太棒了!

给定一整年的每小时假数据集:

cols = ['DE', 'FR', 'NL', 'CH', 'BE', 'AT']
df = pd.DataFrame(np.random.random((8760,len(cols))),
                  index=pd.date_range('2015-01-01', freq='H',periods=8760),
                  columns=cols)

您可以使用 DataFrame.resample 并对其应用均值函数:

df.resample('W').mean().sum()

如果您希望能够指定一周的开始日期,请查看下面的锚定偏移量。 WW-SUN 相同,星期一可以使用 W-MON,等等

文档: