熊猫:仅删除熊猫数据框中的特定重复列值

时间:2019-04-29 18:06:08

标签: python pandas dataframe

我正在尝试从pandas数据框列中删除电子邮件地址的重复值,仅保留第一个原始值。但是,并非所有案例都有电子邮件地址,因此它们具有“ NaN”值。我将需要根据其他条件删除重复的NaN值。

现在,我要保留所有等于NaN的电子邮件地址,以及重复电子邮件地址的唯一副本。

例如,这是熊猫数据框的外观:

    Email
    email@email.com
    NaN
    NaN
    email@email.com
    test@test.org

我要在保留NaN值的同时删除所有重复的电子邮件地址。因此,预期结果是这样的:

     Email
     email@email.com
     NaN
     NaN
     test@test.org

已删除重复的电子邮件,但保留了NaN。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

使用duplicated + notnull

m = ~(df.Email.duplicated() & df.Email.notnull())

df[m]

             Email
0  email@email.com
1              NaN
2              NaN
4    test@test.org

答案 1 :(得分:0)

drop_duplicates与keep ='first'一起使用,将保留1并删除其他重复项

data.drop_duplicates(subset ="Email", 
                     keep = 'first', inplace = True)