Nullable Boolean 데이터 다루기

Beginner

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

소개

이 랩에서는 Python 의 Pandas 라이브러리에서 제공하는 Nullable Boolean 데이터 유형을 탐구합니다. 이 기능을 인덱싱 및 논리 연산에 사용하는 방법과 'NA' 값이 존재하기 때문에 기존의 부울 연산과 어떻게 다른지 배우게 됩니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접속하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 연산의 유효성 검사는 자동화될 수 없습니다.

학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

필요한 라이브러리 임포트

먼저, 연산을 수행하기 위해 필요한 라이브러리를 임포트해야 합니다.

## pandas 및 numpy 라이브러리 임포트
import pandas as pd
import numpy as np

NA 값을 사용한 인덱싱

Pandas 는 부울 배열에서 NA 값을 사용한 인덱싱을 허용하며, 이는 False로 처리됩니다.

## pandas Series 생성
s = pd.Series([1, 2, 3])

## NA 값을 가진 부울 배열 생성
mask = pd.array([True, False, pd.NA], dtype="boolean")

## 부울 배열로 시리즈 인덱싱
s[mask] ## NA 값은 False 로 처리됨

NA 값을 유지하려면, fillna(True)를 사용하여 수동으로 채울 수 있습니다.

## NA 값을 True 로 채우고 시리즈 인덱싱
s[mask.fillna(True)]

클린 논리 연산 (Kleene logical operations)

Pandas 는 & (and), | (or), ^ (exclusive-or) 와 같은 논리 연산에 대해 클린 논리 (3 값 논리, three-value logic) 를 구현합니다. 이는 np.nan이 논리 연산에서 동작하는 방식과 다릅니다.

## np.nan 과 NA 의 'or' 연산 차이 시연
pd.Series([True, False, np.nan], dtype="object") | True ## np.nan 은 다르게 동작함
pd.Series([True, False, pd.NA], dtype="boolean") | True ## NA 는 클린 논리를 따름

## np.nan 과 NA 의 'and' 연산 차이 시연
pd.Series([True, False, np.nan], dtype="object") & True ## np.nan 은 다르게 동작함
pd.Series([True, False, pd.NA], dtype="boolean") & True ## NA 는 클린 논리를 따름

요약

이 랩에서는 Pandas 의 Nullable Boolean 데이터 타입과 논리 연산에서 NA 값을 처리하기 위한 클린 논리 (Kleene logic) 구현에 대해 배웠습니다. 이 기능은 부울 연산에서 누락된 데이터를 처리하는 보다 직관적인 방법을 제공하며, 이러한 연산에서 np.nan이 동작하는 방식과는 다릅니다.