Python|最頻値を求める:statistics.mode()

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

このように、23 が同じ回数出現していても、最初に現れた 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学習中の方はぜひ取り入れてみてください。

補足:データ分析や機械学習を学ぶ上でも、最頻値の理解は欠かせません。基礎からしっかりと身につけていきましょう!

タイトルとURLをコピーしました