Pandas dup包含带条件的字符串

Pandas dup包含带条件的字符串,pandas,duplicates,Pandas,Duplicates,我想删除包含某些特定字符串的重复项。 例如,我有以下df: Name Day Value 111 1 z 111 2 z 111 3 z 111 4 a 111 5 a 222 1 y 222 2 y 222 3 b 222 4 b 333 1 c 333 2 c 333 3

我想删除包含某些特定字符串的重复项。 例如,我有以下df:

Name   Day   Value
111    1       z
111    2       z
111    3       z
111    4       a
111    5       a
222    1       y
222    2       y
222    3       b
222    4       b
333    1       c
333    2       c
333    3       c
333    4       x
333    5       x
条件是:

对于任何值为[x,y,z]的名称,我们保留最后一个

对于任何值为[a,b,c]的名称,我们将保留第一个

Name   Day   Value
111    3       z
111    4       a
222    2       y
222    3       b
333    1       c
333    5       x
我尝试了drop_duplicates keep last/first方法,但不确定如何实现其中的条件。

非常感谢

我们将原始df一分为二,然后分别删除重复的df

s=df.loc[df.Value.isin(['x','y','z']),:].drop_duplicates(['Name','Value'],keep='last')
v=df.loc[df.Value.isin(['a','b','c']),:].drop_duplicates(['Name','Value'],keep='first')

pd.concat([s,v]).sort_index()
Out[53]: 
    Name  Day Value
2    111    3     z
3    111    4     a
6    222    2     y
7    222    3     b
9    333    1     c
13   333    5     x