Функция для выделения уникальных наблюдений в группах - PullRequest
0 голосов
/ 23 апреля 2020

Я хотел бы помочь в создании функции, которая динамически выполняет итерации по кадрам данных по группам (не указан цвет), смотрит на идентификатор, чтобы увидеть, совпадают ли идентификаторы с большинством идентификаторов, которые есть в каждой группировке по цвету ( поэтому, какое бы количество наблюдений ни было для каждого цвета, все, что эквивалентно более чем половине идентификатора заполненного идентификатора на цвет, в этом случае верны). Реальный набор данных, скорее всего, будет иметь 10-50 строк на цвет, и может быть несколько случаев, когда существует неуместный идентификатор. Было бы здорово, если бы мы могли включить строковую заметку «Флаг для последующего исследования» или, если проще, простой вывод 0/1, и я мог бы написать соответствующую функциональность текста. У меня проблемы с выяснением, с чего начать. С помощью либо групповой nunique-функции, либо al oop, либо чего-то, что объединяет их.

  • , как вы можете видеть ниже, в колонке «примечание» оставленный мною комментарий (пометка для последующего исследования) соответствует идентификатору, который не похож на другие в соответствующей цветовой группе.

Образец данных:

color    id    commitment    Note  *(where i need help) 
blue     1     10
blue     1     5
blue     1     15
blue     2     10            Flag for later research
blue     1     9
green    3     10
green    3     11
green    2     12            Flag for later research
green    3     15

1 Ответ

1 голос
/ 23 апреля 2020

IIU C:

df['Note'] = ~df.duplicated(['color','id'], keep=False)

дает ваш:

   color  id  commitment   Note
0   blue   1          10  False
1   blue   1           5  False
2   blue   1          15  False
3   blue   2          10   True
4   blue   1           9  False
5  green   3          10  False
6  green   3          11  False
7  green   2          12   True
8  green   3          15  False
...