2012-12-18 16 views
12

Q ähnelt dies: use a list of values to select rows from a pandas dataframeMit Pandas Zeilen mit zwei verschiedenen Spalten aus Dataframe auswählen?

ich, wenn entweder Wert in zwei Spalten auf Datenrahmen wollen in einer Liste enthalten sind. . Zurück beide Spalten (kombinieren Ergebnisse von # 1 und # 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)] 

Antwort

23

Sie haben es fast, aber Sie haben zu verwenden, die "bitwise or" Betreiber:

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 
Verwandte Themen