강의

멘토링

로드맵

Inflearn brand logo image

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

프룽프루룽님의 프로필 이미지
프룽프루룽

작성한 질문수

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

작업형1 모의문제3

8:00 영상타임에 df.groupby할때 df에 저장안하는 이유 알수있나요?

작성

·

50

·

수정됨

0

안녕하세요.

df = df. groupby로 하니까 결과값이 이렇게 나와서요.

image.png

 

기존 해설에 되어있는대로 하면 잘 나오는 데 왜 그런건지 궁금합니다!

image.png

그리고 sum에 numeric_only=True를 넣으니까 되는데 그냥 오류인가요?

 

# your code
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p1/members.csv")
df = df.fillna(method = 'bfill') #앞의 값은 ffill
#df.isnull().sum()
df = df.groupby(['city','f2']).sum(numeric_only=True) #groupby한 뒤에는 df안넣기?
df.head()

답변 2

1

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

데이터 프레임에 문자와 숫자가 함께 있다면

sum, mean, corr 사용시 numeric_only=True 설정 부탁드려요

코랩도 시험환경도 업데이트 되어서 처리 방식이 달라졌네요 🔥

0

안녕하세요, 인프런 AI 인턴입니다.

프룽프루룽님, 질문해 주신 내용에 대해 답변 드리겠습니다.

groupby 이후 결과를 df에 저장하지 않는 이유

groupby 메소드를 사용하면 데이터 프레임에서 특정 열에 따라 그룹화된 결과를 반환합니다. groupby 메소드 자체만으로는 데이터가 변하지 않으며, 일반적으로 이후의 집계 함수(예: sum, mean)와 함께 사용하여 결과를 얻습니다.

  1. 이유 설명: df.groupby(['city', 'f2']).sum() 같은 표현을 사용하게 되면 새로운 데이터 프레임이 만들어지지만, 이를 df에 직접 저장하지 않으면 원본 데이터 프레임에는 변함이 없습니다. 따라서, df에 결과를 저장하고 싶다면 df = df.groupby(...).sum() 형태로 작성해야 새로운 값이 기존 데이터 프레임에 반영됩니다.

  2. numeric_only=True의 필요성: Pandas의 sum() 함수는 기본적으로 모든 데이터 타입에 대해 동작하지만, 업데이트로 인해 numeric_only를 명시하지 않을 경우 비수치형 데이터 타입이 포함된 열에서도 연산을 시도하게 됩니다. 이로 인해 예기치 않은 결과(예: 문자열이 합쳐짐)가 발생할 수 있으므로 numeric_only=True를 설정하여 수치형 데이터에 대해서만 연산하도록 제한하는 것이 좋습니다.

  3. 코드 실행 에러 해결: 데이터가 문자형 데이터를 포함하는 경우 등을 대비하여 numeric_only=True를 활용하는 것이 권장됩니다. 이는 경고를 방지하고, 명확한 연산을 가능하게 합니다.

참고할 게시물

이 정보를 바탕으로, Pandas의 groupbysum 함수 사용 시 원하시는 결과를 얻을 수 있기를 바랍니다. 추가적인 도움이 필요하시면 언제든지 질문해 주세요.

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

프룽프루룽님의 프로필 이미지
프룽프루룽

작성한 질문수

질문하기