顧客などを識別するための番号などが割り振られていない場合、顧客名などの列をもとに一意な番号を付与したいことがあります。
Exploratoryでは、dense_rank関数を使用してグループごとに一意な番号を割り当てることができます。この機能は、顧客データや注文データなどで、特定の列の値に基づいて連番を付ける際に非常に有用です。
データセット内で、特定の列(例:顧客名)に基づいて一意な番号を割り当てたい場合があります。しかし、単純に番号を割り当てると、同じ名前の顧客が複数の国に存在する場合など、より詳細な区別が必要な場合に問題が生じる可能性があります。
Exploratoryのdense_rank関数を使用して、グループごとに一意な番号を割り当てることができます。さらに、複数の列を組み合わせることで、より詳細な区別が可能になります。
今回は顧客ごとの注文データを使用します。顧客番号のデータはないため、「顧客名」といった列をもとに一意な番号をつけていきたいとします。
基本的な番号の割り当て
対象の列(例:顧客名)の列ヘッダメニューから「計算を作成」の「標準」を選択します。
計算エディタに以下のように入力します。
dense_rank(顧客名)
実行することで、顧客名を元にして一意な番号を持った列を作ることができました。
dense_rank関数は同じ値に対して同じ順位を割り当て、次の異なる値に対して連続する順位を割り当てるようになっています。
複数の列を組み合わせた詳細な番号の割り当て
顧客名だけでは、異なる国に住む顧客が同じ番号になってしまいます。そのため、顧客をより細かく識別するためにも、国の情報も追加したいとします。
組み合わせたい列(例:顧客名と国)を選択します。Windowsの場合はCtrlキー、Macの場合はCommandキーを押すことで複数選択ができます。
いずれかの列のヘッダメニューから「複数の列をつなげる(Unite)」を選択します。
列には「顧客名」と「国」が割り当てられています。新しい列名(例:「顧客名_国」)を入力して「実行」をクリックします。
作成された新しい列に対して、先ほどと同様にdense_rank関数を使用して一意な番号を持った列を作ります。
この方法により、同じ名前の顧客でも国が異なる場合には別の番号が割り当てられ、より詳細な区別が可能になります。