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()
만일, 해당 함수의 자세한 사용법의 예시가 필요하시다면 아래의 글을 참고해주세요.
위의 결과에서 고유한 값 조합의 개수를 구하려면 len 혹은 shape[0] 등을 활용해주시면 됩니다.
len(df.drop_duplicates()) # 4
df.drop_duplicates().shape[0] # 4
'Python > Pandas' 카테고리의 다른 글
[Pandas] 파이썬 데이터프레임 최대/최소값 위치 인덱스, 행 탐색 : idxmax(), idxmin() (0) | 2022.06.12 |
---|---|
[Pandas] 파이썬 데이터프레임 특정 값, 조건 만족 행 개수 세기 (0) | 2022.06.05 |
[Pandas] 파이썬 데이터프레임 원핫인코딩 함수 : get_dummies() 사용법 (1) | 2022.06.02 |