본문 바로가기
Python/Pandas

[pandas] pd.qcut() 과 pd.crosstab()

by ISLA! 2023. 8. 9.

pd.qcut()란

 

  • pd.qcut()은 pandas 라이브러리에서 제공하는 함수
  • 연속형 데이터를 동일한 구간 또는 분위수로 나누는데 사용
  • 이를 통해 데이터를 이산적인 범주로 나눌 수 있음
  • q는 quantile(분위수)의 약자
  • 즉, 데이터를 주어진 분위수로 나누는 작업

 

다음 예시를 보면, 

  • totvars에 해당하는 컬럼만 covidtotlaonly에 따로 저장
  • 새로운 컬럼 'total_cases_q'를 생성하는데, 이때 qcut을 사용한다
    • 가장 먼저 나눌 데이터를 표시해준다
    • labels : 나눈 구간을 표현할 때 사용할 라벨
    • q : 나눌 구간의 개수나 분위수의 리스트
    • [참고] precision은 소수점 이하 자릿수를 나타내는 매개변수 (여기서는 0 이므로 정수형이 나옴)
covidtotalsonly = covidtotals.loc[:, totvars]
covidtotalsonly['total_cases_q'] = pd.qcut(covidtotalsonly['total_cases'],
                                         labels = ['매우낮음', '낮음', '보통', '높음', '매우높음'],
                                         q=5, precision=0)
covidtotalsonly['total_deaths_q'] = pd.qcut(covidtotalsonly['total_deaths'],
                                         labels = ['매우낮음', '낮음', '보통', '높음', '매우높음'],
                                         q=5, precision=0)

covidtotalsonly.head()

 

 

pd.crosstab()

  • 교차표(cross-tabulation table) 또는 분할표(contingency table)를 생성하기 위해 사용
  • 두 개 이상의 변수 간의 교차 빈도를 계산하고 시각화할 수 있음
    • 시각화를 통해 이상치 유무를 쉽게 파악할 수 있음
  • 다음과 같은 매개변수를 사용
    • index : 행 인덱스로 사용할 변수
    • columns : 열 인덱스로 사용할 변수
    • values : 값으로 사용할 변수(보통 빈도수)
    • aggfunc : 데이터를 집계할 함수(기본값은 빈도수를 세는 것)
  • 예시는 다음과 같은데, 여기서는 행/열을 따로 지정해주지 않고 간편하게 확인함
pd.crosstab(covidtotalsonly['total_cases_q'], covidtotalsonly['total_deaths_q'])

 

728x90