如何根据一年中的某天在python中计算存储在excel /.CSV文件中的值的气候平均值?

问题描述 投票:0回答:1

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

我想要不同年份相同日期的X值的平均值,即2000年1月1日,2001年1月1日,2002年1月1日,2003年1月1日,2003年1月1日的X值的平均值2004年和2005年1月1日,然后是2000年1月2日,2001年1月2日,2002年1月2日,2003年1月2日,2004年1月2日和2005年1月2日,依此类推。

我出于相同的目的使用了dataframe.groupby('dateindex.dayofyear').mean()['X']命令,但不幸的是,它在from年2月29日和非the年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

我在.CSV文件中拥有2000年至2005年的所有日期的数据X。我想要不同年份相同日期的X值的平均值,即2000年1月1日,2001年1月1日,01年1月1日的X值的平均值。] >>

使用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)

输出:

        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
python pandas netcdf python-xarray
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.