반응형
pd.crosstab
함수는 Pandas에서 교차표(또는 분할표)를 생성하는 데 사용됩니다. 교차표는 두 개 이상의 범주형 변수 사이의 관계를 보여주는 표로, 각 변수의 고유한 값의 조합에 대한 빈도 수를 계산합니다. 이는 주로 데이터 분석과 통계적 분석에서 유용합니다.
기본 사용법
pd.crosstab
함수의 기본 사용법은 다음과 같습니다:
pd.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, margins_name='All', dropna=True, normalize=False)
주요 매개변수
- index: 교차표의 행을 구성할 변수 또는 변수를 포함하는 배열/Series.
- columns: 교차표의 열을 구성할 변수 또는 변수를 포함하는 배열/Series.
- values: 선택사항. 교차표의 셀 값을 계산할 때 사용할 변수.
aggfunc
와 함께 사용. - rownames: 선택사항. 행 이름을 지정하는 문자열의 리스트.
- colnames: 선택사항. 열 이름을 지정하는 문자열의 리스트.
- aggfunc: 선택사항.
values
가 지정된 경우 데이터를 집계할 함수. 예: 'sum', 'mean' 등. - margins: 선택사항. 행과 열의 총합을 추가할지 여부를 지정하는 Boolean 값.
- margins_name: 선택사항. 총합을 표시할 때 사용할 이름 (기본값: 'All').
- dropna: 선택사항. NA 값을 포함하는 행/열을 드롭할지 여부를 지정하는 Boolean 값.
- normalize: 선택사항. 교차표 값을 정규화할지 여부를 지정하는 Boolean 값.
예제
다음은 pd.crosstab
을 사용하는 몇 가지 예제입니다.
기본 교차표
import pandas as pd
# 예시 데이터 생성
data = {
'Gender': ['Male', 'Female', 'Female', 'Male', 'Male', 'Female', 'Female', 'Male'],
'Survived': [1, 1, 0, 0, 1, 1, 0, 0]
}
df = pd.DataFrame(data)
# 교차표 생성
ct = pd.crosstab(df['Gender'], df['Survived'])
print(ct)
출력:
Survived 0 1
Gender
Female 1 2
Male 2 1
values
와 aggfunc
를 사용한 교차표
# 예시 데이터 생성
data = {
'Gender': ['Male', 'Female', 'Female', 'Male', 'Male', 'Female', 'Female', 'Male'],
'Survived': [1, 1, 0, 0, 1, 1, 0, 0],
'Age': [22, 38, 26, 35, 28, 27, 32, 24]
}
df = pd.DataFrame(data)
# values와 aggfunc를 사용하여 평균 연령 계산
ct = pd.crosstab(df['Gender'], df['Survived'], values=df['Age'], aggfunc='mean')
print(ct)
출력:
Survived 0 1
Gender
Female 26.0 32.5
Male 29.5 28.0
margins
사용
# margins를 사용하여 총합 추가
ct = pd.crosstab(df['Gender'], df['Survived'], margins=True)
print(ct)
출력:
Survived 0 1 All
Gender
Female 1 2 3
Male 2 1 3
All 3 3 6
normalize
사용
# 교차표 값을 정규화하여 비율 계산
ct = pd.crosstab(df['Gender'], df['Survived'], normalize=True)
print(ct)
출력:
Survived 0 1
Gender
Female 0.166667 0.333333
Male 0.333333 0.166667
요약
pd.crosstab
함수는 두 개 이상의 범주형 변수 사이의 관계를 나타내는 교차표를 생성하는 데 유용합니다.- 다양한 매개변수를 통해 교차표의 형식과 내용을 세밀하게 조정할 수 있습니다.
values
와aggfunc
를 함께 사용하여 셀 값을 집계할 수 있으며,margins
를 통해 총합을 추가할 수 있습니다.normalize
를 사용하여 비율 기반의 교차표를 생성할 수 있습니다.
이와 같은 기능을 통해 pd.crosstab
은 데이터 분석과 통계적 분석에서 강력한 도구로 사용될 수 있습니다.
반응형
'판다스 디테일' 카테고리의 다른 글
[Pandas] datetime 형식 코드 (1) | 2024.06.15 |
---|---|
[Pandas] DataFrame 결합, 추가 관련 append, join, concat, merge (2) | 2024.06.15 |
[Pandas] DataFrame에서 inf 값을 포함하는 행 지우기 (0) | 2024.06.15 |
[Pandas] Series.str.contains에서의 정규식 패턴 사용 (0) | 2024.06.15 |
[Pandas]리스트 요소를 조건으로 사용하는 람다 표현식, 리스트 컴프리핸션 (0) | 2024.06.13 |