В Pandas, как сделать сводную таблицу для подсчета и пропуска повторов? - PullRequest
0 голосов
/ 04 июля 2018

В Python3 и пандах у меня есть такой фрейм данных:

IdComissao      SiglaComissao       NomeMembro
12444           CCJR            Abelardo Camarinha
12444           CCJR            Abelardo Camarinha
12448           CAD             Abelardo Camarinha
12448           CAD             Abelardo Camarinha
12453           CMADS           Abelardo Camarinha
12453           CMADS           Abelardo Camarinha
12453           CMADS           Abelardo Camarinha
13297           CPI-InvTer      Abelardo Camarinha
8509            CFC             Abelardo Camarinha
8509            CFC             Abelardo Camarinha
13149           CPIATFC         Abelardo Camarinha
12444           CCJR            Vaz de Lima
12445           CFOP            Vaz de Lima
12445           CFOP            Vaz de Lima
12445           CFOP            Vaz de Lima
12454           CAE             Vaz de Lima
12455           CDD             Vaz de Lima
8501            CCJ             Vaz de Lima
8503            CAP             Vaz de Lima
8509            CFC             Vaz de Lima
8509            CFC             Vaz de Lima
8511            CEP             Vaz de Lima
8515            CFO             Vaz de Lima
8515            CFO             Vaz de Lima
8515            CFO             Vaz de Lima
8515            CFO             Vaz de Lima
8515            CFO             Vaz de Lima
8519            CSOP            Vaz de Lima
8521            CEDP            Vaz de Lima

Я ищу способ подсчитать, сколько раз каждое имя "NomeMembro" содержит элемент "SiglaComissao", без повторов

Например, имя «Абелардо Камаринья» имеет шесть типов «SiglaComissao», а имя «Ваз де Лима» - 11 типов

Пожалуйста, есть ли способ сделать сводную таблицу для подсчета элементов без повторов?

1 Ответ

0 голосов
/ 04 июля 2018

Я думаю, что вы ищете groupby и nunique:

df.groupby('NomeMembro')['SiglaComissao'].nunique()

Что возвращает:

NomeMembro
Abelardo Camarinha     6
Vaz de Lima           11
...