更新:2025/03/01

Python標準ライブラリcollectionsのCounterを使い方!要素の出現回数を手軽に集計

はるか
はるか
今日は、Pythonの標準ライブラリcollectionsのCounterを使う。
ふゅか
ふゅか
Counterクラスは、要素のカウントを簡単に行えるの!実際の使い方を見ていこう♪

Pythonには、データの出現回数を簡単に集計できるCounterという機能が標準で用意されています。例えば、「このリストの中で一番多い要素は?」といった集計が、たった一行のコードで可能になります。

本記事では、Counterの基本的な使い方から、便利なメソッド(most_common・elements・update など)までわかりやすく解説します。データの集計や分析を効率化したい方は、ぜひ最後まで読んでみてください!

1. 要素のカウント

collections.Counterは、Pythonのcollectionsモジュールに含まれるクラスで、要素のカウントを簡単に行うためのツールです。以下にCounterの基本的な使い方を紹介します。

2. 基本的な使い方

2.1. インポート

はるか
はるか
まず、Counterをインポートしよう。

まず、collectionsモジュールからCounterをインポートします。

from collections import Counter

Counterは、リスト、タプル、文字列などのイテラブルを渡すことで、要素の出現回数をカウントします。

2.2. リストの要素のカウント

はるか
はるか
Counterを使うと、リストやタプルなどの要素の出現回数を集計できる。
from collections import Counter

# リストの要素をカウント
data = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
counter = Counter(data)

print(counter)
# 出力: Counter({'apple': 3, 'banana': 2, 'orange': 1})

リストの要素のカウントの結果

2.3. 文字列の文字のカウント

はるか
はるか
文字列の文字をカウントすることもできる。

次の例では、文字列Collectionsに含まれる文字をカウントしています。

# 文字列の文字をカウント
text = "Collections"
counter = Counter(text)

print(counter)
# 出力: Counter({'o': 2, 'l': 2, 'C': 1, 'e': 1, 'c': 1, 't': 1, 'i': 1, 'n': 1, 's': 1})

文字列のカウントの結果

3. メソッドの機能

Counterはさまざまな便利なメソッドを提供しています。

3.1. most_common

はるか
はるか
Counterには便利なメソッドもある。例えばmost_common。

出現回数が多い順に要素を取得します。例では上位2つの要素を取得しています。

# リストの要素をカウント
data = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
counter = Counter(data)

# 上位2つの要素を取得
print(counter.most_common(2))
# 出力: [('apple', 3), ('banana', 2)]

most_common

3.2. elements

はるか
はるか
elementsメソッドで、カウンターに含まれる要素を表示できる。

カウンターに含まれる要素を表示します。

print(list(counter.elements()))
# 出力: ['apple', 'apple', 'apple', 'banana', 'banana', 'orange']

elements

3.3. update

はるか
はるか
updateメソッドでカウンターを更新できる。

次の例では、カウンターに含まれる’banana’, ‘grape’を更新しています。

print("前:",counter)

additional_data = ['banana', 'grape']
counter.update(additional_data)

print("後:",counter)
# 出力: Counter({'apple': 3, 'banana': 3, 'orange': 1, 'grape': 1})

update

3.4. subtract

はるか
はるか
subtractメソッドでカウントを減らせる。

次の例では、カウンターに含まれる’apple’, ‘orange’のカウントを減らしています。

print("前:",counter)

subtract_data = ['apple', 'orange']
counter.subtract(subtract_data)

print("後:",counter)

subtract

3.5. 辞書としての操作

はるか
はるか
最後に、Counterは辞書のように扱うこともできる。

次の例では、appleのカウンターにおける値を5に変更しています。

print("前:",counter)
# 出力: 2

# 要素のカウントを設定
counter['apple'] = 5
print("後:",counter)
# 出力: Counter({'apple': 5, 'banana': 3, 'grape': 1, 'orange': 0})

辞書としての操作

PR