Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Pandas入門:CategoricalIndexのカテゴリを順序なし(unordered)に設定する方法

PandasのCategoricalIndexでカテゴリを順序なし(unordered)に設定するには、as_unordered()メソッドを使用します。このメソッドを呼び出すことで、順序付き(ordered=True)として定義されていたカテゴリカルデータを、簡単に順序なしの状態へ変換できます。

必要なライブラリのインポート

まず、必要なライブラリをインポートします。

import pandas as pd

順序付きCategoricalIndexの作成

「categories」パラメータを使ってカテゴリを設定し、「ordered」パラメータにTrueを指定することで、順序付きのカテゴリカルインデックスを作成します。

catIndex = pd.CategoricalIndex(["p", "q", "r", "s", "p", "q", "r", "s"], ordered=True, categories=["p", "q", "r", "s"])

カテゴリを順序なしに変更する

次に、as_unordered()メソッドを呼び出して、カテゴリを順序なしに設定します。

print("\nCategoricalIndex unordered...\n", catIndex.as_unordered())

完全なサンプルコード

以下に、ここまでの手順をまとめたコード全体を示します。

import pandas as pd

# 「categories」パラメータでカテゴリを設定
# 「ordered」パラメータにTrueを指定して、順序付きとして扱う
catIndex = pd.CategoricalIndex(["p", "q", "r", "s", "p", "q", "r", "s"], ordered=True, categories=["p", "q", "r", "s"])

# CategoricalIndexを表示
print("CategoricalIndex...\n", catIndex)

# カテゴリを取得して表示
print("\nDisplaying Categories from CategoricalIndex...\n", catIndex.categories)

# カテゴリを順序なしに設定
print("\nCategoricalIndex unordered...\n", catIndex.as_unordered())

実行結果

上記のコードを実行すると、以下のような出力が得られます。

CategoricalIndex...
CategoricalIndex(['p', 'q', 'r', 's', 'p', 'q', 'r', 's'], categories=['p', 'q', 'r', 's'], ordered=True, dtype='category')

Displaying Categories from CategoricalIndex...
Index(['p', 'q', 'r', 's'], dtype='object')

CategoricalIndex unordered...
CategoricalIndex(['p', 'q', 'r', 's', 'p', 'q', 'r', 's'], categories=['p', 'q', 'r', 's'], ordered=False, dtype='category')

ポイント解説

実行結果を見ると、最初は「ordered=True」と表示されていたCategoricalIndexが、as_unordered()メソッドの適用後には「ordered=False」に変わっていることが確認できます。なお、この操作によってカテゴリ自体の値や並び順が変わるわけではなく、カテゴリ間に意味的な大小関係(順序)があるかどうかの属性のみが変更されます。逆に、順序なしのカテゴリを順序付きにしたい場合は、as_ordered()メソッドを使用します。

  1. Python Pandas入門:putmask()でマスク条件に基づく新しいインデックスを生成する方法

    はじめにマスク(条件式)を使って値を置き換えた新しいインデックスを取得したい場合は、Pandasのindex.putmask()メソッドを使用します。このメソッドは、指定した条件がTrueとなる要素を、別の値で置き換えた新しいIndexオブジェクトを返します。まず、必要なライブラリをインポートしましょう。import pandas as pdPandasインデックスの作成次に、数値を含むPandasインデックスを作成します。index = pd.Index([5, 65, 10, 17, 75, 40])作成したインデックスを表示して確認してみましょう。print(Pandas Index..

  2. 【Python】Pandasのデータをセット(set)に型キャストする方法

    Pandasの列データをセット(set)に変換したい場合は、Python組み込みのset()関数を使用します。セットに変換することで重複した値が自動的に除去され、和集合や積集合などの集合演算も簡単に行えるようになります。 まずは、サンプルとして使用するDataFrameを作成しましょう。 dataFrame = pd.DataFrame( { EmpName: [John, Ted, Jacob, Scarlett, Ami, Ted, Scarlett], Zone: [North, South, South, East, West, East, North