Python 除去第一行之外,删除所有符合条件的行

Python 除去第一行之外,删除所有符合条件的行,python,pandas,Python,Pandas,我想删除pandas数据帧中除第一行之外满足特定条件的所有行。请注意,行不相同,因此我不能使用drop\u duplicates() 例如,如果我有数据帧: Type Count A 4 X 33 X 5 E 51 Y 7 我想根据以下条件进行筛选:df[df.Type.isin(['X','Y'])]将删除类型为X或Y的所有行,从而导致: Type Count A

我想删除
pandas
数据帧中除第一行之外满足特定条件的所有行。请注意,行不相同,因此我不能使用
drop\u duplicates()

例如,如果我有数据帧:

Type    Count
A           4
X          33
X           5
E          51
Y           7
我想根据以下条件进行筛选:
df[df.Type.isin(['X','Y'])]
将删除类型为
X
Y
的所有行,从而导致:

Type    Count
A           4
E          51
但我想保留满足条件的第一个实例,结果是:

Type    Count
A           4
X          33
E          51

任何建议都将不胜感激。

我们可以使用
idxmax
将第一个值设置为
False

m = df.Type.isin(['X', 'Y'])
m.loc[m.idxmax()] = False
df[~m]

  Type  Count
0    A      4
1    X     33
3    E     51
尝试:

将numpy导入为np
df['k']=np.where(df['Type'].isin(['X','Y']),'X',np.arange(len(df)))
res=df.drop\u重复(子集=k')。drop('k',轴=1)
产出:

>res
类型计数
0 A 4
1 X 33
3 E 51

感谢您提供的优雅解决方案!