[Python] pandas groupby 함수 transform 사용 방법
2024. 4. 4. 23:21ㆍ코딩/Python
반응형
안녕하세요. 코딩왕 코주부입니다.
Python의 주요 라이브러리 중 하나인
극강의 Pandas!!
모두 많이 쓰시죠?
오늘은 groupby 를 이용하여 연산된 새로운 column을
데이터 프레임의 변형없이 생성하는 방법을 정리합니다.
(make a new column with calculated values)
우선 DataFrame 부터 준비해줍니다.
import pandas as pd
df = pd.DataFrame({
'Name':['John', 'Daniel', 'Sera', 'Brian',
'John', 'Daniel', 'Sera', 'Brian'],
'Subject' : ['Math', 'Math', 'Math', 'Math',
'English', 'English', 'English', 'English'],
'Score':[90, 80, 50, 80,
60, 50, 40, 70]
})
아래와 같은 데이터 프레임이 준비 완료 됐습니다!
Daniel, Sera, Brian, John
총 4명의 점수 평균을 과목 상관없이 계산합니다.
# Name 별 Score 평균 구하기
df.groupby(['Name'])['Score'].mean()
Brian이 평균 75점으로 1등이네요!
# DataFrame 형식으로 Return
df.groupby(['Name'])['Score'].mean().reset_index()
예쁘게 데이터프레임 형식으로 결과를 얻으려면
.reset_index() 를 사용해주면 되겠죠.
기존의 데이터프레임은 그대로 유지
새로운 컬럼에다가 계산된 값을 생성해보겠습니다.
# mean 값을 계산해서 "Avg" Column에 생성하기
df['Avg'] = df.groupby(['Name'])['Score'].transform('mean')
위와 같이, groupby 뒤에 transform을 사용하고
어떤 연산을 할 지 결정해주면
새로운 Column이 생성되면서 원하는 결과를 얻게 됩니다!
위에는 mean으로 예를 들었는데
그 외 다양하게 사용할 수 있는
Pandas 의 내장 연산 함수 리스트는 아래와 같습니다!
Pandas의 aggregate functions 입니닷
sum() | 합계 |
mean() | 평균 |
std() | 표준편차 |
var() | 분산 |
sem() | 표준오차 |
min() | 최소값 |
max() | 최대값 |
first() | 첫 번째 값 |
last() | 마지막 값 |
오늘도 고생 많으셨습니다!
많은 도움 되셨으면 좋겠네요.
감사합니다~!

반응형
'코딩 > Python' 카테고리의 다른 글
[Jupyter Notebook] 주피터 기본 경로(디렉토리) 변경 방법 (0) | 2023.04.23 |
---|---|
[Python] Pandas DataFrame Column 동일한 값 개수 구하는 방법 (Value Count) (0) | 2023.04.22 |
[Python] List 리스트 선언, 인덱싱, 메소드 및 함수 활용하기 (0) | 2022.11.14 |
[Python] 파이썬 불변객체와 가변객체 (Immutable/Mutable Object) (0) | 2022.10.23 |
[Python] Apple Mac OS Flask 실행 시 5000 port 중복 오류 해결 (with. AirPlay Receiver) (0) | 2022.08.08 |