Pandas:仅删除Pandas datafram中的特定重复列值

2024-04-26 14:47:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图删除电子邮件地址的重复值,只保留数据帧列中的第一个原始值。但是,并非所有的案例都有电子邮件地址,因此它们都有“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仍然存在。非常感谢您的帮助。你知道吗


Tags: 数据orgtestcom电子邮件email地址副本
2条回答

drop_duplicates与keep='first'一起使用,keep='first'将保留1并删除另一个副本

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

使用duplicated+notnull

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

df[m]

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

相关问题 更多 >