将一年中的几周分开并计算数据框中的平均值
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()
如果您希望能够指定一周的开始日期,请查看下面的锚定偏移量。 W
与 W-SUN
相同,星期一可以使用 W-MON
,等等
文档:
- DataFrame.resample
- Offset Alias(
resample(W)
中的W
)
- Anchored Offsets
我有一个全年价格每小时间隔的数据框,如下所示:
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()
如果您希望能够指定一周的开始日期,请查看下面的锚定偏移量。 W
与 W-SUN
相同,星期一可以使用 W-MON
,等等
文档:
- DataFrame.resample
- Offset Alias(
resample(W)
中的W
) - Anchored Offsets