过滤pandas中的数据

时间:2014-04-14 10:19:32

标签: python pandas

我正在使用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

在第二种情况下'&'工作就像和' OR' 我做错了什么?

1 个答案:

答案 0 :(得分:3)

回顾De Morgan's laws&的逻辑否定不仅仅是将==!=切换,您还必须将&|交换,因为您希望行{ {1}} cond1 != '120.A',即如果其中一个cond2 != 2012条件为真,则要排除一行,因为这会产生原始!=语句{ {1}}。

@ EdChum上面的评论相当于

&