Trabalhando com Dados Booleanos Nulos

Beginner

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

Introdução

Neste laboratório, exploraremos o tipo de dado Booleano Nulo (Nullable Boolean), fornecido pela biblioteca Pandas em Python. Aprenderemos como usar este recurso em indexação e operações lógicas, e como ele difere das operações booleanas tradicionais devido à presença de valores 'NA'.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importando as Bibliotecas Necessárias

Primeiramente, precisamos importar as bibliotecas necessárias para realizar as operações.

## Importando as bibliotecas pandas e numpy
import pandas as pd
import numpy as np

Indexação com valores NA

O Pandas permite a indexação com valores NA em um array booleano, que são tratados como False.

## Criando uma Series do pandas
s = pd.Series([1, 2, 3])

## Criando um array booleano com valores NA
mask = pd.array([True, False, pd.NA], dtype="boolean")

## Indexando a série com o array booleano
s[mask] ## Valores NA são tratados como False

Se você deseja manter os valores NA, você pode preenchê-los manualmente com fillna(True).

## Preenchendo valores NA com True e indexando a série
s[mask.fillna(True)]

Operações lógicas de Kleene

O Pandas implementa a Lógica de Kleene (lógica de três valores) para operações lógicas como & (and - E), | (or - OU) e ^ (exclusive-or - OU exclusivo). Isso difere de como np.nan se comporta em operações lógicas.

## Demonstrando a diferença nas operações 'or' entre np.nan e NA
pd.Series([True, False, np.nan], dtype="object") | True ## np.nan se comporta de forma diferente
pd.Series([True, False, pd.NA], dtype="boolean") | True ## NA segue a lógica de Kleene

## Demonstrando a diferença nas operações 'and' entre np.nan e NA
pd.Series([True, False, np.nan], dtype="object") & True ## np.nan se comporta de forma diferente
pd.Series([True, False, pd.NA], dtype="boolean") & True ## NA segue a lógica de Kleene

Resumo

Neste laboratório, aprendemos sobre o tipo de dado Booleano Nulo (Nullable Boolean) no Pandas e sua implementação da lógica de Kleene para lidar com valores NA em operações lógicas. Essa funcionalidade oferece uma maneira mais intuitiva de lidar com dados ausentes em operações booleanas, e difere de como np.nan se comporta nessas operações.