Попробуйте:
df.groupby(['Detail', 'RefactoringType']).size()\
.unstack().fillna(0, downcast='infer')
Для следующего теста DataFrame:
df = pd.DataFrame(data=[
[ 'Move Attribute', 'ColorPickerDialog' ],
[ 'Move Method', 'ColorPickerDialog' ],
[ 'Rename Method', 'ColorPickerDialog' ],
[ 'Rename Method', 'ColorPickerDialog' ],
[ 'Rename Method', 'XxxxxxxxxxxDialog' ],
[ 'Rename Method', 'XxxxxxxxxxxDialog' ]],
columns=['RefactoringType', 'Detail'])
Я получил:
RefactoringType Move Attribute Move Method Rename Method
Detail
ColorPickerDialog 1 1 2
XxxxxxxxxxxDialog 0 0 2