PythonのPandasの最頻値について

Pandas,イメージ

AI実装検定のご案内

PythonのPandasで「最頻値(mode)」を扱う方法や注意点を、基礎から実践例まで詳しく解説します。

目次

最頻値(mode)とは?

最頻値とは、データの中で 最も頻繁に出現する値 のことです。

統計的には「代表値」の一つで、平均値(mean)や中央値(median)と並んで使われます。

  • 例:データが [1, 2, 2, 3, 4] の場合
    • 平均値 = 2.4
    • 中央値 = 2
    • 最頻値 = 2(最も多く出現している)

Pandasでの最頻値の取得

Pandasでは、Series.mode() または DataFrame.mode() を使います。

Seriesの場合

import pandas as pd

s = pd.Series([1, 2, 2, 3, 4, 4])

# 最頻値を求める
mode_value = s.mode()
print(mode_value)

この場合、24 が同じ頻度で最も多く出現しているため、複数の最頻値が返ってきます。

DataFrameの場合

df = pd.DataFrame({
    "A": [1, 2, 2, 3, 4],
    "B": ["a", "b", "b", "a", "c"]
})

# 列ごとに最頻値を計算
print(df.mode())
  • A2 が最頻値
  • Bab が同頻度で最頻値となるので2行にわたって結果が出ます。

mode() の特徴と注意点

  • 複数の最頻値に対応
    他の統計値(meanやmedian)と違って、最頻値は 複数の値を返すことがある
    Series でも DataFrame でも、戻り値は 複数行のSeriesまたはDataFrame
  • NaNは含めない
    デフォルトでは NaN は計算対象外になります。
  • データ型を問わない
    数値だけでなく、文字列やカテゴリ型の最頻値も取得可能です。

最頻値の頻度も確認したい場合

mode() は値そのものを返しますが、何回出現したか(頻度) を知りたい場合は value_counts() を使うと便利です。

s.value_counts()

この場合、24 が「2回」出ていることがわかります。

もし「最頻値とその出現回数」をまとめたい場合は、以下のようにします。

mode_value = s.mode()
counts = s.value_counts()

for val in mode_value:
    print(f"値: {val}, 出現回数: {counts[val]}")

応用的な使い方

DataFrameで列ごとに最頻値と出現回数を求める

for col in df.columns:
    mode_vals = df[col].mode()
    counts = df[col].value_counts()
    for val in mode_vals:
        print(f"列 {col} - 最頻値: {val}, 出現回数: {counts[val]}")

カテゴリ型(カテゴリカルデータ)の最頻値

アンケート調査などではカテゴリ型(例:Yes/No、男性/女性)がよく出てきます。

mode() を使えば、最も選ばれた回答をすぐに取得可能です。

まとめ

  • Pandasの最頻値は Series.mode() または DataFrame.mode() で取得できる
  • 複数の最頻値がある場合は 全て返ってくる
  • 出現回数を確認したい場合は value_counts() を組み合わせる
  • 数値データだけでなく文字列やカテゴリ型にも使える

以上、PythonのPandasの最頻値についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次