2016-07-29 6 views
2

を使用して、複数の基準に基づいたデータからフィルタリングの行は、私は私のデータから行をフィルタリングしようとしています:コードパンダ:〜マスク

#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] 

:ここ

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 

は、私のコードの一部であります上記の行は、除外したい行を表します。私は〜マスクツールを不適切に使用していると思います。理想的には、私の最終プロジェクトは上記の行を持たないデータフレームになります。つまり、データフレームにこの情報を入れたくありません:

誰かが私にこの方向を向けることができますか?

+0

私はあなたもそれを間違って使用していると思います。あなたの意図を推測するのに間違ったコードを使用するのは難しいです。あなたはまた何をしようとしているのか言葉で表現できますか? – piRSquared

答えて

4

ビット単位の演算子&を使用してマスクを組み合わせることができます。

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

また、あなたもやってたりオペレータ|を使用することができます:

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

あなたはthis postでより多くの情報を見つけることができますそれは次のようになります。