根据 python 中的日期计算存储在 excel /.CSV 文件中的值的气候平均值

Calculate the climatological mean of values stored in excel /.CSV files according to the day of the year in python

我在 .CSV 文件中有 2000 年到 2005 年所有日期的数据 X。

我想要不同年份相同日期的 X 值的平均值,即 01-jan-2000、01-jan-2001、01-jan-2002、01-jan-2003、01 的 X 值的平均值-jan-2004 和 01-jan-2005 然后是 02-jan-2000、02-jan-2001、02-jan-2002、02-jan-2003、02-jan-2004 和 02-jan-2005 等等所有的日子。

我使用了:dataframe.groupby('dateindex.dayofyear').mean()['X'] 命令用于相同的目的,但不幸的是,它给出了闰年 2 月 29 日和非闰年 3 月 1 日的错误平均值。

带有日期、X 值和平均值的示例(示例数据的预期结果):

   Date        X       Mean(Expected Outcome)
01-01-2000     1         (1+4)/2=2.5
02-01-2000     2              3.5
03-01-2000     3              4.5
01-01-2001     4              2.5
02-01-2001     5              3.5
03-01-2001     6              4.5

使用 pd.to_datetimepd.Series.dt.strftime 的一种方式:

df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
df['Mean'] = df.groupby(df['Date'].dt.strftime("%m%d"))["X"].transform("mean")
print(df)

或者简单地使用 str:

df['Mean'] = df.groupby(df["Date"].str[:5])["X"].transform("mean")

输出:

        Date  X  Mean
0 2000-01-01  1   2.5
1 2000-01-02  2   3.5
2 2000-01-03  3   4.5
3 2001-01-01  4   2.5
4 2001-01-02  5   3.5
5 2001-01-03  6   4.5