Nullable Boolean データの操作

PythonPythonBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、PythonのPandasライブラリによって提供されるNullable Booleanデータ型を調べます。この機能をインデックス付けや論理演算でどのように使用するか、および「NA」値の存在により従来のブール演算とどのように異なるかを学びます。

VMのヒント

VMの起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、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

まとめ

この実験では、PandasのNullable Booleanデータ型と、論理演算におけるNA値の処理に対するクリーネ論理の実装について学びました。この機能は、ブール演算における欠損データの処理をより直感的な方法で提供し、これらの演算におけるnp.nanの振る舞いとは異なります。