최근에 pandas로 데이터를 가공하면서 Counter 객체를 요긴하게 사용한 기억이 있습니다.
이번 포스팅에서 collections 모듈의 Counter에 대해 알아보도록 하겠습니다.
from collections import Counter
1. 기본 사용법
counter1 = Counter('banana')
print(counter1)
# Counter({'a': 3, 'n': 2, 'b': 1})
counter2 = Counter(['jason', 'harriet', 'john', 'john', 'harriet'])
print(counter2)
# Counter({'harriet': 2, 'john': 2, 'jason': 1})
카운터 클래스는 파이썬 자료구조인 딕셔너리의 확장판입니다.
따라서 모든 카운터 객체는 딕셔너리의 내장함수를 사용할 수 있습니다.
우선 카운터 객체를 생성하겠습니다.
counter = Counter('coffee')
print(counter)
# Counter({'f': 2, 'e': 2, 'c': 1, 'o': 1})
print(ex['o']) # 1
print(ex['f']) # 2
print(ex['c']) # 1
print(ex['z']) # 0
대괄호를 사용해서 원하는 값의 개수를 확인할 수 있습니다.
카운터 객체 안에 존재하지 않는 값을 찾는 경우 0을 리턴합니다.
fruits = Counter(['apple', 'banana', 'melon', 'blueberry'])
print(fruits)
# Counter({'apple': 1, 'banana': 1, 'melon': 1, 'blueberry': 1})
for fruit in fruits:
print(fruit, end=' ')
# apple banana melon blueberry
반복문과 in 키워드를 사용하면 카운터 객체에 들어있는 값에 접근할 수 있습니다.
cities = Counter(['New York', 'San Francisco', 'Tokyo', 'Seoul'])
print(cities)
# Counter({'New York': 1, 'San Francisco': 1, 'Tokyo': 1, 'Seoul': 1})
print('Hi Rome!' if 'Rome' in cities else 'Miss you Rome!')
# Miss you Rome!
in 키워드를 사용하면 카운터 객체에 특정값이 들어있는지 여부도 확인할 수 있습니다.
2. 메서드
카운터 객체의 대표적인 2가지 메서드에 대해 알아보겠습니다.
2-1. most_common
counter = Counter(['john', 'harriet', 'kelly', 'harriet', 'harriet', 'john'])
print(ex.most_common(2))
# [('harriet', 3), ('john', 2)]
print(counter.most_common())
# [('harriet', 3), ('john', 2), ('kelly', 1)]
개수가 많은 데이터 순으로 정렬된 배열을 리턴합니다.
배열은 데이터와 데이터의 개수로 이루어진 튜플들로 구성됩니다.
인자를 전달하지 않으면 카운터 객체 안의 모든 값에 대한 정보를 리턴합니다.
2-2. total
counter = Counter(['john', 'harriet', 'kelly', 'harriet', 'harriet', 'john'])
print(counter.total())
# 6
카운터 객체 안에 있는 데이터의 총 개수를 리턴합니다.
3. 연산자
연산자를 사용해 카운터 객체끼리 연산할 수 있습니다.
✅ 덧셈(+)
각 카운터 객체에 들어있는 동일한 데이터별 개수를 더합니다.
✅ 뺄셈(-)
다른 카운터 객체와 중복되는 데이터의 개수 만큼 제거합니다.
뺄셈 연산 이후 데이터가 0개라면 해당 데이터는 카운터 객체에서 제외됩니다.
✅ AND 연산(&)
카운터 객체의 교집합을 구합니다.
✅ OR 연산(|)
카운터 객체의 합집합을 구합니다.
✅ 비교연산자
==, >, < 등의 비교연산자를 사용할 수 있습니다.
마치며
이상으로 파이썬 collections 모듈의 Counter 클래스에 대한 정리를 마치도록 하겠습니다.
데이터를 전처리하는 과정에서 자주 사용할 수 있을 것 같습니다.
다음 포스팅에서는 딕셔너리의 내장함수에 대해 알아보도록 하겠습니다.
파이썬 딕셔너리 함수 총정리
이번 포스팅에서는 파이썬 자료구조 중 하나인 딕셔너리의 내장함수에 대해 알아보도록 하겠습니다. 1. keys 딕셔너리의 키로 구성되는 dict_keys 객체를 리턴합니다. 리턴받은 dict_keys 객체에 대해
parix-data.tistory.com
'파이썬・ML' 카테고리의 다른 글
파이썬 문자열 함수 총정리 (0) | 2023.07.26 |
---|---|
파이썬 딕셔너리 함수 총정리 (0) | 2023.07.26 |
Selenium 사용하기 (0) | 2023.07.07 |
Selenium 크롬드라이버 location 에러 (0) | 2023.07.06 |
파이썬 Folium으로 지도 시각화하기 (0) | 2023.07.04 |