多年来每天的平均值

时间:2016-07-18 13:46:41

标签: python numpy pandas

快速问:

有一个数据集:这是几年来每天的测量。 试图找出所有相同日期的平均值。即01/01/1995和01/01/1996以及01/01/1997等的平均值

试过这个:

z=df.groupby(df.index.day,df.index.month).mean()

但是得到:

TypeError: unhashable type: 'numpy.ndarray'

干杯

2 个答案:

答案 0 :(得分:3)

IIUC你需要通过一个清单:

z=df.groupby([df.index.day,df.index.month]).mean()

你所做的是传递多个args,因此它将months数组解释为axis的arg,请参阅docs

答案 1 :(得分:1)

嘿@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日。在你的1月1日首先是2月1日。这让我有点困惑!无论如何,我的工作更能满足我的需求。我非常感谢你的回答!帮我解决了我的问题。