Menu
CoddyTech

숫자 구간화

Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 54번째.

항공사는 수하물의 무게를 그램 단위가 아니라 무게 등급에 따라 요금을 부과합니다. 구간화는 범위만 중요할 때 숫자를 구간으로 나눕니다. 이러한 구간을 빈이라고 합니다:

0부터 32 kg까지의 수직선이 7과 23에서 잘려 세 개의 음영 처리된 빈인 기내, 표준, 중량으로 나뉘어 있고, 점으로 표시된 수하물 6개가 있음: 기내에 5.5와 7.0, 표준에 12.4, 18.2와 23.0, 중량에 30.5

pd.cut은 값, 경계값, 그리고 각 구간에 해당하는 레이블을 하나씩 받습니다:

bags = pd.DataFrame({"kg": [5.5, 23.0, 18.2, 30.5, 7.0, 12.4]})
bags["class"] = pd.cut(bags["kg"], bins=[0, 7, 23, 32],
                       labels=["cabin", "standard", "heavy"])
print(bags["class"].value_counts().sort_index())

다음이 출력됩니다:

class
cabin       2
standard    3
heavy       1
Name: count, dtype: int64

각 구간에는 오른쪽 경계가 포함되므로, 7.0 kg은 여전히 기내 수하물에 해당하고 경계 밖의 값은 NaN이 됩니다.

.sort_index()는 구간을 가장 밝은 것부터 순서대로 나열합니다.

challenge icon

챌린지

중급

동물원에서는 members.csv의 구성원을 age에 따라 분류합니다. child는 12세 이하, teen은 13~17세, adult는 18~64세, senior는 65~100세입니다. 프로그램은 group을 입력받습니다.

  1. 각 구성원의 연령 그룹을 group 열로 추가하세요.
  2. 각 그룹의 구성원 수를 출력하세요. child를 먼저 출력합니다.
  3. 입력받은 그룹의 평균 visits를 소수점 이하 2자리까지 출력하세요.

규모가 더 작은 동물원에서 입력값이 teen인 경우:

group
child     1
teen      2
adult     2
senior    1
Name: count, dtype: int64
Mean visits for teen: 10.5

직접 해보기

import pandas as pd

members = pd.read_csv("members.csv")
group = input()

# 아래에 코드를 작성하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

머신러닝을 위한 통계의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러