1. はじめに
Pythonでデータ分析を行う際、最もよく登場するデータ(=最頻値)を求めたい場面があります。本記事では、Pythonで最頻値を求める:statistics.mode()について詳しく解説します。
初心者の方でも理解できるように、基本的な使い方から、複数の最頻値があるケースへの対処法、そして実務での応用例まで丁寧に紹介します。
2. statistics.mode()の基本解説
2-1. statistics.mode()とは?
statistics.mode()
は、Pythonの標準ライブラリ statistics
モジュールに含まれる関数で、データの中で最も頻繁に登場する値(最頻値)を返します。
たとえば、[1, 2, 2, 3]
のようなリストがある場合、最頻値は 2
です。
2-2. 基本的な使い方
以下は、statistics.mode()
を使って最頻値を求める基本的なコード例です。
import statistics
data = [1, 2, 2, 3, 4]
mode_value = statistics.mode(data)
print("最頻値は:", mode_value)
実行結果:
最頻値は: 2
このように、リストの中で最も多く現れる値を簡単に取得できます。
3. よくある使い方・応用例
3-1. 複数の最頻値がある場合
statistics.mode()
は、最も頻度の高い値が複数ある場合、最初に出現した最頻値のみを返します。例を見てみましょう。
import statistics
data = [1, 2, 2, 3, 3]
mode_value = statistics.mode(data)
print("最頻値は:", mode_value)
実行結果:
最頻値は: 2
このように、2
と 3
が同じ回数出現していても、最初に現れた 2
が返されます。
3-2. 複数の最頻値を取得したい場合
複数の最頻値を取得したい場合は、collections.Counter
を使って対応するのが実務的です。
from collections import Counter
data = [1, 2, 2, 3, 3]
counter = Counter(data)
max_count = max(counter.values())
modes = [k for k, v in counter.items() if v == max_count]
print("最頻値(複数):", modes)
実行結果:
最頻値(複数): [2, 3]
この方法なら、すべての最頻値をリスト形式で取得できます。
3-3. 実務での活用例:アンケート結果の集計
例えば、商品アンケートで「満足度」を5段階で取得したとき、最も多い回答を求めることができます。
responses = [5, 4, 4, 3, 5, 5, 2, 1, 5, 4, 5]
most_common = statistics.mode(responses)
print("最も多かった満足度:", most_common)
実行結果:
最も多かった満足度: 5
このように、アンケートやユーザー行動データの傾向を把握する用途にぴったりです。
4. 注意点・エラー対策
4-1. 最頻値が存在しない場合
すべての値が1回ずつしか出現しない場合、statistics.mode()
は例外を発生させます。
import statistics
data = [1, 2, 3, 4]
mode_value = statistics.mode(data) # 例外が発生
実行結果:
StatisticsError: no unique mode; found 4 equally common values
このようなエラーが出るため、try-except文での対処がおすすめです。
4-2. 対策:try-exceptでエラー処理
import statistics
data = [1, 2, 3, 4]
try:
mode_value = statistics.mode(data)
print("最頻値は:", mode_value)
except statistics.StatisticsError as e:
print("エラー:", e)
実行結果:
エラー: no unique mode; found 4 equally common values
このようにしておけば、処理の途中でプログラムが止まることを防げます。
5. まとめ
本記事では、Pythonで最頻値を求める方法:statistics.mode() について学びました。
statistics.mode()
を使えば、最頻値が簡単に取得できる- 複数の最頻値がある場合には
collections.Counter
が便利 - 例外処理を入れることで、安定したコードになる
実務でも、アンケート分析・ログ解析・人気投票集計などで活用できます。Python学習中の方はぜひ取り入れてみてください。
補足:データ分析や機械学習を学ぶ上でも、最頻値の理解は欠かせません。基礎からしっかりと身につけていきましょう!