Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

340
Visualizações
¿Por qué los pandas "Ninguno | Verdadero" devuelven Falso cuando Python "Ninguno o Verdadero" devuelve Verdadero?

En Python puro, None or True devuelve True .
Sin embargo, con pandas cuando estoy haciendo un | entre dos series que contienen valores Ninguno, los resultados no son los que esperaba:

 >>> df.to_dict() {'buybox': {0: None}, 'buybox_y': {0: True}} >>> df buybox buybox_y 0 None True >>> df['buybox'] = (df['buybox'] | df['buybox_y']) >>> df buybox buybox_y 0 False True

Resultado Esperado:

 >>> df buybox buybox_y 0 True True

Obtengo el resultado que quiero al aplicar la operación OR dos veces, pero no entiendo por qué debo hacer esto.

No estoy buscando una solución alternativa (lo tengo aplicando df['buybox'] = (df['buybox'] | df['buybox_y']) dos veces seguidas) pero una explicación, por lo tanto, el 'por qué' En el título.

over 4 years ago · Hanz Gallego
2 Respostas
Responde à pergunta

0

pandas | El operador no se basa en Python or expression y se comporta de manera diferente.

Si ambos operandos son booleanos, el resultado se define matemáticamente, y lo mismo para Python y Pandas.

Pero en su caso, la serie "buybox" es de tipo object y "buybox_y" es bool . En este caso Pandas | El operador no es conmutativo :

  • el operando derecho está forzado a booleano
  • luego bitwise or se intenta
    • None | True es una operación no válida, lo que da como resultado None
  • y el resultado es forzado a booleano

Por lo tanto,

 >>> df['buybox'] | df['buybox_y'] 0 False >>> df['buybox_y'] | df['buybox'] 0 True

Para obtener resultados predecibles, puede limpiar los datos y convertirlos en tipo booleano con Pandas astype antes de intentar operaciones booleanas.

over 4 years ago · Hanz Gallego Relatório

0

Para objetos booleanos (es decir, Py_True y Py_False), el código entrará en la rama de procesamiento rápido; para otros objetos, se usará PyObject_IsTrue() para calcular un valor de tipo int.

Durante el proceso de cálculo, la función PyObject_IsTrue() obtendrá a su vez los valores de nb_bool, mp_length y sq_length, que deberían corresponder a los valores de retorno de los dos métodos mágicos bool () y len ().

over 4 years ago · Hanz Gallego Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda