【毎日Python】Pythonでデータフレームのユニークな要素とその個数を取得する方法|value_counts

value_cunts
毎日Python/こつこつPython
# !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

【毎日Python】Pythonでデータフレームのユニークな個数を取得する方法|nunique

【毎日Python】Pythonで重複しない要素の集まり(集合)を作成する方法|set