2016-07-29 6 views
2

Ich versuche Zeilen aus meiner Daten herauszufiltern:Pandas: Filtern von Zeilen aus Daten auf mehreren Kriterien unter Verwendung von ~ Maske

cid date catcode  amtsum 
145403 N00000286 2009 F1100 0.500 
199228 N00000286 2009 Z5100 4.000 
485489 N00000286 2007 B4000 3.300 
485547 N00000286 2007 F5100 5.000 
488556 N00000286 2007 E4100 2.500 
490622 N00000286 2007 F1400 5.000 
490924 N00000286 2007 T3100 1.000 
490957 N00000286 2007 K1200 5.000 
495039 N00000286 2007 Z5300 0.051 
496078 N00000286 2008 K1000 13.100 

Hier einige meiner Code ist:

#This is data for Barack Obama that I do not want in my data frame. The 'cid' code identifies Obama, I want to remove Obama for the years specified by 'date'. 
mask = (campaign_contributions['cid'] == 'N00009638') & (campaign_contributions['date'] >= 2007) 
campaign_contributions = campaign_contributions[~mask] 

#This is data for John McCain that I do not want in my data frame. The 'cid' code identifies McCain, I want to remove McCain for the years specified by 'date'. 
mask1 = (campaign_contributions['cid'] == 'N00006424') & (campaign_contributions['date'] == 2008) & (campaign_contributions['date'] == 2007) 
campaign_contributions = campaign_contributions[~mask1] 

#This is data for Bob Barr that I do not want in my data frame. The 'cid' code identifies Barr, I want to remove Barr for the years specified by 'date'. 
mask2 = (campaign_contributions['cid'] == 'N00002526') & (campaign_contributions['date'] == 2008) & (campaign_contributions['date'] == 2007) 
campaign_contributions = campaign_contributions[~mask2] 

#This is data for Ralph Nader that I do not want in my data frame.The 'cid' code identifies Nader, I want to remove Nader for the years specified by 'date'. 
mask3 = (campaign_contributions['cid'] == 'N00000086') & (campaign_contributions['date'] == 2008) & (campaign_contributions['date'] == 2007) 
campaign_contributions = campaign_contributions[~mask3] 

Der Code oben stellt die Zeilen dar, die ich herausfiltern möchte. Ich denke, dass ich das ~ Mask Tool nicht richtig benutze. Idealerweise ist mein Endprojekt der Datenrahmen ohne die oben angegebenen Zeilen, d.h. ich möchte diese Information nicht in meinem Datenrahmen haben:

Kann mich jemand in die richtige Richtung lenken?

+0

Ich denke, Sie verwenden es auch falsch. Es ist schwierig, falschen Code zu verwenden, um Ihre Absicht abzuleiten. Könnten Sie verbalisieren, was Sie auch tun möchten? – piRSquared

Antwort

4

Sie können den bitweisen Operator & verwenden, um Masken zu kombinieren. Es könnte wie folgt aussehen:

campaign_contributions = campaign_contributions[~mask & ~mask1 & ~mask2 & ~mask3] 

Alternativ können Sie auch | der oder Operator zu tun:

campaign_contributions = campaign_contributions[~(mask | mask1 | mask2 | mask3)] 

Sie finden weitere Informationen in this post finden.

Verwandte Themen