Pandas opérateur logique et ne fonctionne pas, mais « et » œuvres

voix
0

J'ai problème avec les opérateurs logiques pandas géants. Si je tente:

list1=['x','y']
if st1=='A' & str2 not in list1: #do stuff

Je reçois:

unsupported operand type(s) for &: 'str' and 'bool', u'occurred at index 0

Mais cela fonctionne: Pourquoi?

if st1=='A' and str2 not in list1: #do stuff

Tout ce que je ne faisais que le changement et à et.

Créé 27/11/2018 à 15:18
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
3

&et andne sont pas la même chose en Python - &est un opérateur de bits, andest un opérateur logique. Voir les réponses précédentes ici et ici , et Wikipedia la page sur les opérations de manipulation de bits.

En pandas géants vous pouvez utiliser &pour les opérations logiques lors de la sélection des sous - ensembles de DataFrames, par exemple:

df = pd.DataFrame(data={"col1":[1,2,3], "col2":[2,3,4]})
df[(df["col1"]>1) & (df["col2"]<4)] # Selects second row based on boolean criteria
Créé 27/11/2018 à 15:50
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more