본문 바로가기
  • CobsLab upgrades your company value by AI technology
pandas

판다스(Pandas)로 피벗테이블(Pivot Table) 만들기: 데이터 분석의 필수 도구!

by dmkdmk 2023. 3. 22.

안녕하세요 콥스랩(COBS LAB)입니다. 오늘 소개해드릴 주제는 피벗테이블에 대해서  설명드리도록 하겠습니다. 

 

Pivot table

피벗테이블은 데이터프레임(DataFrame)에서 하나 이상의 열(column)을 행(row) 인덱스로 설정하고 다른 열을 값으로 설정하여 데이터를 요약하는 방법입니다. 피벗테이블은 대규모 데이터셋에서 특정 데이터를 쉽게 분석하고 요약할 수 있습니다.

data = {
    'date': ['2020-01-01', '2020-01-02', '2020-01-02', '2020-01-03', '2020-01-03'],
    'category': ['A', 'B', 'A', 'B', 'A'],
    'value': [1, 2, 3, 4, 5]
}

df = pd.DataFrame(data)
print(df)

 

데이터프레임을 기준으로 피벗테이블을 생성해보겠습니다.

 

pivot_table = df.pivot_table(values='value', index='date', columns='category', aggfunc='sum')
print(pivot_table)

pivot_table() 메서드의 번째 인자로는 집계할 값이 들어갑니다. 여기서는 value 열을 집계하였습니다.

 

번째 인자로는 (row) 인덱스로 사용할 열의 이름이 들어갑니다. 여기서는 date 열을 인덱스로 사용하였습니다.

 

번째 인자로는 (column) 인덱스로 사용할 열의 이름이 들어갑니다. 여기서는 category 열을 인덱스로 사용하였습니다.

 

마지막으로 aggfunc 인자에는 집계 함수를 지정해줍니다. 여기서는 sum 함수를 사용하여 카테고리별로 날짜별로 값을 더해줍니다.

 

 

 

aggfunc 인자를 생략하면 디폴트 값으로 mean(평균) 함수가 사용됩니다. 이번에는 평균을 사용하여 피벗테이블을 생성하는 방법을 살펴보겠습니다.

pivot_table = df.pivot_table(values='value', index='date', columns='category')
print(pivot_table)

 

aggfunc 인자를 생략하였습니다. 따라서 디폴트 값으로 mean 함수가 사용됩니다.

 

 

 

또한, 여러 개의 집계 함수를 사용할 수도 있습니다. 이번에는 sum count 함수를 모두 사용하여 피벗테이블을 생성해보겠습니다.

pivot_table = df.pivot_table(values='value', index='date', columns='category', aggfunc=['sum', 'count'])
print(pivot_table)

 aggfunc 인자에 sum과 count 함수를 리스트 형태로 지정하였습니다. 따라서 각 카테고리별로 날짜별로 값을 더한 sum 함수와 각 카테고리별로 날짜별로 데이터 개수를 세는 count 함수를 모두 사용하여 피벗테이블을 생성하였습니다.

 

이처럼 판다스의 피벗테이블은 데이터를 다양한 기준으로 요약하여 보여줄 있어 매우 유용합니다. 앞으로 데이터 분석 작업에서 피벗테이블을 적극적으로 활용해보세요!

댓글