изменить значения в столбце, если они повторяются и соответствуют критериям - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть фрейм данных, в котором есть дубликаты в первом столбце. В третьем столбце есть другая метка, но они дублируют данные. Я хочу изменить все дублированные данные, если они не соответствуют «покрытым», если в исходном столбце есть дубликат и «покрыт» видимый.

Изображение ниже: SAWAD следует заменить на покрытый. S C должен оставаться не покрытым. SCB должен измениться на покрытый

enter image description here

1 Ответ

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

Идея - это проверка, если хотя бы один Covered на группу по сравнению с Series.eq и GroupBy.any:

m = df['Covered/Not Covered'].eq('Covered').groupby(df['Security']).transform('any')

Или получить все Security значения с Covered и тестовый столбец с Series.isin для всех групп:

m = df['Security'].isin(df.loc[df['Covered/Not Covered'].eq('Covered'), 'Security'])

А затем установить исходные значения по маске:

df.loc[m, 'Covered/Not Covered'] = 'Covered'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...