인프런 커뮤니티 질문&답변
그룹바이 agg 함수에서 하나의 컬럼에만 적용시키는 방법
해결된 질문
작성
·
62
·
수정됨
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 
- 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 
- 먼저 유사한 질문이 있었는지 검색해보세요 
# 원산지와 메뉴 기준 (평균, 합계)
df.groupby(['원산지','메뉴']).agg(['mean','sum'])# 원산지와 메뉴 기준 (평균, 합계)
df.groupby(['메뉴']).agg(['mean','sum'], numeric_only=True)원산지와 메뉴기준으로 agg하여 mean 과 sum을 구했을때 코드를 알려주셨는데요, 원산지 하나의 칼럼의 mean과 sum을 보고싶을 때는 어떻게 해야하나요? 에러가 나네요,, 아마 원산지가 빠져서 문자열이라 그런거같은데, numeric_only = True을 어디에 넣어야하나요?
답변 2
0
만약 그런 상황이라면 "원산지"를 데이터프레임에서 빼고 진행하는 것을 추천해요
numeric_only = True 넣는다면 아래 ai말처럼 별도 함수를 만들어야해 매우 번거롭습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
reverq님, 질문해주신 그룹바이와 agg 함수 적용 방법에 대해 설명드리겠습니다.
Pandas에서 groupby와 agg 함수를 이용한 특정 컬럼에 대한 집계 방법
- 기본적인 사용 예:
 - groupby와- agg함수를 이용하면 특정 기준으로 데이터를 그룹화한 후, 여러 집계 함수를 동시에 적용할 수 있습니다.
 
 
예시:
   df.groupby(['원산지', '메뉴']).agg(['mean', 'sum'])
이런 코드는 ‘원산지’와 ‘메뉴’를 기준으로 ‘mean’과 ‘sum’을 모든 수치형 컬럼에 대해 계산합니다.
- 특정 컬럼에 집계 함수만 적용하는 방법:
 - 만약 ‘원산지’나 ‘메뉴’와 같은 특정 열의 집계 평균 및 합계를 계산하고 싶다면, 다음과 같이 사용할 수 있습니다.
 
 
- 만약 ‘원산지’나 ‘메뉴’와 같은 특정 열의 집계 평균 및 합계를 계산하고 싶다면, 다음과 같이 사용할 수 있습니다.
예를 들어, ‘원산지’ 기준으로 특정 컬럼에 대해 ‘mean’과 ‘sum’을 구하려면 해당 컬럼명을 명시해주어야 합니다.
   df.groupby('원산지')['수치형_컬럼'].agg(['mean', 'sum'])
위 코드에서 '수치형_컬럼'은 집계를 구하고자 하는 수치형 데이터의 열명을 의미합니다.
- numeric_only 옵션 사용: - agg메소드 자체에는- numeric_only옵션이 적용되지 않으며, 이는- sum과 같은 개별 집계 함수 호출 시에만 적용됩니다.
 
- numeric_only=True 옵션은 집계 함수(ex: sum()) 호출 시 사용하는 것이므로, 그룹바이 전체가 아닌 개별 집계 함수에 적용합니다.
 
 - 예: - df.groupby('원산지').agg({ '특정_수치형_컬럼': lambda x: x.sum(numeric_only=True), # 수치형 데이터에만 적용 })
참고하시어 올바른 컬럼을 지정해 특정 열의 mean과 sum을 구해주시면 되겠습니다.
관련 링크
이와 유사한 문제와 해결책에 대한 게시글을 소개하니 참고해주세요:
각각의 게시물은 groupby와 agg 사용 시 발생할 수 있는 일반적인 오류와 그 해결책에 대한 내용이 담겨 있습니다. 이러한 자료들을 참고하시면 reverq님이 질문하신 문제 해결에 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






