我有一份excel中的员工数据和一周工作的小时数。我将每个员工标记为他/她正在从事的项目。我可以通过执行以下groupby操作来获得每个项目的总工作小时数:
util_breakup_sum = df[["Tag", "Bill. Hours"]].groupby("Tag").sum()
Bill. Hours
Tag
A61H 92.00
A63B 139.75
An 27.00
B32B 33.50
H 37.00
Manager 8.00
PP 23.00
RP0117 38.50
Se 37.50
然而,当我试图计算每个人在每个项目上花费的平均时间时,它会给我(按员工列出的条目总数/总数),而正确的平均值应该是(组中的唯一员工总数/唯一员工)。 平均值示例如下所示:
util_breakup_mean = df[["Tag", "Bill. Hours"]].groupby("Tag").mean()
Bill. Hours
Tag
A61H 2.243902
A63B 1.486702
An 1.000000
B32B 0.712766
H 2.055556
Manager 0.296296
PP 1.095238
RP0117 1.425926
Se 3.750000
例如,A61H组只有两名员工,因此平均值应为(92/2)=46。但是,代码除以这些员工的总条目数,因此平均值为2.24
如何从组中唯一的员工姓名中获取平均值
尝试:
其中
Employee
是标识员工的列你可以试试
nunique
相关问题 更多 >
编程相关推荐