Pandas dup包含带条件的字符串
我想删除包含某些特定字符串的重复项。 例如,我有以下df: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
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