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

지현님의 프로필 이미지

작성한 질문수

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

자주 활용되는 파이썬 예제

kaggle 오류

해결된 질문

24.05.27 17:16 작성

·

112

0

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

     

  • maximum recursion depth exceeded while calling a Python object

     

답변 1

0

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

2024. 05. 27. 17:51

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

코드를 공유해줄래요?

지현님의 프로필 이미지
지현
질문자

2024. 05. 27. 17:57

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. 17:58

image

 

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

2024. 05. 27. 18:00

df['f3'].dropna

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

 

우리가 사용하는 것 중에

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

지현님의 프로필 이미지
지현
질문자

2024. 05. 27. 18:06

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

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

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

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

2024. 05. 27. 18:10

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

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

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

2024. 05. 27. 18:13

감사합니다!!!

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

2024. 05. 27. 18:14

응원합니다 🙂

지현님의 프로필 이미지

작성한 질문수

질문하기