我正在尝试从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。任何帮助将不胜感激。
答案 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)