[英]How to do a complicated filter in python
我正在尝试基于一列进行过滤。 例如,每当我看到它有account_no 1111时,我想删除该事务
输入
Date Trans account_no
2017-12-11 10000 1111
2017-12-11 10000 1112
2017-12-11 10000 1113
2017-12-11 10001 1111
2017-12-11 10002 1113
期望的输出
Date Trans account_no
2017-12-11 10002 1113
编辑:
这与运算符链接不同,因为您正在处理重复/条件过滤器
通过使用issubset
+ transform
df[~df.groupby('Trans').account_no.transform(lambda x : set([1111]).issubset(x))]
Out[1658]:
Date Trans account_no
4 2017-12-11 10002 1113
你可以分两步完成。 首先使用.loc
找到所有具有等于1111的account_no
Trans
值。 然后用isin()
选择所有其他交易
df[~df.Trans.isin(df.loc[df.account_no == 1111,'Trans'])]
Date Trans account_no
4 2017-12-11 10002 1113
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.