熊猫DF删除重复的姓氏

时间:2020-02-27 18:14:39

标签: python pandas dataframe

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

答案 0 :(得分:3)

如果没有文本形式的数据,我将不会进行以下测试,这应该可以工作:

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

答案 1 :(得分:3)

这是使用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