はじめに
この実験では、欠損値を含む可能性のある整数データを処理する効率的な方法である pandas の nullable 整数データ型をどのように使用するかを検討します。このデータ型を使用して配列を構築し、演算を行い、欠損値を効果的に処理する方法を学びます。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、演算の検証は自動化できません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
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 整数型データを使用することで、欠損値を持つ整数データをより効率的に扱うことができます。