Python/Pandas

[Pandas] 파이썬 데이터프레임 고유값 목록, 개수 확인 : unique, nunique 함수(열 1개, 여러 개)

jimmy_AI 2022. 6. 7. 17:54
반응형

Python 판다스 distinct : unique, nunique 사용법 예제

파이썬의 데이터프레임에서 각 컬럼에 등장하는 유일한 값들의 목록과 개수를 추출하는 방법을

판다스의 unique와 nunique 함수의 사용법을 중심으로 살펴보도록 하겠습니다.

여기서는 열 1개와 여러 개에 대한 예제를 모두 다루어보겠습니다.

 

이해를 돕기 위하여 아래와 같이 매우 간단한 데이터프레임 df를 가정해보도록 하겠습니다.

import pandas as pd

a = {'A' : [1, 1, 1, 2, 2, 2], 'B' : ['가', '가', '나', '나', '다', '다']}
df = pd.DataFrame(a)

df

 

 

unique 함수 예제 1 : column 1개 내에서 고유값 목록 추출

열 1개 내에서 등장한 값들의 distinct 결과를 모아서 가져오려면

df[열 이름].unique() 혹은 pd.unique(df[열 이름]) 형태로 지정해주시면 됩니다.

pd.unique(df['A']) # array([1, 2])
pd.unique(df['B']) # array(['가', '나', '다'], dtype=object)

df['A'].unique() # array([1, 2])
df['B'].unique() # array(['가', '나', '다'], dtype=object)

 

 

unique 함수 예제 2 : column 여러 개를 합친 결과에서 고유값 목록 추출

만일, 여러 개의 열 전부 내에서 등장했던 값들의 종류를 모아서 가져오기 위해서는

unique 함수 내에 df[열 이름 리스트].values.ravel() 형태로 코드를 작성해주시면 됩니다.

pd.unique(df[['A', 'B']].values.ravel()) # array([1, '가', '나', 2, '다'], dtype=object)

 

반응형

 

nunique 함수 예제 : 각 column 내에서 고유값 개수 반환

특정 열 내에서 등장하는 distinct 결과 목록의 길이를 구하기 위해서는

df[열 이름].nunique() 형태로 함수를 사용해주시면 됩니다.

다만, 여기서 unique 함수와 달리 pd.nunique 형태로는 사용이 불가하니 유의해주세요.

df['A'].nunique() # 2

pd.nunique(df['A']) # AttributeError: module 'pandas' has no attribute 'nunique'

데이터프레임 전체에 대해서 nunique()를 적용하면 각 열마다 고유값 개수가

모아진 결과의 Series를 반환받을 수 있습니다.

df.nunique()

# 결과
A    2
B    3
dtype: int64

 

 

참고 : 여러 column의 값 조합에서 중복이 제거된 결과 반환 

만일, 여러개의 컬럼들의 값 조합에 대한 고유값을 추출하고 싶다면

unique 함수 대신 drop_duplicates 함수를 사용해주시면 됩니다.

df.drop_duplicates()

만일, 해당 함수의 자세한 사용법의 예시가 필요하시다면 아래의 글을 참고해주세요.

 

[Pandas] 파이썬 데이터프레임 중복 제거 : drop_duplicates() 사용법

파이썬 판다스 중복 행 제거 함수 : drop_duplicates() 이번 글에서는 판다스에서 중복된 행을 쉽게 제거할 수 있는 drop_duplicates 함수의 사용법에 대해서 살펴보겠습니다. 이 글은 판다스 공식 문서의

jimmy-ai.tistory.com

 

위의 결과에서 고유한 값 조합의 개수를 구하려면 len 혹은 shape[0] 등을 활용해주시면 됩니다.

len(df.drop_duplicates()) # 4
df.drop_duplicates().shape[0] # 4