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