1. データ分析の事前準備の第1歩

さて、コンペなどでデータ・セットが提供されたとします。そして変数の尺度についての情報が提供されていないものとします。

このような場合、私はじめに各変数のCardinalityを確認します。

そして

  1. cardinalityが大きい場合は数値変数

  2. cardinalityが小さい場合はカテゴリ変数

とあたりを付けます。

cardinalityが小さい場合はさらに度数分布を確認して要素を個別に確認します。

今回はpandasでCardinalityを調べる方法を共有します。

2. pandasでCardinalityを調べる方法

簡単です。pandas.DataFrame.nunique を使用します。

使用例
data = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
print(data.head())
data.nunique()

#  output
# sepal_length    35
# sepal_width     23
# petal_length    43
# petal_width     22
# species          3
# dtype: int64

上記の結果の場合、Cardinalityが小さい変数はspeciesだけなのでspeciesの度数分布を確認することになります。

3. まとめ

今回はpd.DataFrameのCadinalityを調べるためにnunique関数を紹介しました。実装はとても簡単です。

結果としての実装方法は簡単ですが、この実装方法を調べるのは少し大変でした。

私はまず「pandas cardinality」というキーワードで調べましたが日本語のページは数少ない。このような局面でcardinalityという言葉が一般的ではないのかもしれませんが英語ではそれなりの情報量があるのでレアケースというほどのものではないと思います。

実際に私はデータ分析の第一歩としてCardinalityを調べることが多い。

日本語の情報は豊富ではないけど私にとって頻出実装ということで今回情報をまとめてみました。

今回は以上です。