[Python] Logischer Operator für boolesche Indizierung in Pandas


Answers

Question

Ich arbeite mit booleschen Index in Pandas. Die Frage ist warum die Aussage:

a[(a['some_column']==some_number) & (a['some_other_column']==some_other_number)]

funktioniert gut, während

a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)]

existiert mit Fehler?

Beispiel:

a=pd.DataFrame({'x':[1,1],'y':[10,20]})

In: a[(a['x']==1)&(a['y']==10)]
Out:    x   y
     0  1  10

In: a[(a['x']==1) and (a['y']==10)]
Out: ValueError: The truth value of an array with more than one element is ambiguous.     Use a.any() or a.all()



Links