我有以下DataFrame:
df2 = pd.DataFrame({'Worker': ['A','A','B','B','C','D','D'],
'Task': ['T1','T2','T1','T3','T4','T1','T5'],
'Hour': [1,2,1,2,3,1,4]
})
输出为
Worker Task Hour
0 A T1 1
1 A T2 2
2 B T1 1
3 B T3 2
4 C T4 3
5 D T1 1
6 D T5 4
我要有如下表格:
Staff Hour
Task
T1 3 3
T2 1 2
T3 1 2
T4 1 3
T5 1 4
怎么做?谢谢。
[编辑:来自@ayhan的解决方案,但要求有所更新]
df2.groupby('Task').agg({'Worker': 'size', 'Hour': 'sum'})
但是,我刚刚意识到我不计算(即大小)“工人”的出现,而是确定每个任务的唯一工人数。
我对DataFrame进行了如下修改:
df2 = pd.DataFrame({'Worker': ['A','A','B','B','C','D','D'],
'Task': ['T1','T1','T2','T3','T4','T2','T2'],
'Hour': [1,2,1,2,3,1,4]
})
输出为
Worker Task Hour
0 A T1 1
1 A T1 2
2 B T2 1
3 B T3 2
4 C T4 3
5 D T2 1
6 D T2 4
所需的输出是
Staff Hour
Task
T1 1 3
T2 2 6
T3 1 2
T4 1 3