我想使用此数据:
Date Producer Hour Product Rate
01-01-2001 Hamilton 0 560
01-01-2001 Hamilton 1 540
01-01-2001 Hamilton 2 510
01-01-2001 Hamilton 3 590
01-01-2001 Hamilton 4 600
.
.
.
01-01-2001 Hamilton 23 150
01-02-2001 Hamilton 0 510
01-02-2001 Hamilton 1 530
01-02-2001 Hamilton 2 540
.
.
.
01-01-2001 Checker 0 150
01-01-2001 Checker 1 260
01-01-2001 Checker 2 256
01-01-2001 Checker 3 360
我希望根据每个日期每月/每年的生产率的小时和生产者获取平均值。
这意味着我们不仅将小时和生产者分组,而且将月份和年份分组。
我想不出一个简单的方法来处理大型数据集。我尝试过:
data_avg = data.groupby([lambda x: x.year, lambda x: x.month]).mean()
但是我不想简单地复制和粘贴lambda代码,而不完全了解它的工作方式或用法。
是否有更简便的方法来按groupby
过滤我需要的内容?我已将日期更改为日期时间格式,因此现在只需进行分组即可。
答案 0 :(得分:2)
您也可以只使用groupby
来完成此操作,如下所示:
data_avg = data.groupby([data['Date'].dt.year.rename('year'), data['Date'].dt.month.rename('month'), data['Hour']])['Product Rate'].mean()