강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

reverq님의 프로필 이미지
reverq

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

판다스5 - 그룹핑, 병합, 피벗테이블

그룹바이 agg 함수에서 하나의 컬럼에만 적용시키는 방법

해결된 질문

작성

·

42

·

수정됨

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에서 groupbyagg 함수를 이용한 특정 컬럼에 대한 집계 방법

  1. 기본적인 사용 예:
    • groupbyagg 함수를 이용하면 특정 기준으로 데이터를 그룹화한 후, 여러 집계 함수를 동시에 적용할 수 있습니다.

예시:

   df.groupby(['원산지', '메뉴']).agg(['mean', 'sum'])

이런 코드는 ‘원산지’와 ‘메뉴’를 기준으로 ‘mean’과 ‘sum’을 모든 수치형 컬럼에 대해 계산합니다.

  1. 특정 컬럼에 집계 함수만 적용하는 방법:
    • 만약 ‘원산지’나 ‘메뉴’와 같은 특정 열의 집계 평균 및 합계를 계산하고 싶다면, 다음과 같이 사용할 수 있습니다.

예를 들어, ‘원산지’ 기준으로 특정 컬럼에 대해 ‘mean’과 ‘sum’을 구하려면 해당 컬럼명을 명시해주어야 합니다.

   df.groupby('원산지')['수치형_컬럼'].agg(['mean', 'sum'])

위 코드에서 '수치형_컬럼'은 집계를 구하고자 하는 수치형 데이터의 열명을 의미합니다.

  1. numeric_only 옵션 사용:

    • agg 메소드 자체에는 numeric_only 옵션이 적용되지 않으며, 이는 sum과 같은 개별 집계 함수 호출 시에만 적용됩니다.
    • numeric_only=True 옵션은 집계 함수(ex: sum()) 호출 시 사용하는 것이므로, 그룹바이 전체가 아닌 개별 집계 함수에 적용합니다.

    예:

      df.groupby('원산지').agg({
          '특정_수치형_컬럼': lambda x: x.sum(numeric_only=True),  # 수치형 데이터에만 적용
      })
    

참고하시어 올바른 컬럼을 지정해 특정 열의 mean과 sum을 구해주시면 되겠습니다.

관련 링크

이와 유사한 문제와 해결책에 대한 게시글을 소개하니 참고해주세요:

각각의 게시물은 groupbyagg 사용 시 발생할 수 있는 일반적인 오류와 그 해결책에 대한 내용이 담겨 있습니다. 이러한 자료들을 참고하시면 reverq님이 질문하신 문제 해결에 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

reverq님의 프로필 이미지
reverq

작성한 질문수

질문하기