I have the following 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]
})
The output is
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
I want to have table as below:
Staff Hour
Task
T1 3 3
T2 1 2
T3 1 2
T4 1 3
T5 1 4
How could it be done? Thanks.
[Edit: Solution from @ayhan but with updated requirement]
df2.groupby('Task').agg({'Worker': 'size', 'Hour': 'sum'})
However, I have just realized that I do not count (i.e., size) the occurrence of 'Worker' but determine number of unique workers per task.
I have modified the DataFrame as follow:
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]
})
The output is
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
And the desired output is
Staff Hour
Task
T1 1 3
T2 2 6
T3 1 2
T4 1 3