Trabajando con datos booleanos anulables

Beginner

This tutorial is from open-source community. Access the source code

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.