一天panda数据帧中n个价格最低的小时间隔的平均值



我有一个由小时电价数据组成的数据帧。我想做的是找到一种方法来计算一天中n个最低价小时的平均值。该数据跨越多年,旨在获得每天n个最低价时段的平均值。可以使用以下方法创建合成数据:

np.random.seed(0)
rng = pd.date_range('2020-01-01', periods=24, freq='T')
df = pd.DataFrame({ 'Date': rng, 'Price': np.random.randn(len(rng)) }) 

我已经设法通过使用获得了每天的最低价格

df_max = df.groupby([pd.Grouper(key='Date', freq='D')]).min() 

有没有办法得到一天中n个最低时段的平均值?

提前感谢您的帮助。

我们可以按每日频率的Grouper对象对数据帧进行分组,然后使用nsmallest聚合Price以获得n的最小值,现在计算level=0上的mean以获得一天中n最小值的平均值

df.groupby(pd.Grouper(key='Date', freq='D'))['Price'].nsmallest(5).mean(level=0)

5最小值每日平均值的计算结果

Date
2020-01-01   -1.066337
Name: Price, dtype: float64

您也可以尝试以下操作:

bottom_5_prices\mean=df.sort_index(升序=True(.head(5([价格].mmean((top_5_prices\mean=df.sort_index(升序=True(.tail(5([价格].mmean((

最新更新