删除重复但优先保留在大熊猫中的优先级

时间:2020-09-10 14:18:07

标签: python pandas dataframe

这是一个df:

COL1 COL2 COL3 
seqA NA 10
seqA Unknown 5
seqA Cow 50
seqB NA 2
seqC NA 2
seqC Unknown 2
seqC Bird 6
seqC Cow 1
seqD Unknown 30
seqD Shark 2

因此,我们的想法是删除重复的COL1值,并仅保留COL3最低的一个,而如果没有其他{{1 }}

例如NA

我保留

Unknown

因为这是> 10:

COL3 value < 10

但在 seqC我保持:

SeqA

因为它是seqA Unknown 5

在示例中,预期输出为:

seqA Cow 50

所以一个主意是先做一个

seqC Cow 1

但是我不知道如何合并优先级,因为除Unknwown或NA以外的所有事物都是优先级,除了它的COL3> 10

1 个答案:

答案 0 :(得分:2)

让我们先过滤然后sort_values + drop_duplicates

out = df[df.COL3.lt(10) | df.COL2.eq('Unknown')].sort_values('COL3').drop_duplicates('COL1').sort_index()
Out[47]: 
   COL1     COL2  COL3
1  seqA  Unknown     5
3  seqB      NaN     2
7  seqC      Cow     1
9  seqD    Shark     2