▶ 初学者向けにPythonを使ったデータ分析に役立つ記事を書いています
はじめに
今回はPythonでリストの各要素の出現回数を取得する方法を基本から解説します。リストの要素数を確認する際にはlen()を使いますが、リストの各要素の出現回数はどうでしょうか?データ分析プロセスの初期段階でおこなうEDAでよく使いますよね。さっそく見ていきましょう。
リストの各要素の個数をカウントする
次のようなサンプルデータで考えましょう。
list_animals = ['らくだ', 'ねこ', 'しまうま', 'らくだ', 'しまうま', 'ぱんだ', 'らいおん', 'しまうま']
count()メソッドを使う
まずはcount()メソッドを使う方法です。count()メソッドでは、指定したリストの要素の個数を数えることができます。たとえば、list_animalsの「らくだ」の出現回数を数えるなら次のようにします。
# 「らくだ」の出現回数を数える
list_animals.count('らくだ')
指定した要素を数えてくれるので、for文と組み合わせれば次のように要素ごとにその出現回数を数えることができます。
# 要素ごとの出現回数を数える
for name in set(list_animals):
print(name,list_animals.count(name))
(output)
ねこ 1
らくだ 2
しまうま 3
ぱんだ 1
らいおん 1
collections.Counterを使う
次に、Python標準ライブラリcollectionsのCounter
クラスを使う方法です。collections.Counter()にリストやタプルを渡すと、各要素の個数が返ってきます。
# 各要素の個数をカウント
collections.Counter(list_animals)
(output)
Counter({'しまうま': 3, 'らくだ': 2, 'ねこ': 1, 'ぱんだ': 1, 'らいおん': 1})
このように各要素の個数が返ってきますが、「Counterオブジェクト」という形式で返ってきます。これはキーに要素、値に出現回数という形になっています。
このCounterオブジェクトは辞書のようにkeys(), values(), items()メソッドを使うことができます。
# Counterオブジェクト
count_animal = collections.Counter(list_animals)
print(count_animal.keys())
print(count_animal.values())
print(count_animal.items())
(output)
dict_keys(['らくだ', 'ねこ', 'しまうま', 'ぱんだ', 'らいおん'])
dict_values([2, 1, 3, 1, 1])
dict_items([('らくだ', 2), ('ねこ', 1), ('しまうま', 3), ('ぱんだ', 1), ('らいおん', 1)])
まとめ
今回はリストの各要素の出現回数を取得する方法を扱いました。count()メソッドを使う方法とcollectionsライブラリのCounter()を使う方法を紹介しました。
コメント