Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas – DataFrame으로 피벗 테이블(Pivot Table) 만들기

피벗 테이블(Pivot Table)을 만들려면 pandas.pivot_table() 함수를 사용하면 됩니다. 이 함수는 스프레드시트 스타일의 피벗 테이블을 DataFrame 형태로 반환해 줍니다.

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

팀(Team) 기록이 담긴 DataFrame을 생성합니다.

dataFrame = pd.DataFrame({'Team ID': {0: 5, 1: 9, 2: 6, 3: 11, 4: 2, 5: 7 },'Team Name': {0: 'India', 1: 'Australia', 2: 'Bangladesh', 3: 'South Africa', 4: 'Sri Lanka', 5: 'England'},'Team Points': {0: 95, 1: 93, 2: 42, 3: 60, 4: 80, 5: 55},'Team Rank': {0: 'One', 1: 'Two', 2: 'Six', 3: 'Four', 4: 'Three', 5: 'Five'}})

단일 열(컬럼)을 인덱스로 지정하여 피벗 테이블을 만듭니다.

pd.pivot_table(dataFrame, index = ["Team ID"])

예제

다음은 전체 코드입니다.

import pandas as pd

# 팀 기록이 담긴 DataFrame 생성
dataFrame = pd.DataFrame({'Team ID': {0: 5, 1: 9, 2: 6, 3: 11, 4: 2, 5: 7 },'Team Name': {0: 'India', 1: 'Australia', 2: 'Bangladesh', 3: 'South Africa', 4: 'Sri Lanka', 5: 'England'},'Team Points': {0: 95, 1: 93, 2: 42, 3: 60, 4: 80, 5: 55},'Team Rank': {0: 'One', 1: 'Two', 2: 'Six', 3: 'Four', 4: 'Three', 5: 'Five'}})

print("DataFrame...\n", dataFrame)

print("\n... Pivot ...", )
print(pd.pivot_table(dataFrame, index = ["Team ID"]))

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DataFrame...
    Team ID     Team Name  Team Points   Team Rank
0         5         India           95         One
1         9     Australia           93         Two
2         6    Bangladesh           42         Six
3        11  South Africa           60        Four
4         2     Sri Lanka           80       Three
5         7       England           55        Five

... Pivot ...
          Team Points
Team ID
2                  80
5                  95
6                  42
7                  55
9                  93
11                 60

출력 결과를 보면 Team ID가 인덱스로 정렬되고, 나머지 수치형 컬럼인 Team Points만 집계되어 피벗 테이블로 표현된 것을 확인할 수 있습니다. 여러 개의 컬럼을 리스트 형태로 index 매개변수에 전달하면 다중 레벨(multi-level) 피벗 테이블도 손쉽게 만들 수 있습니다.