[Python] Counter를 이용하여 데이터 개수 세기

Surf in Data·2022년 4월 28일
0

python

목록 보기
9/15
post-thumbnail

리스트나 문자열의 원소의 개수를 알고 싶을 때 파이썬의 collections 모듈의 Counter 클래스를 사용하면 매우 편리하다.

collections 모듈의 Counter 클래스는 파이썬의 기본 자료구조인 사전(dictionary)를 확장하고 있기 때문에, 사전에서 제공하는 API를 그대로 다 시용할 수가 있으며 자료의 원소를 key 해당 원소의 개수를 value로 하는 dictionary로 반환시켜준다.

>>>word = "hhhhhhhhhhhhhhhi"
>>>word = Counter(word)
>>>print(word)

Counter({'h': 15, 'i': 1})

Counter의 method중 하나인 most_common

어떤 자료가 주어졌을때 자료에서 제일 많은 개수의 원소는 무엇인가 알고 싶다면 Counter의 method 인 most_common()을 이용하여 쉽게 알 수 있다.

most_common()은 Counter자료형의 key, value 를 (key, value)의 set로 이루어진 list로 반환을 해주는데 이때 value 가 큰 순으로 정렬을 해준다.

>>>words = "aaabbbbccccdddeeffssssss"
>>>word = Counter(words).most_common()
>>>print(word)

[('s', 6), ('b', 4), ('c', 4), ('a', 3), ('d', 3), ('e', 2), ('f', 2)]

이 메서드의 인자로 숫자 k를 넘기면 그 숫자 만큼만 리턴하기 때문에, 가장 개수가 많은 K개의 데이터를 얻을 수도 있습니다.

>>>words = "aaabbbbccccdddeeffssssss"
>>>word = Counter(words).most_common(2)
>>>print(word)

[('s', 6), ('b', 4)
profile
study blog

0개의 댓글