Introducción
En este laboratorio, exploraremos el tipo de datos booleano anulable, proporcionado por la biblioteca Pandas en Python. Aprenderemos cómo usar esta característica en la indexación y las operaciones lógicas, y cómo difiere de las operaciones booleanas tradicionales debido a la presencia de valores 'NA'.
Consejos sobre la VM
Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.
A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.
Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje su retroalimentación después de la sesión y resolveremos rápidamente el problema para usted.
Importando las bibliotecas necesarias
Primero, debemos importar las bibliotecas necesarias para realizar las operaciones.
## Importando las bibliotecas pandas y numpy
import pandas as pd
import numpy as np
Indexación con valores NA
Pandas permite la indexación con valores NA en una matriz booleana, que se tratan como False.
## Creando una Serie de pandas
s = pd.Series([1, 2, 3])
## Creando una matriz booleana con valores NA
mask = pd.array([True, False, pd.NA], dtype="boolean")
## Indexando la serie con la matriz booleana
s[mask] ## Los valores NA se tratan como False
Si desea conservar los valores NA, puede rellenarlos manualmente con fillna(True).
## Rellenando los valores NA con True e indexando la serie
s[mask.fillna(True)]
Operaciones lógicas de Kleene
Pandas implementa la Lógica de Kleene (lógica de tres valores) para operaciones lógicas como & (y), | (o) y ^ (o exclusivo). Esto difiere de cómo se comporta np.nan en las operaciones lógicas.
## Demostrando la diferencia en las operaciones 'o' entre np.nan y NA
pd.Series([True, False, np.nan], dtype="object") | True ## np.nan se comporta de manera diferente
pd.Series([True, False, pd.NA], dtype="boolean") | True ## NA sigue la lógica de Kleene
## Demostrando la diferencia en las operaciones 'y' entre np.nan y NA
pd.Series([True, False, np.nan], dtype="object") & True ## np.nan se comporta de manera diferente
pd.Series([True, False, pd.NA], dtype="boolean") & True ## NA sigue la lógica de Kleene
Resumen
En este laboratorio, aprendimos sobre el tipo de datos booleano anulable en Pandas y su implementación de la lógica de Kleene para manejar valores NA en operaciones lógicas. Esta característica ofrece una manera más intuitiva de manejar datos faltantes en operaciones booleanas y difiere de cómo se comporta np.nan en estas operaciones.