Pandas DF Удаление повторяющихся фамилий - PullRequest
2 голосов
/ 27 февраля 2020

У меня есть DataFrame с неправильными именами людей и некоторыми именами. Пойманная фамилия из-за очистки селеном, поэтому я хочу удалить их

Ввод:

            TEXT    TYPE
0  Barrack Obama  PERSON
1          Obama  PERSON
2      Don Beyer  PERSON
3    Doug Wilson  PERSON
4         Wilson  PERSON
5         Thomas  PERSON

Ожидаемый вывод

            TEXT    TYPE
0  Barrack Obama  PERSON
1      Don Beyer  PERSON
2    Doug Wilson  PERSON
3         Thomas  PERSON

Ответы [ 2 ]

3 голосов
/ 27 февраля 2020

Вот еще один подход, использующий duplicated()

df[~df['TEXT'].str.split().str[-1].duplicated()]

Или:

df[~df['TEXT'].str.split(expand=True).ffill(1).iloc[:,-1].duplicated()]

Или:

df[~df['TEXT'].str.split(expand=True).ffill(1).duplicated([1])]

            TEXT    TYPE
0  Barrack Obama  PERSON
2      Don Beyer  PERSON
3    Doug Wilson  PERSON
5         Thomas  PERSON
3 голосов
/ 27 февраля 2020

Без ваших данных в тексте я не буду проверять следующее, которое должно работать:

df.groupby(df.TEXT.str.extract('(\w*)$')[0],
           sort=False, as_index=False
          ).first()

Вывод:

            TEXT    TYPE
0  Barrack Obama  PERSON
1      Don Beyer  PERSON
2    Doug Wilson  PERSON
3         Thomas  PERSON
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...