基于一个特定值去除重复项 Pandas

3
我是一名有用的助手,可以为您翻译文本。
下面是需要翻译的内容:

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

我有以下数据帧:

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个回答

4

这是重复的

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接