快速问:
有一个数据集:这是几年来每天的测量。 试图找出所有相同日期的平均值。即01/01/1995和01/01/1996以及01/01/1997等的平均值
试过这个:
z=df.groupby(df.index.day,df.index.month).mean()
但是得到:
TypeError: unhashable type: 'numpy.ndarray'
干杯
答案 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日。这让我有点困惑!无论如何,我的工作更能满足我的需求。我非常感谢你的回答!帮我解决了我的问题。