본문 바로가기
Big Data/DataAnalysis & Manipulate

pandas cut()

by Wikinist 2023. 8. 7.

pd.cut()

pd.cut() 함수는 데이터를 구간(bin)으로 나누고 이를 특정 라벨로 표현하기 위해 labels 매개변수를 활용할 수 있습니다. 이를 통해 구간을 더 의미 있는 방식으로 표현하고 분석에 활용할 수 있습니다.

pd.cut() 함수의 labels 매개변수에는 각 구간에 해당하는 라벨을 지정하는 리스트를 전달합니다. 이 라벨들은 데이터가 해당 구간에 속할 때 사용됩니다.

다음은 pd.cut() 함수와 labels 매개변수를 사용한 예제입니다:

import pandas as pd

# 예제 데이터 생성
data = {'나이': [25, 30, 22, 35, 40, 28, 21, 29, 31, 26]}
df = pd.DataFrame(data)

# 구간(bins) 및 라벨 정의
bins = [20, 25, 30, 35, 40]  # 나이를 구간으로 나누기 위한 경계값
labels = ['20-25', '26-30', '31-35', '36-40']  # 각 구간에 해당하는 라벨

# pd.cut() 함수를 사용하여 데이터를 구간으로 나누고 라벨 적용
df['나이구간'] = pd.cut(df['나이'], bins, labels=labels)

# 결과 출력
print(df)


위 예제에서는 나이 데이터를 구간으로 나누고, 각 구간에 해당하는 라벨을 지정하여 분석에 활용하고자 합니다. labels 매개변수에 지정한 라벨은 구간별로 할당되며, 출력 결과는 아래와 같을 수 있습니다:

  나이  나이구간
0  25  20-25
1  30  26-30
2  22  20-25
3  35  31-35
4  40  36-40
5  28  26-30
6  21  20-25
7  29  26-30
8  31  31-35
9  26  26-30

위 결과에서 볼 수 있듯이, 각 나이 데이터는 구간에 해당하는 라벨로 매핑되어 새로운 열인 나이구간에 추가되었습니다. 이처럼 labels 매개변수를 사용하여 구간을 더 의미 있는 라벨로 표현할 수 있습니다.

반환 타입

pd.cut() 함수의 반환 타입은 구간(bin)에 따라 달라집니다. 이 함수는 구간에 해당하는 카테고리 라벨을 포함한 Categorical 타입의 Series를 반환합니다.

Categorical 타입은 범주형 데이터를 효율적으로 다루기 위한 Pandas의 자료형 중 하나입니다. 범주형 데이터는 일정한 개수의 고유한 값들로 구성되며, 이러한 값들을 카테고리(범주)로 간주하여 저장하고 관리합니다. Categorical 타입은 메모리 사용량을 줄이고 데이터 처리 속도를 향상시키는데 도움을 줄 수 있습니다.

이전 예제를 기반으로 한 결과에서 pd.cut() 함수의 반환 타입은 Categorical 타입의 Series입니다. 나이구간 열에 해당하는 데이터는 Categorical 타입으로 반환되었습니다. 이를 통해 데이터를 효율적으로 관리하고 범주별 통계 분석 및 시각화 작업을 수행할 수 있습니다.

출력 결과에서 나이구간 열의 데이터를 확인하면 아래와 같습니다:

0    20-25
1    26-30
2    20-25
3    31-35
4    36-40
5    26-30
6    20-25
7    26-30
8    31-35
9    26-30
Name: 나이구간, dtype: category
Categories (4, object): ['20-25' < '26-30' < '31-35' < '36-40']

위 결과에서 볼 수 있듯이, 나이구간 열은 Categorical 타입으로 반환되었으며, 각 카테고리 라벨이 나열되어 있습니다. 이를 통해 데이터를 분석하거나 시각화할 때 라벨 정보를 활용할 수 있습니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

'Big Data > DataAnalysis & Manipulate' 카테고리의 다른 글

vectorize, apply, map  (0) 2023.08.08
df.describe()  (0) 2023.08.07
Boolean / Fancy indexing  (0) 2023.08.07
명시적 / 묵시적 인덱스 접근  (0) 2023.08.07
DataFrame Indexer  (0) 2023.08.04