Сгруппируйте фрейм данных и проверьте количество уникальных значений в каждой группе. - PullRequest
0 голосов
/ 25 февраля 2020

Я пробовал

df.groupby(['Machine','SLOTID'])['COMPONENT_ID'].unique()

Вывод выглядит так:

Machine  COMPONENT_ID          
LM5      11S02CY382YH1934472901    [N3CP1.CP]
     11S02CY382YH1934620648        [N4CP0.CP]
     11S02CY388YH1934546857        [N2CP0.CP]
     11S02CY388YH1934590637        [N0CP0.CP]
     11S02CY388YH1934591337        [N4CP0.CP]
                                  ...    
M05      11S02CY395YH1934575728    [N5CP1.CP]
     11S02CY395YH1934658824        [N3CP1.CP]
     11S02CY395YH1934662750        [N1CP1.CP]
     11S02CY395YH1934703310        [N5CP1.CP]
     11S02CY395YH1934801982        [N5CP1.CP]
Name: SLOTID, Length: 388, dtype: object

Как видите, SLOTID имеет только одно значение в таблице, но таблица достаточно длинная и Я хочу знать, имеет ли какая-либо группа (Machine, COMPONENT_ID) более одного значения SLOTID.

1 Ответ

1 голос
/ 25 февраля 2020

Вы можете просто группировать по нужным столбцам, использовать преобразование для целевого столбца с любым условием, которое вы хотите. Использование этого для нарезки оригинального DF вернет то, что вы хотите.

df[df.groupby(['Machine','COMPONENT_ID'])['SLOTID'].transform('nunique')>1] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...