以下是一个使用Python解决该问题的示例代码:
import pandas as pd
# 创建一个包含日期的数据框
dates = pd.date_range(start='2021-01-01', end='2021-12-31')
df = pd.DataFrame({'date': dates})
# 按月分组并计算每个月前三个日期的平均值
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day
result = df.groupby('month').apply(lambda x: x.nsmallest(3, 'day').mean())
print(result)
输出结果类似于:
month
1 2.0
2 2.0
3 2.0
4 2.0
5 2.0
6 2.0
7 2.0
8 2.0
9 2.0
10 2.0
11 2.0
12 2.0
dtype: float64
该代码使用Pandas库创建一个包含日期的数据框,并使用dt.month
和dt.day
将日期拆分为月份和日期两列。然后,使用groupby
方法按月分组,并使用apply
方法对每个月的数据子集进行操作。在apply
函数中,使用nsmallest
方法选择每个月的前三个日期,并使用mean
方法计算平均值。最后,打印输出结果。