[Pandas] 판다스 Cut 함수로 데이터 구간 나누기(설명 및 예시)

2024. 3. 25. 11:26·Python/pandas
목차
  1. Pandas Cut 함수 파라미터 설명
  2. 1.  연령대별 구분 예시
  3. 2.  성적 구간별 등급 부여
  4. 3.  소득 구간별 카테고리화
  5. 4. 사용 시간대별 사용자 분류
  6. 5.  체중 분류에 따른 건강 등급
  7. 6. 쓰임새와 활용도

Pandas(판다스) Cut 함수 알아보기 

Pandas의 Cut 함수는 연속적인 수치 데이터를 범주형 데이터로 변환하여 분석의 효율성과 정밀도를 높이는 데 중요한 역할을 합니다. 이 기능을 통해 데이터를 구간별로 나누고, 각 구간에 의미 있는 레이블을 부여함으로써 데이터의 분석 및 시각화 과정을 더욱 명확하고 직관적으로 만들 수 있습니다. 😁

Pandas Cut 함수 파라미터 설명

bins 파라미터는 데이터를 나눌 구간의 경계를 정의합니다. 예를 들어, [0, 4, 8, 12, 24]는 0~4, 4~8, 8~12, 12~24의 네 구간으로 데이터를 나누겠다는 의미입니다. 구간의 경계는 왼쪽은 포함하지 않고(단, 첫 구간의 시작점은 포함), 오른쪽은 포함하는 방식으로 정의됩니다.

labels 파라미터는 각 구간에 할당할 레이블을 정의합니다. 시각화 시에도 구간을 쉽게 식별할 수 있도록 도와줍니다. bins에 의해 정의된 구간 수와 labels 리스트의 요소의 개수는 일치해야 합니다.(필수)

Bash

df = pd.DataFrame({
    'User': ['Alice', 'Bob', 'Charlie', 'Dana'],
    'Usage Time': [5, 12, 8, 3]
})

bins = [0, 4, 8, 12, 24]  # 구간 경계 정의
labels = ['Very Low', 'Low', 'Medium', 'High']  # 구간별 레이블
df['Usage Category'] = pd.cut(df['Usage Time'], bins=bins, labels=labels)

print(df)

Output

Code

      User  Usage Time Usage Category
0    Alice           5            Low
1      Bob          12         Medium
2  Charlie           8         Medium
3     Dana            3       Very Low

이러한 방식으로 pd.cut 함수를 활용하면, 연속적인 수치 데이터를 의미 있는 범주형 데이터로 변환할 수 있으며, 분석 결과를 보다 직관적으로 이해하고 전달할 수 있습니다.

1.  연령대별 구분 예시

다음 예시에서는 사람들의 연령 데이터를 기반으로 연령대별로 구분하는 방법을 보여줍니다.

Bash

import pandas as pd

df = pd.DataFrame({
    'Name': ['John', 'Anna', 'Peter', 'Linda'],
    'Age': [23, 35, 12, 58]
})

bins = [0, 18, 30, 40, 50, 100]
labels = ['Under 18', '18 to 29', '30 to 39', '40 to 49', '50+']
df['Age Group'] = pd.cut(df['Age'], bins=bins, labels=labels)

print(df)

Output

Code

    Name  Age  Age Group
0   John   23    18 to 29
1   Anna   35    30 to 39
2  Peter   12    Under 18
3  Linda   58        50+

2.  성적 구간별 등급 부여

학생들의 성적 데이터를 구간별로 나누어 등급을 부여하는 예시입니다.

Bash

df = pd.DataFrame({
    'Name': ['Alex', 'Bobby', 'Charlie', 'Diana'],
    'Score': [82, 91, 78, 85]
})

bins = [0, 60, 70, 80, 90, 100]
labels = ['F', 'D', 'C', 'B', 'A']
df['Grade'] = pd.cut(df['Score'], bins=bins, labels=labels)

print(df)

Output

Code

      Name  Score Grade
0     Alex     82     B
1    Bobby     91     A
2  Charlie     78     C
3    Diana     85     B

3.  소득 구간별 카테고리화

다양한 소득 수준을 갖는 인구 집단을 구간별로 나누어 분석하는 방법을 설명합니다.

Bash

df = pd.DataFrame({
    'Person': ['Tom', 'Jerry', 'Mickey', 'Donald'],
    'Income': [55000, 80000, 120000, 45000]
})

bins = [0, 50000, 75000, 100000, 500000]
labels = ['Low', 'Medium', 'High', 'Very High']
df['Income Level'] = pd.cut(df['Income'], bins=bins, labels=labels)

print(df)

Output

Code

   Person  Income Income Level
0     Tom   55000        Medium
1   Jerry   80000          High
2  Mickey  120000     Very High
3  Donald   45000           Low

4. 사용 시간대별 사용자 분류

하루 동안의 앱 사용 시간을 기준으로 사용자를 분류하는 예시를 보여줍니다.

Bash

df = pd.DataFrame({
    'User': ['Alice', 'Bob', 'Charlie', 'Dana'],
    'Usage Time': [5, 12, 8, 3]
})

bins = [0, 4, 8, 12, 24]
labels = ['Very Low', 'Low', 'Medium', 'High']
df['Usage Category'] = pd.cut(df['Usage Time'], bins=bins, labels=labels)

print(df)

Output

Code

      User  Usage Time Usage Category
0    Alice           5            Low
1      Bob          12         Medium
2  Charlie           8         Medium
3     Dana            3       Very Low

5.  체중 분류에 따른 건강 등급

체중 지수(BMI)를 기준으로 개인의 건강 등급을 분류하는 방법입니다.

Bash

df = pd.DataFrame({
    'Name': ['Eva', 'Luis', 'Omar', 'Isla'],
    'BMI': [22, 29, 31, 18]
})

bins = [0, 18.5, 24.9, 29.9, 100]
labels = ['Underweight', 'Healthy', 'Overweight', 'Obese']
df['Health Status'] = pd.cut(df['BMI'], bins=bins, labels=labels)

print(df)

Output

Code

    Name  BMI Health Status
0    Eva   22       Healthy
1   Luis   29    Overweight
2   Omar   31         Obese
3   Isla   18  Underweight

6. 쓰임새와 활용도

Pandas의 cut 함수는 연속적인 수치 데이터를 범주화하여 분석의 유연성을 높이는 데 큰 도움을 줍니다. 이를 통해 사용자는 데이터를 명확한 구간으로 나누고, 각 구간에 대한 분석을 쉽게 수행할 수 있습니다. 데이터 분석, 보고서 작성, 데이터 시각화 등 다양한 상황에서 유용하게 활용될 수 있으며, 데이터의 이해도를 높이고 보다 실질적인 인사이트를 도출하는 데 기여합니다.

또한, cut 함수는 사용자가 직접 구간을 정의하고, 각 구간에 적합한 레이블을 지정할 수 있어, 분석 결과의 가독성을 높이고 해석을 용이하게 합니다. 이와 같은 접근 방식은 데이터 분석 과정에서 데이터를 보다 세밀하게 조작하고, 분석 결과를 효과적으로 전달하는 데 중요한 역할을 합니다.

더 많은 정보와 자세한 사용법을 원하신다면, Pandas 공식 문서를 참고 해보세요:)  Pandas Cut 함수 공식 문서 바로가기

  1. Pandas Cut 함수 파라미터 설명
  2. 1.  연령대별 구분 예시
  3. 2.  성적 구간별 등급 부여
  4. 3.  소득 구간별 카테고리화
  5. 4. 사용 시간대별 사용자 분류
  6. 5.  체중 분류에 따른 건강 등급
  7. 6. 쓰임새와 활용도
'Python/pandas' 카테고리의 다른 글
  • [Pandas] 파이썬 피벗 테이블과 크로스탭 활용 방법
  • [Pandas] 파이썬 - 데이터 결측치 처리 4가지 방법
  • 판다스 Stack 함수로 데이터 만들기
  • [Python] 파이썬 Apply Lambda와 For문의 효율성 비교
hyunicecream
hyunicecream
안녕하세요. 여러가지 정보를 통해 조금이나마 도움이 되고자 시작하게 되었습니다.
  • hyunicecream
    Café
    hyunicecream
  • 홈
  • 포스팅 카테고리

    • 분류 전체보기
      • 생성형 AI
        • ChatGPT
        • Claude AI
        • MS Copilot
        • Perplexity
        • 생성형 AI 정보
        • 프롬프트 작성 가이드
        • AI 활용기
      • Notion
      • 업무 생산성
      • Python
        • pandas
      • 머신러닝
      • 딥러닝
      • Terminal
      • SQL
        • Postgre SQL
      • 여행정보
        • 국내여행
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
hyunicecream
[Pandas] 판다스 Cut 함수로 데이터 구간 나누기(설명 및 예시)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.