Pandas でのデータ値の因数分解

Preet Sanghavi 2023年6月21日
Pandas でのデータ値の因数分解

このチュートリアルでは、Pandas で因数分解する方法を学習します。 pandas.factorize() 関数を使用してタスクを実行します。

pandas.factorize() メソッドは、さまざまな値を認識することで、配列の数値表現を取得するのに役立ちます。

まず、Pandas および numpy ライブラリとその他の必要なライブラリをインポートします。

import numpy as np
import pandas as pd
from pandas.api.types import CategoricalDtype

Pandas で pandas.factorize() 関数を使用する

次に、文字を含むリストを factorize() 関数に渡します。これにより、ラベルと一意の値が返されます。 ラベルと一意の値を別々に出力します。

labels, uniques = pd.factorize(["b", "d", "d", "c", "a", "c", "a", "b"])

上記のコードは、文字の数値表現と一意の値のリストを返します。

以下のコードを使用して出力を見てみましょう。

print("Numeric Representation : \n", labels)
print("Unique Values : \n", uniques)
Numeric Representation :
 [0 1 1 2 3 2 3 0]
Unique Values :
 ['b' 'd' 'c' 'a']

以下のコードを使用してアルファベットを並べ替えることもできます。

labels, uniques = pd.factorize(["b", "d", "d", "c", "a", "c", "a", "b"], sort=True)

上記の修正に対して、以下の出力が得られます。

Numeric Representation :
 [1 3 3 2 0 2 0 1]
Unique Values :
 ['a' 'b' 'c' 'd']

カテゴリを使用してデータ値をカテゴリに分割することもできます。この場合、一意の値は異なります。 この目的のために、pd.Categorical() 関数を使用してデータ値を分割します。

a = pd.Categorical(["a", "a", "c"], categories=["a", "b", "c"])

label3, unique3 = pd.factorize(a)

上記のコードの出力を見てみましょう。

Numeric Representation :
 [0 0 1]
Unique Values :
 ['a', 'c']
Categories (3, object): ['a', 'b', 'c']

上記の出力では、一意の値のリストに一意の値のみが含まれていることがわかります。

したがって、次のアプローチを使用して、Pandas を使用してデータ値を因数分解できます。

著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub