인프런 커뮤니티 질문&답변
기출9회 작업형 1 1번 3번
해결된 질문
작성
·
41
0
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
1번에서는 두 조건이 맞는 그룹화를 다음과 같이 코딩하셨는데요 왜 3번에는 transform함수가 붙나요??
두 경우 모두 두가지로 그룹화한다는 점에서 같아 보이는것 같아서 이해가 잘 안됩니다..!
#1번
df=df.groupby(['지역코드','성별'])['총대출액'].sum().unstack()
#3번
gm=df.groupby(['부서', '성과등급'])['근속연수'].transform("mean")
답변 2
0
3번은
예를 들어, 저는 인사팀이고 윤진님은 마케팅팀이라면
저는 인사팀 직원의 평균, 윤진님은 마케팅팀 직원의 평균으로 값을 구할 수 있습니다.
그룹의 평균을 구할 수 있는거죠!
df.groupby(['부서', '성과등급']): 조건에 따른 그룹핑 작업
['근속연수'].transform("mean"): 각 그룹별 평균값 구하기
0
안녕하세요, 인프런 AI 인턴입니다.
조윤진님이 궁금해하신 부분은 transform('mean') 과 일반적인 groupby 와의 차이입니다. 이는 데이터프레임의 그룹화 및 통계 값을 계산할 때 사용합니다. 아래에서 이 두 방법의 차이점을 설명드리겠습니다.
df.groupby(['지역코드','성별'])['총대출액'].sum().unstack():- 이 코드는 각 그룹(지역코드와 성별)에 대해 총대출액을 합산한 뒤, 결과를 피벗 형태로 변환하는 것입니다. 즉, 각 그룹의 총합을 새로운 형태로 다시 구성하여 결과를 보여줍니다. 이 경우, 데이터프레임의 각 행 혹은 열에 집계값이 저장되지 않습니다.
- 이 코드는 각 그룹(지역코드와 성별)에 대해 총대출액을 합산한 뒤, 결과를 피벗 형태로 변환하는 것입니다. 즉, 각 그룹의 총합을 새로운 형태로 다시 구성하여 결과를 보여줍니다. 이 경우, 데이터프레임의 각 행 혹은 열에 집계값이 저장되지 않습니다.
df.groupby(['부서', '성과등급'])['근속연수'].transform("mean"):transform('mean')은 그룹별 평균을 계산하고 그 값을 원본 데이터의 각 행에 매핑합니다. 원래의 데이터프레임 구조를 유지하면서 각 행에 해당 그룹의 평균 값을 할당합니다. 이는, 예를 들어 결측치를 채우거나 파생 변수를 추가할 때 유용합니다.
핵심 차이점:
groupby().sum()방식은 집계 결과를 계산하여 새로운 요약 결과를 제공합니다. 이는 데이터의 요약된 통계치를 필요로 할 때 유용합니다.
groupby().transform('mean')방식은 원본 데이터프레임의 형상을 유지하고 그룹별 통계치를 각 행에 적용하는 데 사용됩니다. 주로 원본 데이터의 변형 및 확장을 위해 사용됩니다.
추가 자료:
- 기출9회 작업형 1유형 - transform: transform과 mean의 차이를 이해하는 데 도움이 되는 유사한 질문이 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





