-/Pandas

Pandas: groupby()

106. 2026. 8. 28. 17:03

groupby()

같은 값을 가진 행끼리 그룹으로 묶어 그룹별 계산을 할 때 사용

by_code = df.groupby("code")["close"].mean()

code로 같은 종목끼리 묶기
        ↓
각 그룹의 close 선택
        ↓
각 그룹별 평균 계산

#SQL의 아래와 같은 개념
SELECT code, AVG(close)
FROM prices
GROUP BY code;

 

agg()와 transform()

둘 다 groupby()로 그룹별 계산을 수행할 때 사용하는 함수지만, 결과의 크기가 다르다.

 

  • agg() : 그룹별 계산 결과를 하나로 요약하기 때문에 그룹 수만큼 행이 줄어든다.
  • transform() : 그룹별 계산 결과를 원래 각 행에 다시 붙여주기 때문에 기존 DataFrame과 같은 행 수를 유지

 

agg       → 그룹별로 줄여서 요약
transform → 그룹별로 계산한 뒤 원래 행에 붙이기

A그룹의 평균이 100이라면 agg()는 A → 100 한 줄만 만들고,
transform()은 A그룹의 모든 행에 100을 붙인다.


diff()

현재 값과 바로 이전 값의 차이를 계산

현재 값 - 바로 이전 값

예를 들어
100, 120, 150라면
NaN, 20, 30이 된다.

첫 번째 행은 이전 값이 없기 때문에 NaN이다.

shift()

Series의 값을 한 칸 아래로 이동시켜 현재 행과 이전 행을 비교

s.shift()

복사본 : 원본 수정은 .loc[], 별도 데이터로 사용할 때는 .copy()를 명시하는 것이 좋다.

 

 

 

 

'- > Pandas' 카테고리의 다른 글

Pandas: 데이터 타입 정제와 중복 제거  (0) 2026.08.30
Pandas: diagnose  (0) 2026.08.30
Pandas: 열 다루기와 타입 변환  (0) 2026.08.28
Pandas: 데이터 조회하기  (0) 2026.08.28
Pandas: read_csv  (0) 2026.08.28