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
感谢您提供的优雅解决方案!