2016-08-16 7 views
4

条件A または条件Bを満たすpandas.DataFrameをスライスしたいと思います。ほとんどの検索結果では、と ""を使用してデータフレームをスライスする方法のみが示されています。だから、"または"演算子を(AとB)を(AではなくBではない)に変換せずに使うことができるのだろうか?時には、必要な条件がたくさんあるため、変換が面倒なことがあります。disjunction文(論理 "or")でpandas DataFrameをスライスする方法は?

私が使用してみました:

df[(df['c1']==x1) or (df['c2']==x2)] 

が、それは動作しません。あなたはandについては|

df[(df['c1'] == x1) | (df['c2'] == x2)] 

論理や記号を使用する必要が

+1

を使用する必要がありますスライシングが動作する方法は、それが各セルを反復処理し、真実をチェックします論理的なステートメントは[]内に入る可能性があります。 –

答えて

5

、あなたが&

df[(df['c1'] == x1) & (df['c2'] == x2)] 
+1

実際にはビットまたはシンボルですが、論理的な 'または'は短絡の問題により過負荷にならないため、代わりに '|'を使用しなければなりません。 – user2357112

関連する問題