Nullable 整数の扱い方

Beginner

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

はじめに

この実験では、欠損値を含む可能性のある整数データを処理する効率的な方法である pandas の nullable 整数データ型をどのように使用するかを検討します。このデータ型を使用して配列を構築し、演算を行い、欠損値を効果的に処理する方法を学びます。

VM のヒント

VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。

時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、演算の検証は自動化できません。

学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

これは Guided Lab です。学習と実践を支援するためのステップバイステップの指示を提供します。各ステップを完了し、実践的な経験を積むために、指示に注意深く従ってください。過去のデータによると、この 初級 レベルの実験の完了率は 100%です。学習者から 100% の好評価を得ています。

nullable 整数配列の構築

Pandas は、nullable 整数の配列を作成するためのIntegerArrayクラスを提供しています。まずはIntegerArrayを作成してみましょう。

## 必要なライブラリをインポート
import pandas as pd
import numpy as np

## 欠損値を含む IntegerArray を作成
arr = pd.array([1, 2, None], dtype=pd.Int64Dtype())
## 出力:<IntegerArray>
## [1, 2, <NA>]
## 長さ:3, dtype: Int64

配列を作成する際には、データ型を指定するときに文字列エイリアス「Int64」を使用することもできます。すべての NA に似た値はpandas.NAに置き換えられます。

## 文字列エイリアス "Int64" を使用して IntegerArray を作成
arr = pd.array([1, 2, np.nan], dtype="Int64")
## 出力:<IntegerArray>
## [1, 2, <NA>]
## 長さ:3, dtype: Int64

DataFrame または Series に IntegerArray を格納する

IntegerArrayを作成したら、それをDataFrameまたはSeriesに格納することができます。作成したIntegerArrayからSeriesを作成してみましょう。

## IntegerArray から Series を作成
series = pd.Series(arr)

nullable 整数配列を使った演算

nullable 整数配列を使って、算術演算、比較、スライシングなど、様々な演算を行うことができます。

## nullable 整数型の Series を作成
s = pd.Series([1, 2, None], dtype="Int64")

## 算術演算を行う
s_plus_one = s + 1 ## Series の各要素に 1 を加える

## 比較を行う
comparison = s == 1 ## Series の各要素が 1 と等しいかどうかを確認する

## スライシング演算を行う
sliced = s.iloc[1:3] ## Series の 2 番目と 3 番目の要素を選択する

pandas.NA を使った欠損値の処理

IntegerArrayクラスは、スカラーの欠損値としてpandas.NAを使用します。欠損している単一の要素をスライスすると、pandas.NAが返されます。

## 欠損値を持つ IntegerArray を作成
a = pd.array([1, None], dtype="Int64")

## 欠損値である 2 番目の要素をスライスする
missing_value = a[1]
## 出力:<NA>

まとめ

この実験では、pandas における nullable 整数型データの扱い方について説明しました。これには、配列の構築方法、DataFrameまたはSeriesに格納する方法、演算の実行方法、および欠損値の処理方法が含まれます。nullable 整数型データを使用することで、欠損値を持つ整数データをより効率的に扱うことができます。