2012-12-18 12 views
12

Q jest podobny do tego: use a list of values to select rows from a pandas dataframeUżywanie pand do wybierania wierszy za pomocą dwóch różnych kolumn z ramki danych?

Chcę dataframe jeśli jedna wartość w dwóch kolumnach są w postaci listy. . Powrót obie kolumny (łączenie wyników # 1 i # 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)] 

Odpowiedz

23

Prawie miał, ale trzeba użyć operatora "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 
Powiązane problemy