본문 바로가기

Python/Data analysis

[Python] Data Analysis - DataFrame - Pivot

이번에는 pivot 에 대해서 알아보겠습니다.

pivot 은 데이터를 재구성하여 데이터 이해하기 쉽게 변형하는 과정입니다.

 

df
---------------------------------------
	날짜		종목명		종가
0	2021-08-12	삼성전자		77000
1	2021-08-13	삼성전자		74400
2	2021-08-12	LG전자		153000
3	2021-08-13	LG전자		150500
4	2021-08-12	SK하이닉스	100500
5	2021-08-13	SK하이닉스	101500


pd.pivot(data=df, index="날짜", columns="종목명", values="종가")
---------------------------------------
	종목명	LG전자	SK하이닉스	삼성전자
날짜			
2021-08-12	153000	100500		77000
2021-08-13	150500	101500		74400


pd.pivot(data=df, index="종목명", columns="날짜", values="종가")
---------------------------------------
	날짜	2021-08-12	2021-08-13
종목명		
LG전자		153000		150500
SK하이닉스	100500		101500
삼성전자		77000		74400

 

 

비슷한 기능을 groupby 와 unstack 으로 구현 가능하다

 

df.groupby(["날짜", "종목명"]).mean()
------------------------------------------
				종가
	날짜	종목명	
2021-08-12	LG전자		153000.0
		SK하이닉스	100500.0
		삼성전자		77000.0
2021-08-13	LG전자		150500.0
		SK하이닉스	101500.0
		삼성전자		74400.0


df.groupby(["날짜", "종목명"]).mean().unstack()
------------------------------------------
		종가
	종목명	LG전자		SK하이닉스	삼성전자
날짜			
2021-08-12	153000.0	100500.0	77000.0
2021-08-13	150500.0	101500.0	74400.0