/ / Usando pandas para selecionar linhas usando duas colunas diferentes do dataframe? - python, pandas

Usando pandas para selecionar linhas usando duas colunas diferentes do dataframe? - python, pandas

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 № 1

Você 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