안녕하세요~ 꽁냥이입니다.
이번 포스팅에서는 Pandas에서 칼럼이 갖고 있는 유일(유니크, unique)한 값과 그 개수를 얻는 방법에 대해서 소개하려고 합니다.
2. 하나의 칼럼 속 데이터 유일(유니크, unique)값과 개수
3. 데이터프레임에서 칼럼 별 데이터 유일(유니크, unique) 값의 개수
1. 데이터 만들기
먼저 이번 포스팅에서 사용할 데이터를 만들어 줄 거예요.
import pandas as pd
import numpy as np
df = pd.DataFrame()
df['A'] = [1, 2, 3, np.nan, 7, 7]
df['B'] = ['b', 'b', 'b', 'c', np.nan, 'd']
2. 하나의 칼럼 속 데이터 유일(유니크, unique) 값과 개수
먼저 Pandas에서 한 칼럼에 포함된 유니크한 값을 알아보는 방법을 소개하겠습니다. 방법은 간단합니다. Pandas에서는 unique 함수를 사용하면 유일 값을 알 수 있어요.
1) nan을 포함하는 유일(유니크, unique) 값
# 하나의 칼럼 유니크 값 보기 nan 포함 o
df['A'].unique()
보시는 바와 같이 nan값도 포함되어 나오는 것을 알 수 있습니다.
2) nan을 포함하지 않는 유일(유니크, unique) 값
이번엔 nan값을 포함하지 않는 unique 한 값을 구하려면 어떻게 해야 할까요? 아래와 같이 2가지 방법이 있습니다.
# 하나의 칼럼 유니크 값 보기 nan 포함 x
df['A'].value_counts().index.values
df['A'].dropna().unique()
첫 번째 방법은 value_counts가 nan을 제외한 개별 값들의 출현 빈도를 나타내 준다는 것과 개별 값들이 인덱스(index)에 있다는 것을 이용한 것입니다.
두 번째 방법은 특정 칼럼에서 nan값을 제거한 후 unique를 적용한 것입니다.
출력 순서에만 차이가 있을 뿐 결과는 동일합니다.
3) 유일(유니크, unique) 값의 개수 구하기
한 칼럼 속에 유니크한 값이 몇 개나 되는지 알려면 nunique를 쓰면 됩니다. 이때 nan을 포함할 건지 아닌지는 dropna 인자로 결정할 수 있습니다. 디폴트는 dropna= True 입니다.
df['A'].nunique(dropna=True) # 하나의 칼럼 유니크 값 개수 nan 포함 x defalut drop=True
df['A'].nunique(dropna=False) # 하나의 칼럼 유니크 값 개수 nan 포함 o
3. 데이터프레임에서 칼럼 별 데이터 유일(유니크, unique) 값의 개수
이번엔 Pandas에서 하나의 칼럼이 아니라 데이터 전체에 대하여 각 칼럼별 데이터 유일(유니크, unique)값의 개수를 알아봅시다. 여기서 유니크한 값의 개수이지 값이 아니라는 점 주의하시길 바랍니다.
방법은 데이터프레임(DataFrame)에서 nunique 함수를 쓰면 됩니다. 이때 칼럼 별로 유니크한 값의 개수를 구하기 위해 axis=0을 지정합니다(axis=1 은 행별 유니크한 값의 개수).
# 전체 데이터에서 칼럼별 유니크 값 개수 보기 nan 포함 x
df.nunique(axis=0, dropna=True)
# 전체 데이터에서 칼럼별 유니크 값 개수 보기 nan 포함 o
df.nunique(axis=0, dropna=False)
이번 포스팅에서는 Pandas에서 칼럼과 데이터프레임에서 데이터 유일(unique, 유니크) 값과 개수를 구하는 방법을 알아보았습니다. 부디 이 포스팅이 도움이 되시길 바라며 다음에도 좋은 내용으로 찾아뵙겠습니다.
'데이터 분석 > 데이터 전처리' 카테고리의 다른 글
[Pandas] 25. 데이터(칼럼, 열) 변환 하기 (feat. columns, dtype, map, apply) (423) | 2022.04.16 |
---|---|
[Pandas] 24. 데이터프레임(Dataframe) 순회(loop)하기 - 행 방향 순회, 열 방향 순회 (411) | 2022.04.15 |
[Pandas] 22. Transform을 이용하여 그룹별 통계값으로 결측치 대체하기 (387) | 2022.04.03 |
[Numpy] 4. 통계량 구하기 (843) | 2021.10.29 |
[Numpy] 3. 배열 연산(Operation) (857) | 2021.09.21 |
댓글