차밍이
[Pandas] 판다스 기초 #2 - 데이터 구간별 범주화 pd.cut 본문
반응형
데이터 구간별 범주화
- pd.cut
- 데이터 값들을 특정 구간에 따라서 범주화할 때, 사용
- 범주를 나누고 라벨을 붙여서 범주형 데이터로 변환 가능
- 연속 데이터를 구간별로 범주화하는 함수
pd.cut 사용 방법
import pandas as pd
ages = [0, 10, 15, 13, 21, 23, 37, 31, 43, 80, 61, 20, 41, 32, 100]
bins = [0, 15, 25, 35, 60, 100]
labels = ['어린이', '청년', '장년', '중년', '노년']
cuts = pd.cut(ages, bins, right=False, labels=labels)
cuts
>>>
[어린이, 어린이, 청년, 어린이, 청년, ..., 노년, 청년, 중년, 장년, NaN]
Length: 15
Categories (5, object): [어린이 < 청년 < 장년 < 중년 < 노년]
범주화할 데이터 : ages
범주를 구분하는 기준 : bins
구분한 범주의 라벨 : labels
범주화에 사용하는 함수 : pd.cut
cuts
에는 pd.cut
을 사용해서 데이터 ages
를 bins
의 요소들을 기준으로 범주화한 데이터가 들어있습니다.
각각의 ages
의 값들은 범주화된 후 labels
에 맞춰서 해당 값으로 바뀌어 들어갑니다.
cuts
에 있는 데이터는 총 15개의 데이터가 있으며, 카테고리화 되어있습니다.
cut 범주 등호 방향
마지막 범주 데이터가 100입니다. right=False
라는 옵션을 통해서 범주를 정하는 부등호를 바꾸어주는 것입니다. 노년
에 해당되는 범주는 현재 60 <= 노년 < 100
으로 설정된 것입니다.
import pandas as pd
ages = [0, 10, 15, 13, 21, 23, 37, 31, 43, 80, 61, 20, 41, 32, 100]
bins = [0, 15, 25, 35, 60, 100]
labels = ['어린이', '청년', '장년', '중년', '노년']
cuts = pd.cut(ages, bins, right=True, labels=labels)
cuts
>>>
[NaN, 어린이, 어린이, 어린이, 청년, ..., 노년, 청년, 중년, 장년, 노년]
Length: 15
Categories (5, object): [어린이 < 청년 < 장년 < 중년 < 노년]
right=True
로 설정하면 60 < 노년 <= 100
으로 설정될 것이며, NaN
이 마지막에 발생되지 않고 100은 노년
으로 구분될 것입니다.
하지만, 첫 번째 0 값이 왼쪽 등호가 사라지면서 어린이
범주에 들어가지 못하게 됩니다. 따라서 NaN
으로 출력됩니다.
여기서 0 또한 범위에 포함하고 싶다면 include_lowest=True
옵션을 사용하면 됩니다.
해당 옵션을 사용하면 가장 작은 값인 0을 범위 안으로 포함되도록 설정합니다.
반응형
'파이썬 > 기본 문법 정리' 카테고리의 다른 글
[Python] reduce 함수 사용 방법 (1) | 2022.02.25 |
---|---|
[Python] getattr() 를 사용해서 간결하게 코드 작성하기, 예시 및 장점 (2) | 2022.02.25 |
[Python] 파일명 바꾸기, 여러 파일 한번에 변경 - os.rename (1) | 2022.02.24 |
[Python] 파일 확장자 구하기, 확장자로 나누기 - os.path.splitext (1) | 2022.02.23 |
[Pandas] 판다스 기초 #1 자료구조와 Attribute - index, columns, rename (0) | 2021.05.29 |
[파이썬] 함수에 입력 변수 여러개 받기 - 매개변수 (0) | 2021.05.28 |
[NumPy] 넘파이 기초 공부하기 #2 np.vstack, hstack, fromfunction (0) | 2021.05.27 |
[파이썬] zip 내장함수 - 묶어서 데이터 가져오기 (0) | 2021.05.26 |
관련된 글 보기
Comments