15

Q はこれに似ています: 値のリストを使用して、pandas データフレームから行を選択します

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)]
4

1 に答える 1

26

ほとんどできましたが、「ビットごとの 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
于 2012-12-18T16:18:48.200 に答える