Pivot Tables
- 피벗 테이블은 데이터를 재구성하여 관계와 연결성을 명확하게 보여주는 강력한 도구입니다.
- 데이터 분석을 하다 보면 원시 데이터에서 패턴을 파악하거나, 특정 기준에 따라 데이터를 집계하고 요약해야 할 때가 많습니다.
- 이럴 때 피벗 테이블을 사용하면 복잡한 데이터도 쉽게 시각화할 수 있습니다.
Pivot method
- 열 값을 기준으로 데이터를 재구성하고, 인덱스를 재지정하여 데이터를 재배열하는 방법입니다.
- 피벗 메서드는 주로 데이터 분석, 시각화, 그리고 탐색에 활용되며, 데이터의 구조를 쉽게 파악하거나 요약된 정보를 제공하는 데 유용합니다.
사용 예시
# 'Company','Product','Licenses'컬럼 값만 보겠습니다.
licenses = df[['Company','Product','Licenses']]
licenses
# 피벗 메소드를 이용하여 인덱스에는 Company 컬럼은 Product 값들은 Licenses를 넣습니다.
pd.pivot(data=licenses,index='Company',columns='Product',values='Licenses')
- 위의 사진들처럼 피벗 테이블을 이용하면 좀 더 보기 직관적이게 바꿀 수 있습니다.
pivot_table() method
- 피벗 메서드(pivot())와 유사하게, pivot_table() 메서드는 피벗 호출에 집계 함수(aggregation functions)를 추가할 수 있습니다.
- pivot()은 단순히 데이터를 재구성하는 데 집중하는 반면, pivot_table()은 데이터를 요약하고 집계할 때 더 강력한 기능을 제공합니다.
사용 예시
# 집계함수 sum을 넣어 숫자형 데이터들을 모두 더한 값이 출력되게 바꿔줍니다.
pd.pivot_table(df,index="Company",aggfunc='sum')
- 위의 사진처럼 sum을 사용하여 기존의 테이블에 있던 숫자형 데이터들을 모두 합친 값들이 출력 됬으며 숫자형 데이터가 있는 값들이 컬럼이 된 것을 확인 할 수 있습니다.
# 보고 싶은 컬럼만 보는 경우는 이렇게 쓸 수 있다.
pd.pivot_table(df,index="Company",aggfunc='sum')[['Licenses','Sale Price']]
# 위의 코드와 같은 결과이며 values를 메소드 내부에서 직접 지정 해줄 수도 있다.
pd.pivot_table(df,index="Company",aggfunc='sum',values=['Licenses','Sale Price'])
# group by 써도 똑같은 결과를 낼 수 있다.
df.groupby('Company').sum()[['Licenses','Sale Price']]
- 그리고 다중 인덱스 사용할 수도 있습니다. 사용방법은 아래 코드를 보시면 되겠습니다.
# index에 두 개의 값을 넣었습니다.
pd.pivot_table(df,index=["Account Manager","Contact"],values=['Sale Price'],aggfunc='sum')
# 다중 컬럼 사용하여 values -> Licenses, Sale Price를 설정하여 다중 컬럼으로 결과를 출력 할 수 있다.
pd.pivot_table(df,index=["Account Manager","Contact"],values=["Sale Price","Licenses"],columns=["Product"],
aggfunc=[np.sum],fill_value=0)
- 이렇듯 여러 방법을 사용하여 시각화 하는 방법을 다양하게 출력할 수 있습니다.
- 그래서 피봇 테이블을 자주 다뤄봐야 겠습니다.
- 해당 csv의 내부 구조를 알기 쉽게 다룰 줄 알아야 하기 때문입니다.
이상입니다.
'Data Analyst > ML' 카테고리의 다른 글
ML - Matplotlib Figure Object (1) | 2024.09.10 |
---|---|
ML - Matplotlib-Basics (0) | 2024.09.10 |
ML - PANDAS(Text Methods for String Data) (0) | 2024.09.03 |
ML - PANDAS(Combining DataFrames) (0) | 2024.09.02 |
ML - PANDAS(Useful Methods) - 2 (0) | 2024.08.31 |