🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    자격증 (데이터 사이언스)

  • 해결 여부

    해결됨

kaggle 오류

24.05.27 17:16 작성 조회수 80

0

  • 케글 T1-3 연습중인데 아래와 같은 오류가 발생하는데 어떻게 해결할 수 있을까요?

     

  • maximum recursion depth exceeded while calling a Python object

     

답변 1

답변을 작성해보세요.

0

혹시 반복분이나 재귀함수를 잘못 사용한 것이 아닌가 싶은데

코드를 공유해줄래요?

지현님의 프로필

지현

질문자

2024.05.27

import pandas as pd

df = pd.read_csv('../input/bigdatacertificationkr/basic1.csv')

df.isnull().sum()
# f1 31
# f3 95

# df.shape
# (100, 8)

# 결측치가 80%이상 되는 컬럼은(변수는) 삭제 (f3)
df['f3']=df['f3'].dropna
df.isnull().sum()

# city=df.groupby('city')['f1'].median()
# 경기    58.0
# 대구    75.0
# 부산    62.0
# 서울    68.0

kk=df['city']=='경기'
df[kk]
지현님의 프로필

지현

질문자

2024.05.27

image

 

df['f3'].dropna

에서 dropna는 함수(메서드) 입니다. 괄호가 필요해요!!

 

우리가 사용하는 것 중에

괄호를 사용하지 않는건 shape과 시계열 데이터를 다룰 때 dt.year, dt.month 등이에요!

지현님의 프로필

지현

질문자

2024.05.27

image말씀해주신대로 dropna에 괄호를 추가했는데요

또 궁금한 점이... 분명 f3 컬럼에는 95개의 결측치가 있는 걸 확인했는데

df['f3']=df['f3'].dropna()를 했는데 왜 결측치가 제거되지 않고 그대로인걸까요..?

df['f3'].dropna()를 실행했을 때, 'f3' 컬럼에서 결측치가 제거된 새로운 Series를 생성하지만, 해당 컬럼에게만 대입합니다. 따라서, 원본 DataFrame df에는 변화가 없습니다.

만약 'f3' 컬럼의 결측치가 있는 모든 행을 DataFrame에서 완전히 제거하고 싶다면, DataFrame 전체에 dropna()를 적용해야 합니다. 이 경우, 'f3' 컬럼 뿐만 아니라 다른 컬럼에서도 결측치가 있는 행들이 모두 제거됩니다.

python코드 복사df = df.dropna(subset=['f3'])  # 'f3' 컬럼에서 결측치가 있는 행만 제거
지현님의 프로필

지현

질문자

2024.05.27

감사합니다!!!

응원합니다 🙂

채널톡 아이콘