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

jnj0713님의 프로필 이미지
jnj0713

작성한 질문수

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

작업형1 모의문제3

문제8, 문제9 풀이에서 numeric_only=True 옵션

해결된 질문

작성

·

36

0

  • 문제8, 문제9 풀이에서 numeric_only=True 옵션에 대해서

  • 궁금해서 질문해요

문제 8번 풀이에서df =df.groupby(['city','f2']).sum(numeric_only=True).reset_index()

스크린샷 2024-11-16 181829.png.webp

df =df.groupby(['city','f2']).sum(numeric_only=True).reset_index()

 

에서는 컬럼 'city' 와 'f2' 컬럼이

수치형 자료라 numeric_only=True 를 설정해야 하는 건가요!?

 

스크린샷 2024-11-16 182044.png.webp

문제 9번 풀이에서 groupby 로 월 별 데이터 개수를 구할 때는 count(numeric_only=True) 로 설정하면 오류나는 이유는 뭔가용..??? month 가 숫자형이어서 그런가요 아니면 count 가 설정할 필요가 없어서인가요 ? ㅠ.ㅠ

 

numeric_only=True 를 어느 때 써야하고 안 써야하는지 구분하는게 정확히 어떤 기준인지 궁금합니다

답변 2

0

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

sum(), mean(), median(), std(), min(), max(), var(), corr() 등에서 필요합니다.

df.sum(), mean(), median()과 같이 합계, 평균, 중앙을 구할 때 df에 문자 컬럼과 숫자 컬럼이 함께 있다면 필요해요!

그렇지만 df에 숫자 컬럼만 있거나 또는 df['숫자컬럼'].sum()과 같이 컬럼을 지정한다면 필요없습니다.

 

count()는 개수를 세는 함수로 필요가 없어요!

 

 

0

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

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

Pandas의 numeric_only=True 옵션에 대한 설명

  1. numeric_only=True의 역할: pandas의 메소드, 특히 sum()와 같은 집계 함수에서 numeric_only=True 옵션은 수치형 데이터만을 대상으로 연산을 수행하도록 지정합니다. 이는 문자열 데이터가 포함된 열을 무시하고, 수치형 열만 계산에 포함하게 합니다.

  2. 문제 8번 코드 설명:

    • groupby를 이용하여 데이터를 ‘city’와 ‘f2’ 열 기준으로 그룹화하고, sum(numeric_only=True)를 사용하여 그룹별 합계를 계산했습니다.
    • 여기서 numeric_only=True를 사용하는 이유는 그룹화된 결과에서 수치형 열의 합계만을 계산하겠다는 의도입니다. 열의 이름이 문자형 데이터일 수도 있기 때문에, 계산하고자 하는 열이 어떤 데이터 타입인지에 따라 의도하지 않은 연산을 방지할 수 있습니다.
  3. 문제 9번에서 count() 함수 사용 문제:

    • count() 함수는 기본적으로 열의 데이터 개수를 세는 함수로, 화면에 보이는 전체 데이터를 대상으로 하기 때문에 numeric_only 옵션을 사용할 필요가 없습니다. 이는 count() 함수가 수치형 여부에 상관없이 각 열의 유효한 값(결측치가 아닌 값)들을 세기 때문입니다.
  4. 언제 numeric_only=True를 사용할 것인가?:

    • sum(), mean(), median()과 같은 집계 함수에서 문자열과 숫자가 혼합된 열에 대해 계산을 수행할 때, 수치형 데이터만 합산 또는 평균 등을 구하고 싶을 때 사용하십시오.
    • 만약 집계 함수가 명시적으로 수치형 데이터만 필요로 하지 않는 경우(예: count()), numeric_only 옵션을 사용하지 않습니다.
  5. 이미지 내용과 코드 분석:

    • 첨부하신 이미지에서는 Pandas와 NumPy를 사용하여 데이터프레임을 다루고 있으며, numeric_only=True를 통해 수치형 데이터 관리를 할 수 있다는 점이 강조된 코드로 보입니다. 그러나, count() 함수와 같이 모든 데이터 타입에 적용할 수 있는 메소드에서는 해당 옵션을 사용하지 않습니다.

질문에 대한 유사한 답변이 제공된 게시물 몇 가지를 추천드리니, 더 깊이 있는 이해를 위해 참고하시는 것도 좋을 것 같습니다:

이들이 경고와 연관된 문제를 해결하는 다양한 방법들을 다루고 있으니 참고해 보세요.

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

jnj0713님의 프로필 이미지
jnj0713

작성한 질문수

질문하기