OID,TYPE,ResponseType
100,mod,ok
100,mod,ok
101,mod,ok
101,mod,ok
101,mod,ok
101,mod,ok
101,mod,no
102,mod,ok
102,mod,ok2
103,mod,ok
103,mod,no2
我希望删除所有响应为no或no2的OID。
我尝试过:
dfnew = df.groupby('OID').filter(lambda x: ((x['ResponseType']=='no') | x['ResponseType']=='no2')).any() )
但我得到了SyntaxError:无效的语法
另一种方法可能是创建一个包含所有要过滤的OID的set
,然后使用它们来过滤df。该df有5000000行!
期望输出
OID,TYPE,ResponseType
100,mod,ok
100,mod,ok
102,mod,ok
102,mod,ok2
布尔索引
-df[~df['OID'].isin(oids)]
- jezraelTrue
和False
值,并通过它进行过滤。 - jezrael