Pandas DF删除重复姓氏



我有一个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

以下是使用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

如果没有文本中的数据,我将不会测试以下内容,它们应该可以工作:

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

最新更新