[英]Filtering data in pandas
我正在使用熊猫0.13.0
我有一个具有250万条记录的数据框(a)
我想排除同时应用两个条件的数百条记录:仅同时满足两个条件的记录。
我想看看在应用这两种条件时我将排除多少条记录:
len(a)
2523250
b=a[(a.cond1=='120.A') & (a.cond2==2012)]
len(b)
6010
但是,当我应用条件以获得最终数据帧时:
c=a[(a.cond1!='120.A') & (a.cond2!=2012)]
len(c)
2214968
在第二种情况下,“&”的工作方式与“或”类似,或者我做错了什么?
回顾De Morgan的法律 。 &
的逻辑取反不只是用!=
切换==
,还必须将&
换成|
,因为您想要cond1 != '120.A'
或 cond2 != 2012
,即,如果!=
条件之一为true, cond2 != 2012
排除一行,因为这会使原始&
语句为False
。
上面@EdChum的注释等同于
c=a[(a.cond1!='120.A') | (a.cond2!=2012)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.