Python 多年来每天的平均值
快速问: 拥有一个数据集:这是几年中每天的测量值。 试图计算出所有相同日期的平均值。i、 e 1995年1月1日、1996年1月1日和1997年1月1日等的平均数 我试过这个:Python 多年来每天的平均值,python,numpy,pandas,Python,Numpy,Pandas,快速问: 拥有一个数据集:这是几年中每天的测量值。 试图计算出所有相同日期的平均值。i、 e 1995年1月1日、1996年1月1日和1997年1月1日等的平均数 我试过这个: z=df.groupby(df.index.day,df.index.month).mean() 但是你可以得到: TypeError: unhashable type: 'numpy.ndarray' 干杯你需要通过一个列表: z=df.groupby([df.index.day,df.index.month]).
z=df.groupby(df.index.day,df.index.month).mean()
但是你可以得到:
TypeError: unhashable type: 'numpy.ndarray'
干杯你需要通过一个列表:
z=df.groupby([df.index.day,df.index.month]).mean()
您所做的是传递多个arg,因此它将months数组解释为轴的arg,请参见Hey@EdChum只是将此添加为答案,因为注释的显示不允许我显示我的意思。我同意日期格式是一种高级语法!然而,当我按相反的顺序做时,我得到
WindSpeed
1 1 1 9.283333
1 2 6.694444
1 3 7.861111
1 4 9.223529
...
1 31 8.964706
2 1 9.127778
2 2 8.733333
2 3 7.511111
...
其中第一个指数是月,第二个指数是日。
当我按照你建议的顺序做时,我得到:
WindSpeed
1 1 9.283333
1 2 8.361111
1 3 6.670588
1 4 7.155556
1 5 8.450000
1 6 4.777778
1 7 3.666667
1 8 4.011765
1 9 5.210526
1 10 6.972222
1 11 7.647059
1 12 6.844444
...
其中第一个指数是天(从1-31),第二个指数是月(从1-12)。我们通常按顺序查看数据,1月1日之后是1月2日。在你的书里,一月一日之后是二月一日。这让我有点困惑!不管怎样,我的工作对我的需要更好。我非常感谢你的回答!帮助我解决了我的问题。您的数据是如何存储的?检查一下就好了,这样(因为我将数据分为几年,即1990-2000年和2000-2010年)它们的顺序是否相同。只要标签上写着(1,1),(2,20),(4,11),(5,31),(7,20),(9,8),(10,28),(12,17),它就会按照你传递的参数列表对它们进行排序,除非你想保留df顺序,在这种情况下,pass
sort=False
注意:颠倒语法会得到更直观的结果;第一个指数是月,第二个指数是日<代码>日期分组比([dat.index.month,dat.index.day]).mean()。否则,你可能会挠头,不知道为什么一个月只有12天,一分钟才意识到发生了什么。@EHB我生活在世界的一部分,那里的惯例是dd/mm/yyyyy
日期的表示方式取决于当地人的偏好,此外,这也是OP要求的格式