Работа с типом данных Nullable Boolean

PythonPythonBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы изучим тип данных Nullable Boolean, предоставляемый библиотекой Pandas в Python. Мы узнаем, как использовать эту функцию при индексировании и логических операциях, и в чем она отличается от традиционных булевых операций из-за наличия значений 'NA'.

Советы по использованию ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импорт необходимых библиотек

Сначала нам нужно импортировать необходимые библиотеки для выполнения операций.

## Importing the pandas and numpy libraries
import pandas as pd
import numpy as np

Индексирование с значениями NA

Pandas позволяет индексировать с помощью значений NA в булевом массиве, которые обрабатываются как False.

## Creating a pandas Series
s = pd.Series([1, 2, 3])

## Creating a boolean array with NA values
mask = pd.array([True, False, pd.NA], dtype="boolean")

## Indexing the series with the boolean array
s[mask] ## NA values are treated as False

Если вы хотите сохранить значения NA, вы можете вручную заполнить их fillna(True).

## Filling NA values with True and indexing the series
s[mask.fillna(True)]

Логические операции Клини

Pandas реализует логику Клини (тризначную логику) для логических операций, таких как & (и), | (или) и ^ (исключающее или). Это отличается от того, как np.nan ведет себя в логических операциях.

## Demonstrating the difference in 'or' operations between np.nan and NA
pd.Series([True, False, np.nan], dtype="object") | True ## np.nan behaves differently
pd.Series([True, False, pd.NA], dtype="boolean") | True ## NA follows Kleene logic

## Demonstrating the difference in 'and' operations between np.nan and NA
pd.Series([True, False, np.nan], dtype="object") & True ## np.nan behaves differently
pd.Series([True, False, pd.NA], dtype="boolean") & True ## NA follows Kleene logic

Резюме

В этом практическом занятии мы узнали о типе данных Nullable Boolean в Pandas и о реализации логики Клини для обработки значений NA в логических операциях. Эта функция обеспечивает более интуитивный способ обработки пропущенных данных в булевых операциях и отличается от поведения np.nan в этих операциях.