Python 熊猫:仅删除熊猫数据帧中的特定重复列值
我正在尝试从pandas dataframe列中删除电子邮件地址的重复值,只保留第一个原始值。但是,并非所有案例都有电子邮件地址,因此它们具有“NaN”值。我需要根据不同的条件删除重复的NaN值 现在,我想保留所有等于NaN的电子邮件地址,以及重复电子邮件地址的唯一副本 例如,以下是熊猫数据框的外观:Python 熊猫:仅删除熊猫数据帧中的特定重复列值,python,pandas,dataframe,Python,Pandas,Dataframe,我正在尝试从pandas dataframe列中删除电子邮件地址的重复值,只保留第一个原始值。但是,并非所有案例都有电子邮件地址,因此它们具有“NaN”值。我需要根据不同的条件删除重复的NaN值 现在,我想保留所有等于NaN的电子邮件地址,以及重复电子邮件地址的唯一副本 例如,以下是熊猫数据框的外观: Email email@email.com NaN NaN email@email.com test@test.org 我想删除所有重复的电子邮件
Email
email@email.com
NaN
NaN
email@email.com
test@test.org
我想删除所有重复的电子邮件地址,同时保留NaN值。所以,预期结果是这样的:
Email
email@email.com
NaN
NaN
test@test.org
重复的电子邮件被删除,但NaN仍然存在。非常感谢您的帮助。使用
复制的+notnull
:
m = ~(df.Email.duplicated() & df.Email.notnull())
df[m]
使用复制的
+notnull
:
m = ~(df.Email.duplicated() & df.Email.notnull())
df[m]
使用带有keep='first'的drop_duplicates
,它将保留1,并删除另一个副本
data.drop_duplicates(subset ="Email",
keep = 'first', inplace = True)
使用带有keep='first'的drop_duplicates
,它将保留1,并删除另一个副本
data.drop_duplicates(subset ="Email",
keep = 'first', inplace = True)
谢谢你!这似乎识别了正确的值,但我在我的专栏中得到了“真”和“假”布尔值,而不是删除重复的电子邮件地址并保留NaN。您是否使用掩码的结果索引数据帧?谢谢!这似乎可以识别正确的值,但我在我的专栏中得到了“True”和“False”布尔值,而不是删除重复的电子邮件地址并保留NaN。您是否使用掩码的结果索引数据帧?