-
카테고리
-
세부 분야
자격증 (데이터 사이언스)
-
해결 여부
해결됨
kaggle 오류
24.05.27 17:16 작성 조회수 80
0
케글 T1-3 연습중인데 아래와 같은 오류가 발생하는데 어떻게 해결할 수 있을까요?
maximum recursion depth exceeded while calling a Python object
답변을 작성해보세요.
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
df['f3'].dropna
에서 dropna는 함수(메서드) 입니다. 괄호가 필요해요!!
우리가 사용하는 것 중에
괄호를 사용하지 않는건 shape과 시계열 데이터를 다룰 때 dt.year, dt.month 등이에요!
지현
질문자2024.05.27
말씀해주신대로 dropna에 괄호를 추가했는데요
또 궁금한 점이... 분명 f3 컬럼에는 95개의 결측치가 있는 걸 확인했는데
df['f3']=df['f3'].dropna()를 했는데 왜 결측치가 제거되지 않고 그대로인걸까요..?
퇴근후딴짓
지식공유자2024.05.27
df['f3'].dropna()
를 실행했을 때, 'f3' 컬럼에서 결측치가 제거된 새로운 Series를 생성하지만, 해당 컬럼에게만 대입합니다. 따라서, 원본 DataFrame df
에는 변화가 없습니다.
만약 'f3' 컬럼의 결측치가 있는 모든 행을 DataFrame에서 완전히 제거하고 싶다면, DataFrame 전체에 dropna()
를 적용해야 합니다. 이 경우, 'f3' 컬럼 뿐만 아니라 다른 컬럼에서도 결측치가 있는 행들이 모두 제거됩니다.
python코드 복사df = df.dropna(subset=['f3']) # 'f3' 컬럼에서 결측치가 있는 행만 제거
답변 1