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 |