PandasのDataFrameには、ユニークな値を数えるための便利な関数があります。それはnunique()
関数です。この関数は、各列または各行のユニークな値を数えることができます。
列ごとのユニークな値の数を数える
以下のようなDataFrameがあるとします。
import pandas as pd
df = pd.DataFrame({
'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'points': [8, 8, 13, 13, 22, 22, 25, 29],
'assists': [5, 8, 7, 9, 12, 9, 9, 4],
'rebounds': [11, 8, 11, 6, 6, 5, 9, 12]
})
各列のユニークな値の数を数えるには、nunique()
関数を使用します。
df.nunique()
出力は次のようになります。
team 2
points 5
assists 5
rebounds 6
dtype: int64
これは、’team’列には2つのユニークな値があり、’points’列には5つのユニークな値があり、’assists’列には5つのユニークな値があり、’rebounds’列には6つのユニークな値があることを示しています。
行ごとのユニークな値の数を数える
各行のユニークな値の数を数えるには、nunique(axis=1)
関数を使用します。
df.nunique(axis=1)
出力は次のようになります。
0 4
1 2
2 4
3 4
4 4
5 4
6 3
7 4
dtype: int64
これは、最初の行には4つのユニークな値があり、2番目の行には2つのユニークな値があり、3番目の行には4つのユニークな値があり、というように続きます。
グループごとのユニークな値の数を数える
グループごとのユニークな値の数を数えるには、groupby()
関数とnunique()
関数を組み合わせて使用します。
df.groupby('team')['points'].nunique()
出力は次のようになります。
team
A 2
B 3
Name: points, dtype: int64
これは、チーム’A’には2つのユニークな’points’の値があり、チーム’B’には3つのユニークな’points’の値があることを示しています。
以上が、Pandasのnunique()
関数の基本的な使い方です。この関数を使うと、データ分析の際にユニークな値の数を簡単に把握することができます。さらに詳しい情報は、公式ドキュメンテーションを参照してください。.