pd.pivot_table() 함수는 Pandas 라이브러리에서 제공하는 데이터 조작 도구 중 하나로, 데이터프레임의 값을 재구성하고 집계하는 데 사용됩니다. 이 함수를 사용하여 엑셀의 피벗 테이블과 비슷한 작업을 수행할 수 있습니다. 아래는 pd.pivot_table() 함수의 시그니처와 각 매개변수의 역할에 대한 설명입니다:
시그니처
pd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, margins_name='All', dropna=True, observed=False)
data: 필수 매개변수로, 피벗 테이블을 생성할 데이터프레임입니다.
values: 집계할 열의 이름 또는 열의 이름 리스트입니다. 집계하려는 값을 지정합니다.
index: 행 인덱스로 사용할 열의 이름 또는 열의 이름 리스트입니다. 행별로 그룹화할 기준을 지정합니다.
columns: 열 인덱스로 사용할 열의 이름 또는 열의 이름 리스트입니다. 열별로 그룹화할 기준을 지정합니다.
aggfunc: 집계 함수를 지정합니다. 기본값은 'mean'으로 평균을 의미합니다. 다른 예시로 'sum', 'count', 'min', 'max' 등을 사용할 수 있습니다.
fill_value: 결측값을 대체할 값입니다.
margins: 불리언 값으로, 행/열 합계를 추가할지 여부를 지정합니다.
margins_name: 합계 행/열의 이름을 지정합니다.
dropna: 불리언 값으로, 결과에서 결측값을 제거할지 여부를 지정합니다.
observed: 불리언 값으로, 범주형 데이터의 모든 가능한 값이 있는 것처럼 처리할지 여부를 지정합니다. 기본적으로 False로 설정되어 있습니다.
이 함수를 사용하면 데이터프레임을 원하는 형태로 재구성하고, 그룹화된 데이터의 집계 값을 계산할 수 있습니다. 각 매개변수는 원하는 분석 결과를 얻기 위해 조절할 수 있습니다.
예제
먼저 예제로 사용할 데이터프레임을 생성하겠습니다. 이 데이터프레임은 학생들의 성적에 관한 정보를 담고 있습니다.
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Alice', 'Bob', 'Alice', 'Bob'],
'Subject': ['Math', 'Math', 'Science', 'Science', 'History', 'History'],
'Score': [85, 90, 78, 89, 92, 88]
}
df = pd.DataFrame(data)
print(df)
출력된 데이터프레임은 다음과 같습니다
Name Subject Score
0 Alice Math 85
1 Bob Math 90
2 Alice Science 78
3 Bob Science 89
4 Alice History 92
5 Bob History 88
이제 pd.pivot_table() 함수를 사용하여 평균 성적을 과목별로 나타내는 피벗 테이블을 생성해보겠습니다.
pivot_table = pd.pivot_table(df, values='Score', index='Name', columns='Subject', aggfunc='mean')
print(pivot_table)
출력된 피벗 테이블은 다음과 같습니다
Subject History Math Science
Name
Alice 92 85 78
Bob 88 90 89
이제 각 학생별로 과목별 평균 성적이 표시되는 피벗 테이블을 얻었습니다. 'Subject' 열의 과목들이 열 인덱스로, 'Name' 열이 행 인덱스로 사용되었으며, 'Score' 열의 값을 평균하여 집계했습니다.
해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.
'Big Data > DataAnalysis & Manipulate' 카테고리의 다른 글
Apriori 알고리즘 (0) | 2023.08.16 |
---|---|
연관 규칙 분석 (0) | 2023.08.16 |
pandas 결측값 처리 (0) | 2023.08.15 |
Pandas에서 결측값을 다루기 위한 여러 함수 (0) | 2023.08.11 |
DataFrame 열 위치 변경 (0) | 2023.08.11 |