文字列のリストがあります:
a = ['a', 'a', 'a', 'a', 'b', 'b', 'c', 'c', 'c', 'd', 'e', 'e', 'e', 'e', 'e']
文字の頻度分布を表示するヒストグラムを作成したいと思います。次のコードを使用して、各文字の数を含むリストを作成できます。
from itertools import groupby
b = [len(list(group)) for key, group in groupby(a)]
ヒストグラムを作成するにはどうすればいいでしょうか? リストにはそのような要素が 100 万個ある可能性がありますa
。
ベストアンサー1
でとても簡単ですPandas
。
import pandas
from collections import Counter
a = ['a', 'a', 'a', 'a', 'b', 'b', 'c', 'c', 'c', 'd', 'e', 'e', 'e', 'e', 'e']
letter_counts = Counter(a)
df = pandas.DataFrame.from_dict(letter_counts, orient='index')
df.plot(kind='bar')
Counter
は頻度をカウントしているので、プロット タイプは では'bar'
ないことに注意してください'hist'
。