更新: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)]
3.2. elements

はるか
elementsメソッドで、カウンターに含まれる要素を表示できる。
カウンターに含まれる要素を表示します。
print(list(counter.elements()))
# 出力: ['apple', 'apple', 'apple', 'banana', 'banana', 'orange']
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})
3.4. subtract

はるか
subtractメソッドでカウントを減らせる。
次の例では、カウンターに含まれる’apple’, ‘orange’のカウントを減らしています。
print("前:",counter)
subtract_data = ['apple', 'orange']
counter.subtract(subtract_data)
print("後:",counter)
3.5. 辞書としての操作

はるか
最後に、Counterは辞書のように扱うこともできる。
次の例では、appleのカウンターにおける値を5に変更しています。
print("前:",counter)
# 出力: 2
# 要素のカウントを設定
counter['apple'] = 5
print("後:",counter)
# 出力: Counter({'apple': 5, 'banana': 3, 'grape': 1, 'orange': 0})
PR