カテゴリデータを任意の順番で並べたい

カテゴリ型の列に順番を定義し、任意の順に並べる方法を解説します。

説明

カテゴリ型は、値を文字列として保持するための列型ですが、 内部的には

  • カテゴリ ID を値に持つ数値列
  • カテゴリ ID と実際の文字列の対応表

の 2 つの配列で構成されています。

definition.png

このカテゴリ ID は「データにおける出現順 (0 始まり) 」で定義されます。 また、内部 ID の割り当て順番は「カテゴリ順」と呼ばれます。

カテゴリ順を変更したい場合、「カテゴリ並替」アイコンを 利用することで、順番を定義し直すことができます。

カテゴリ順を変更することで、グラフ上のデータの並び順を指定することが可能です。

使い方

  1. データに カテゴリ並替 アイコン を接続します。ここでは「顧客データ.dft」を使用しています。 このデータは、共有ワークスペース > サンプル > Alkano > 顧客データ.dft にあります。

data.png

  1. パラメータ設定画面の「対象列」に、カテゴリ型の列を選択します。

  2. カテゴリ順序のテーブルで順序づけをします。 図のように、初期状態では値が出現した順でカテゴリ順が定義されています。 これを「10代」「20代」「30代」「40代」の順に並べ替えます。

icon.png

  1. アイコンを実行すると、並べ替えた順番でカテゴリ順が変更されたデータが出力されます。 内部的にはカテゴリ順が変更されていますが、出力テーブルの見かけは入力テーブルと同じです。

  2. 試しに棒グラフを描いて確認してみます。 図のように、「カテゴリ並替」アイコンのデータでは、指定した順番で棒グラフが表示できています。

graph.png

分析への応用

データを「XS, S, M, L, XL」のようなサイズ順に並べたい場合や、都道府県順に並べたい場合などに利用できます。

なお、今回の「年代」のようなデータの場合、 文字列としての「昇順」でソートすることでも、 同じように「10代」「20代」「30代」「40代」の順で並べることは可能です。

OnePoint

カテゴリ順を変更することで、

  • ソートアイコンの「カテゴリ順」
  • 可視化機能でテーブルをソートする際の「カテゴリ順」
  • 可視化機能でグラフの並び順を指定する際の「カテゴリ順」

における順序を変更する事ができます。

なお、Python スクリプトを記述することに慣れている場合は、 MSI DataFrame の reorder_categories 関数でも同様の結果を得ることができます。

扱うカテゴリの数が多く、アイコン上での設定が大変に感じる場合には、 「MSI DataFrame リファレンスマニュアル」をご参照の上、 Python スクリプトアイコンで処理を記述することもご検討ください。

参考

  • MSI DataFrame ユーザーズガイド
    • 3.1.4. 列型
  • MSIP リファレンスマニュアル
    • 3.10.6. カテゴリ並替