20.10.02 18:22 작성
·
2.2K
답변 1
2
2020. 10. 03. 09:23
안녕하세요.
좋은 질문을 주셨네요.
1. 기본적인 연산, 평균, 분산, 표준편차, 최댓값, 최솟값, 중앙값 등의 값을 연산하기 위한 목적으로 사용할거라면 사실 groupby를 쓰든 pivot_table을 쓰든 큰 상관이 없습니다.
다만 groupby 가 좀 더 속도가 빠르고 반환값이 pivot_table은 항상 데이터프레임으로 groupby는 컬럼이 series 형태라면 series 로 반환된다는게 가장 큰 차이점으로 보일거에요.
2. pivot 은 데이터의 형태를 바꿀 때 사용해요.
그래서 pivot은 연산이 안 되는데 pivot_table 은 연산을 할 수 있어요.
그래서 pivot과 pivot_table의 차이는 연산을 할 수 있느냐 없느냐에요.
https://pandas.pydata.org/pandas-docs/stable/user_guide/reshaping.html
3. 그럼 비슷하게 groupby 는 좀 더 다양한 연산(aggregation), 변형(transform) 등을 할 수 있고 인덱스 레벨에 따라 다른 연산을 할 수 있어요.
특히 시계열 데이터로 증권 데이터의 시세나 이동평균, 누적 값 등을 구한다면 groupby를 사용하시는게 좋습니다.
groupby의 연산은 다음 문서에 잘 정리되어 있어요.
https://pandas.pydata.org/pandas-docs/stable/user_guide/groupby.html
위 이미지 출처는 단 두 장의 문서로 판다스를 배워볼 수 있는 cheat sheet 에서 가져왔습니다.
https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf
아래에 있는 기능들이 위에 링크한 판다스 문서에 있는 내용인데요. 아래의 내용은 pivot_table 보다는 groupby를 사용하는 것이 좋습니다.