강의

멘토링

로드맵

Inflearn Community Q&A

jorylee6342's profile image
jorylee6342

asked

[After Work Side Projects] Big Data Analytics Engineer Practical Exam (Task Types 1, 2, 3)

Frequently Used Python Examples

kaggle 오류

Resolved

Written on

·

173

0

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

     

  • maximum recursion depth exceeded while calling a Python object

     

python머신러닝빅데이터pandas빅데이터분석기사

Answer 1

0

roadmap님의 프로필 이미지
roadmap
Instructor

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

코드를 공유해줄래요?

jorylee6342님의 프로필 이미지
jorylee6342
Questioner

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]
jorylee6342님의 프로필 이미지
jorylee6342
Questioner

image

 

roadmap님의 프로필 이미지
roadmap
Instructor

df['f3'].dropna

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

 

우리가 사용하는 것 중에

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

jorylee6342님의 프로필 이미지
jorylee6342
Questioner

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

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

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

roadmap님의 프로필 이미지
roadmap
Instructor

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

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

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

감사합니다!!!

roadmap님의 프로필 이미지
roadmap
Instructor

응원합니다 🙂

jorylee6342's profile image
jorylee6342

asked

Ask a question