[Python] Pandas DataFrame Column 동일한 값 개수 구하는 방법 (Value Count)

2023. 4. 22. 21:35코딩/Python

반응형

 

안녕하세요 코봉이입니다!

 

오늘은 Python 의 Pandas 라이브러리 중

Value Counts 함수

 

collections 모듈의 Counter 함수의

사용 예시를 기록해봅니다.

 


먼저 DataFrame을 만들어 줍니다.

Doctor 2명

Singer 2명

Teacher 3명

Farmer 1명


특별히 Teacher 직업을 가진 친구들이 많아 보이네요.

 

그럼 이제 Python의 함수를 활용하여

각 직업을 가지는 친구들이

몇 명인지 알아보겠습니다.

 

먼저 데이터프레임 df를 만들어줍니다.

import pandas as pd
df = pd.DataFrame({'name':['Brian', 'John', 'Jain', 'Nichole', 'Zack', 'Danny', 'Zoe'],
                   'Job':['Doctor', 'Singer', 'Teacher', 'Teacher', 'Farmer', 'Teacher', 'Singer']})
print(df)
"""
      name      Job
0    Brian   Doctor
1     John   Singer
2     Jain  Teacher
3  Nichole  Teacher
4     Zack   Farmer
5    Danny  Teacher
6      Zoe   Singer
"""

 

만들어진 df 중

 

Count를 원하는 Column('Job') 을 입력하고

 

바로 value_counts() 함수를 사용합니다.

(pandas의 내장함수라 import 없이 사용 가능)

보이시나요?

바로 item 마다의 개수가 출력됩니다.

 

추후 갯수를 활용한 분석을 위해

key와 value를 매칭할 수 있는

 

Dictionary를 만들어 보겠습니다.

temp = df['Job'].value_counts() # 임시 DataFrame 생성
my_dict = dict(zip(temp.index, temp)) # dictionary of keys : Job, values : count
print(my_dict)

# {'Teacher': 3, 'Singer': 2, 'Doctor': 1, 'Farmer': 1}

index 컬럼과 value_counts 값을 활용하여

이렇게 딕셔너리 형태로도 만들 수 있습니다.

 

하지만,

 

친절한 Python 내에 더 나은 방법이 있군요.

 

바로 collections 모듈의 Counter 함수!

 

아래처럼 Count Dictrionary 생성 시

간단히 사용이 가능합니다.

from collections import Counter
my_dict = dict(Counter(df['Job'])) # Count 원하는 Column 입력
print(my_dict)

# {'Doctor': 1, 'Singer': 2, 'Teacher': 3, 'Farmer': 1}

 

참 쉽죠~?

오늘도 이렇게 하나 배워갑니다!

 

파이썬 활용 능력 상승!!!

반응형