我有一个数据框,我试图在其中基于子集删除重复项,但仅针对特定值。
我有以下数据框:
Date Name Task Hours
2019-09-26 John Smith A 24
2019-09-26 Bruce Pitt A 24
2019-09-27 John Smith A 12
2019-09-27 John Smith B 12
2019-09-28 Emma Garcia A 24
2019-09-28 Emma Garcia E 24
我想删除基于Date
,Name
和Hours
的重复行,但仅删除hours = 24
我知道如何删除重复项,但是我不知道如何在此行中添加此特定条件值:
df1.drop_duplicates(subset=['Date', 'Name','Hours'],keep='first', inplace=True)
预期输出:
Date Name Task Hours
2019-09-26 John Smith A 24
2019-09-26 Bruce Pitt A 24
2019-09-27 John Smith A 12
2019-09-27 John Smith B 12
2019-09-28 Emma Garcia A 24
答案 0 :(得分:3)
这是duplicated
df[~(df.duplicated(['Date','Name','Hours']) & df.Hours.eq(24))]
Out[53]:
Date Name Task Hours
0 2019-09-26 JohnSmith A 24
1 2019-09-26 BrucePitt A 24
2 2019-09-27 JohnSmith A 12
3 2019-09-27 JohnSmith B 12
4 2019-09-28 EmmaGarcia A 24