파이썬 DataFrame 고유값 확인 및 갯수(df.unique, df.nuique, df.value_counts)

bearwoong

·

2022. 9. 20. 08:30

728x90
썸네일
썸네일

 

파이썬 pandas에서는 unique, nunique, value_counts를 통해서 DataFrame에 있는 고유 값을 확인하고 고유 값의 갯수를 쉽게 알 수 있습니다.

 

읽어온 csv파일은 한국에 상장된 주식의 기본 정보들입니다. 

이 csv 파일에는 각 주식의 표준코드, 단축코드, 한글 종목명, 한글 종목약명, 영문 종목명, 상장일, 시장구분, 증권구분, 소속부, 주식종류, 액면가, 상장주식 수가 포함되어 있습니다.

 

import pandas as pd
df = pd.read_csv('stock_data.csv', encoding = 'cp949')
df.head()

이 DataFrame의 head를 찍어보면 다음과 같습니다.

DataFrame head
stock_data의 head

 

반응형

 

df.unique()

unique는 DataFrame의 특정 column이 가지는 고유 값들을 반환합니다. 

 

예를들어 df['액면가'].unique() 로 액면가 column의 고유 값을 확인할 수 있습니다.

이 경우 액면가 column에 있는 값들 중 중복되는 값은 한 번만 표시하면서 array형태로 반환합니다.

 

df['액면가'].unique()
df['소속부'].unique()

df.unique() 결과
df.unique() 결과1
df.unique() 결과2
df.unique() 결과2

 


 

df.nunique()

nunique는 각 column별 고유 값의 갯수를 Series 형태로 반환합니다.

이 때 주의할 점은 nunique에서 갯수를 셀 때 nan 값은 갯수에 포함하지 않는 것입니다.

 

df.nunique()

df.nunique() 결과
df.nunique() 결과

unique에서 액면가는 '500', '1000', '5000', '100', '2500', '무액면', '200', '0.5', '0', '0.05', '1.5', '0.25', '0.2' 이렇게 13개의 고유값을 확인하였습니다.

 

nuique에서도 액면가는 13으로 unique에서 확인한 것과 동일하게 나오는 것을 볼 수 있습니다.

 

하지만 소속부의 고유 값들을 보면 '벤처기업부', '관리종목(소속부없음)', '우량기업부', nan, '중견기업부', '외국기업(소속부없음)', '일반기업부', '기술성장기업부', 'SPAC(소속부없음)', '투자주의환기종목(소속부없음)' 이렇게 10개의 고유 값이 있지만 nuique에서는 9라고 표시됩니다.

 

소속부 column의 nan값을 빼고 고유 값의 갯수를 세기 때문입니다.

 


 

df.value_counts()

value_counts는 각 column에서 각 고유 값이 몇 번 나왔는지 카운팅하여 Series형태로 반환합니다.

이 때도 nunique와 마찬가지로 nan 값은 카운팅하지 않습니다.

 

또한 normalize라는 argument를 줄 수도 있습니다.

normalize = True 로 각 고유 값이 나온 횟수를 비율로 표시하여 나타낼 수 있습니다.

 

df['액면가'].value_counts()
df['액면가'].value_counts(normalize = True)

df['소속부'].value_counts()
df['소속부'].value_counts(normalize = True)

 

value_counts 결과1value_counts 결과2
value_counts 결과

액면가가 500원인 주식은 총 1796개 이고 이는 전체 비율로 따졌을 때 67.9% 임을 알 수 있습니다.

 

value_counts 결과4
value_counts 결과

소속부에서도 중견기업부가 476번 나왔고 전체 비율로 봤을 때 27.9%임을 알 수 있습니다.

nan 값은 카운팅되지 않는 것도 확인이 됩니다.

 

함께보면 좋은 포스팅

파이썬 DataFrame 인덱싱 하는 방법(df[ ], df.loc[ ], df.iloc[ ])

파이썬 모듈 (python module) 만들기, 호출하기 - 코드잇

파이썬 DataFrame 기본 통계값 분석 (df.describe)

반응형