Удаление дубликатов с условием во фрейме данных - PullRequest
2 голосов
/ 12 июля 2019

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

Пример кадра данных:

                 text label
0          great view     a
1          great view     b
2        good balcony     a
3        nice service     a
4        nice service     b
5        nice service     c
6           bad rooms     f
7     nice restaurant     a
8     nice restaurant     d
9   nice beach nearby     x
10        good casino     z

Теперь, если я хочу сохранить текст там, где присутствует метка a, и удалить только дубликаты. Пример вывода:

          text label
0         great view     a
1       good balcony     a
2       nice service     a
3          bad rooms     f
4    nice restaurant     a
5  nice beach nearby     x
6        good casino     z

Заранее спасибо!

1 Ответ

1 голос
/ 12 июля 2019

Вы можете просто попробовать sort_values до drop_duplicates, так как df сначала упорядочится по label по порядку альфа-беты (a> b уступает True)

df=df.sort_values('label').drop_duplicates('text')

или

df=df.sort_values('label').groupby('text').head(1)

Обновление

Valuetokeep='a'

df=df.iloc[(df.label!=Valuetokeep).argsort()].drop_duplicates('text')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...