PythonのPandasのvalue_counts関数について

Python,イメージ

AI実装検定のご案内

PythonのPandasライブラリには、データ分析に便利な関数がたくさんありますが、その中でも value_counts() は「カテゴリデータの集計」にとてもよく使われる強力な関数です。

ここでは基礎から応用まで体系的に解説します。

目次

基本的な役割

Series.value_counts()ユニークな値の出現回数をカウントする関数です。

例えば、次のように使います。

import pandas as pd

data = pd.Series(["apple", "banana", "apple", "orange", "banana", "apple"])
print(data.value_counts())

それぞれの要素が何回登場したかをカウントしてくれます。

デフォルトでは降順(出現回数が多い順)に並びます。

主な引数とオプション

normalize

出現回数ではなく割合(相対度数)を返すオプションです。

data.value_counts(normalize=True)

sort

デフォルトは True で出現回数順にソートされます。

sort=False にすると出現順(ユニーク値の順番)のままになります。

data.value_counts(sort=False)

ascending

昇順に並べたい場合は ascending=True

data.value_counts(ascending=True)

bins

数値データを階級に分けてカウントします(ヒストグラムのような機能)。

num_data = pd.Series([1, 2, 2, 3, 4, 5, 6, 7, 8, 9])
print(num_data.value_counts(bins=3))

dropna

デフォルトは True で欠損値(NaN)は無視されます。

dropna=False にすると欠損値もカウント対象になります。

data_with_nan = pd.Series(["apple", "banana", None, "apple"])
print(data_with_nan.value_counts(dropna=False))

DataFrameでの利用

value_counts()Series専用関数ですが、DataFrameにも使えるようになりました(Pandas 1.1以降)。

df = pd.DataFrame({
    "fruit": ["apple", "banana", "apple", "orange"],
    "color": ["red", "yellow", "red", "orange"]
})

print(df.value_counts())

複数列の組み合わせが一意のキーになってカウントされます。

実務でよく使う活用例

頻出カテゴリの確認

顧客データやアンケート集計で「人気商品」や「回答の多い選択肢」を確認する。

df["fruit"].value_counts().head(3)  # 上位3カテゴリ

比率ベースでの可視化

マーケティング分析では割合が重要。

割合を棒グラフにして可視化すると便利です。

import matplotlib.pyplot as plt

df["fruit"].value_counts(normalize=True).plot(kind="bar")
plt.show()

データクレンジングのチェック

  • 欠損値(NaN)の確認
  • 外れ値や予想外のカテゴリを検出
df["fruit"].value_counts(dropna=False)

groupbyとの違い

groupby().size() との混同がよくあります。違いは次の通りです。

  • value_counts()Series単体に対して頻度集計(シンプルで速い)
  • groupby().size()DataFrame全体に対して集計(柔軟性が高い)
df.groupby("fruit").size()

出力は df["fruit"].value_counts() と同じになりますが、groupby は複数列で集計できるので用途によって使い分けます。

まとめ

  • value_counts()Seriesの値の出現頻度をカウントする関数
  • normalize で割合、bins で数値の階級化、dropna で欠損値も扱える
  • DataFrameにも使える(複数列の組み合わせをカウント)
  • 頻度分析・比率可視化・データクレンジングに非常に有用

以上、PythonのPandasのvalue_counts関数についてでした。

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

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