SW개발/python

[python] pandas pivot_table 데이터프레임을 다루는 방법

코대장 2021. 11. 7. 21:44
반응형

오랜만에 포스팅을 남기네요. 오늘은 간단하게 pandas 중에서 피벗(pivot_table)을 사용할 때, 유용하게 쓸 수 있는 기능을 소개하고 기록해보려고 합니다. 제가 요즘 퀀트투자를 공부하고 있는데요. 주식 관련 데이터를 수집하고 가공하는 일(?)을 많이 하고 있습니다. 그 중에서 해외ETF 데이터를 다루면서 마주친 부분과 해결방법에 대해서 소개해 드리겠습니다.

 

1. 데이터 소개

개발환경은 주피터노트북이며, 데이터프레임에 대해서 간략하게 소개해드리면 인베스팅닷컴을 통해 해외ETF(SPY, TLT) 데이터를 수집하였으며, 월말(EOM), 연말(EOY), 월초(IOM) 그리고 월별수익(%) 컬럼 등으로 추가하여 가공했습니다.

2. pivot_table 활용

위 데이터프레임에서 index 컬럼을 기준으로 종목별 월말수익(%)를 가져와 합산하는게 목표 입니다. 어떻게 해야 할까요? 아래처럼  피벗 기능인 pivot_table을 쓰면 됩니다.

그럼 SPY 열과 TLT 열을 더하려면 어떻게 해야 할까요? 여러가지 방법이 있겠죠. 저는 아래와 같이 해결했습니다.

 

1. 우선 reset_index(drop=True) 해주었습니다.

2. rename_axis(None, axis=1)

reset_index() 할때 파라미터로 drop=True 가 있을때와 없을 때 차이점을 확인해보세요.

3. sum(axis=1) 각 열 합산하기

 

 

감사합니다.