statistics.mode()メソッドはリストの最頻値を返してくれます
>>> import statistics
>>> l = [1,1,2,3] #最頻値は1
>>> statistics.mode(l)
1
OKですね
ところがリスト内に最頻値が複数存在すると,例外を返す仕様となっています
>>> l = [1,1,2,2,3] #最頻値は1と2
>>> statistics.mode(l)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/anaconda3/lib/python3.6/statistics.py", line 507, in mode
'no unique mode; found %d equally common values' % len(table)
statistics.StatisticsError: no unique mode; found 2 equally common values
>>>
###どうしよう
collections.Counter()メソッドが使えそうです
>>> l
[1, 1, 2, 2, 3]
>>> import collections
>>> collections.Counter(l).most_common() #(要素,出現回数)を出現回数順に並び替えたタプルを返す
[(1, 2), (2, 2), (3, 1)]
とりあえず何か一つ最頻値が欲しい場合は,
>>> collections.Counter(l).most_common()[0][0]
1
で良さそうです