Python

[파이썬] 데이터 집계, 피벗 테이블 생성 - pivot_table

weweGH 2025. 4. 9. 09:00
반응형

데이터 집계 피벗 테이블
데이터 집계 피벗 테이블


데이터 집계, 피벗 테이블 생성 - pivot_table


들어가며


데이터분석을 하기 위해 피벗 테이블을 생성해야 할 때는 pivot_table을 활용합니다. 방대한 양의 데이터를 한눈에 보기 쉽게 집계표를 나타낼 수 있습니다.


피벗 테이블


먼저 필요한 패키지인 pandas를 import합니다.

# pip install pandas
import pandas as pd

예제 데이터로 2024년 3월 14일의 시간대별 ID별 속도 데이터를 사용하겠습니다. 아래의 csv파일을 다운로드하여 사용해 보세요:)

test_df.csv
0.47MB


df = pd.read_csv('test_df.csv', encoding='euc-kr')
df.head()

df
df head


아래 그림과 같이 행에 ID를 열에 시간대를 놓고, 그에 맞는 속도를 나타내보겠습니다.

pivot table
pivot table

df_pivot = df.pivot_table(index='ID', columns='STIME', values='SPD')
df_pivot.head()

df_pivot
df_pivot

반응형

현재 인덱스인 ID를 해제하고 싶다면, reset_index를 추가합니다.

df_pivot2 = df.pivot_table(index='ID', columns='STIME', values='SPD').reset_index()
df_pivot2.head()

df_pivot2
df_pivot2


현재 df에는 결측값이 없지만, 데이터에 결측값이 있다면 fill_value를 통해 결측값을 채워 넣을 수도 있습니다.

df_pivot3 = df.pivot_table(index='ID', columns='STIME', values='SPD', fill_value = 95)

전체 코드


# pip install pandas
import pandas as pd

# 예제 데이터
df = pd.read_csv('test_df.csv', encoding='euc-kr')
df.head()

# df_pivot
df_pivot = df.pivot_table(index='ID', columns='STIME', values='SPD')
df_pivot.head()

# df_pivot2: index 해제
df_pivot2 = df.pivot_table(index='ID', columns='STIME', values='SPD').reset_index()
df_pivot2.head()

# df_pivot3: 결측값 처리
df_pivot3 = df.pivot_table(index='ID', columns='STIME', values='SPD', fill_value = 95)

반응형