根据一个特定的值删除重复的熊猫

时间:2019-09-26 14:54:21

标签: python pandas

我有一个数据框,我试图在其中基于子集删除重复项,但仅针对特定值。

我有以下数据框:

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

我想删除基于DateNameHours的重复行,但仅删除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

1 个答案:

答案 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