Q é semelhante a isto: use uma lista de valores para selecionar linhas de um dataframe de pandas
Eu quero dataframe se qualquer valor em duas colunas estiver em uma lista. Retorne as duas colunas (combine os resultados de # 1 e # 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)]
Respostas:
24 para resposta № 1Você quase teve, mas você tem que usar o "bit a bit ou" operador:
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