Как использовать Pandas для групп и сумм - PullRequest
1 голос
/ 13 июня 2019

это мой фрейм данных:

    RefactoringType      Detail
0   Move Method         com.onegravity.colorpicker.ColorPickerDialog
1   Move Source Folder  NaN
2   Move Attribute      com.onegravity.colorpicker.ColorPickerDialog
3   Move Attribute      com.onegravity.colorpicker.ColorPickerDialog
4   Move Attribute      com.onegravity.colorpicker.ColorPickerDialog
5   Move Attribute      com.onegravity.colorpicker.ColorPickerDialog
6   Move Attribute      com.onegravity.colorpicker.ColorPickerDialog
7   Move Attribute      com.onegravity.colorpicker.ColorPickerDialog
8   Move Attribute      com.onegravity.colorpicker.ColorPickerDialog
9   Rename Method       com.onegravity.colorpicker.ColorPickerDialog

столбец Detail содержит названия классов. Мне нужно вычислить количество RefactoringType в каждом классе. Я попробовал это:

g1 = df1.groupby(["Detail", "RefactoringType"]).sum()

Это возвращение для меня:

Detail                                         RefactoringType
com.onegravity.colorpicker.ColorPickerDialog    Move Attribute
                                                Move Method
                                                Rename Method

Мне нужен такой результат:

 Class                                       Move Method   Move Attribute Rename Method

com.onegravity.colorpicker.ColorPickerDialog  1             1                    1  

PS: после я определю все виды рефакторинга. Спасибо за помощь

1 Ответ

0 голосов
/ 13 июня 2019

Попробуйте:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...