【毎日Python】Pythonでデータフレームの行・列の最頻値を取得する方法|DataFrame.mode

【毎日Python】Pythonでデータフレームの行・列の最頻値を取得する方法|DataFrame.mode
import pandas as pd
df = pd.DataFrame({'A店': ['apple', 'banana', 'apple', 'apple', 'banana'],
                   'B店': ['banana', 'apple', 'strawberry', 'apple', 'banana'],
                   'C店': ['apple', 'apple', 'banana', 'apple', 'banana']},
                  index = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'])
df

Pythonでデータフレームから最頻値を取得する方法です。
使用するのは、PythonのPandasライブラリのmodeメソッドです。
最頻値とは、データの中で最も登場回数の多い値のことを指します。
シリーズでも実行できますが、今回はこのようなデータフレームを用意します。

df.mode()

デフォルトでは列ごとの最頻値が取得できます。
実行します。
店ごとの最頻値が取得できました。
最頻値が二つある列は二つ表示され、他の列はNaNと表示されます。

df.mode().count()

次に、最頻値の個数を取得してみましょう。
個数を確認するにはcountメソッドを使用します。
実行します。
店ごとの最頻値の個数をシリーズで取得できました。

df.mode(axis=1)

次に、行ごとの最頻値を取得してみましょう。
行の場合は、引数にaxis=1と指定します。
実行します。
曜日ごとの最頻値を取得できました。

df.mode(axis=1).count(axis=1)

最後に、行ごとの最頻値の個数を取得してみましょう。
modeとcount両方の引数にaxis=1を指定して実行します。
曜日ごとの最頻値の個数をシリーズで取得できました。

df.mode(axis=1).count(axis=1).tolist()

関連メソッド

【毎日Python】Pythonでデータフレームの要素の個数を取得する方法|count

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

【毎日Python】Pythonでデータフレームの行列の平均を計算する方法|DataFrame.mean