使用pd.to_datetime
和pd.Series.dt.strftime
的一种方法:
我在.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_datetime
和pd.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
使用pd.to_datetime
和pd.Series.dt.strftime
的一种方法: