2012-12-18 7 views
12

Qは次のようになります。私は2列のいずれかの値がリストにある場合DATAFRAMEしたい use a list of values to select rows from a pandas dataframeパンダを使用して、データフレームから2つの異なる列を使用して行を選択しますか?

。 戻り両方の列(#1、#4の結果を組み合わせる

import numpy as np 
from pandas import * 


d = {'one' : [1., 2., 3., 4] ,'two' : [5., 6., 7., 8.],'three' : [9., 16., 17., 18.]} 

df = DataFrame(d) 
print df 

checkList = [1,7] 

print df[df.one == 1 ]#1 
print df[df.one == 7 ]#2 
print df[df.two == 1 ]#3 
print df[df.two == 7 ]#4 

#print df[df.one == 1 or df.two ==7] 
print df[df.one.isin(checkList)] 

答えて

23

あなたはほとんどそれを持っていましたが、あなたは"bitwise or"演算子を使用する必要があります。

In [6]: df[(df.one == 1) | (df.two == 7)] 
Out[6]: 
    one three two 
0 1  9 5 
2 3  17 7 

In [7]: df[(df.one.isin(checkList)) | (df.two.isin(checkList))] 
Out[7]: 
    one three two 
0 1  9 5 
2 3  17 7 
関連する問題