# !pip install -U pandas
データフレームの要素がユニークな個数を取得する方法です。
使用するメソッドはpandas.DataFrameのvalue_countsメソッドです。
ちなみに、このメソッドはPandasのバージョン1.1.0.以降で使用可能です。
Pandasのアップデートはこのコマンドでできます。
import pandas as pd
import numpy as np
df = pd.DataFrame({'col1': [1, 2, 3, 3, 2, 3, 2],
'col2': ['c', 'a', 'a', 'a', 'b', 'a', 'b'],
'col3': [5, 5, 5, 5, 5, 5, 5]})
df
それではこのようなデータフレームを作成します。
df.value_counts()
メソッドを使用してみましょう。
実行します。
行ごとにユニークになる要素と、その個数が表示されました。
デフォルトでは、個数が多い順に表示されます。
df['col2'].value_counts()
このように、シリーズでも使用できます。
df.iloc[0,1] = np.nan
df.iloc[1,1] = np.nan
df
df.value_counts()
なお、欠損値があると、デフォルトでは省かれてしまいます。
df.value_counts(dropna=False)
引数dropnaにFalseを渡すことで、欠損値も含めて数えることができます。
df['col1'].unique()
似たメソッドに、Pandas.Seriesのuniqueメソッドがあります。
これを使用すると、データの重複のない値を取得できます。
関連メソッド
【毎日Python】Pandasでデータフレームから重複のないデータを取得する方法|unique