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

dibby367님의 프로필 이미지
dibby367

작성한 질문수

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

에러메세지와 마주하기 질문

작성

·

36

·

수정됨

0

안녕하세요. 섹션19에서 에러메세지와 마주하기 강의를 수강하는 중에 궁금한 점이 생겨 질문 남깁니다. 에러 3의 결측치로 인한 에러 부분 코드를 코랩, 시험환경에서 모두 실행해보았을 때 결측치를 채워넣지 않았음에도 에러 없이 잘 실행이 됩니다. 수정을 전혀 하지 않고 그대로 실행하였음에도 제대로 실행이 되어서 왜 그런지 알고싶습니다.

 

그리고 함수/조건문 에러 부분에서도 강의와 똑같이 들여쓰기를 했을 땐 에러가 나는데, 처음부터 함수 코드를 똑같이 작성했을 땐 에러가 나지 않습니다. 육안으로 보기에는 동일해보이는데 왜 들여쓰기만 한 코드로 실행했을 땐 에러가 나는건지 궁금합니다. (사진 상에서 빨간 색으로 표시해둔 부분이 원래 코드에서 들여쓰기만 한 부분이고, 주석처리된 노란색 표시 부분이 제가 똑같이 동일한 코드를 작성한 부분입니다.)

스크린샷 2024-11-09 162925.png.webp

에러

답변 4

0

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

에러 3의 결측치로 인한 에러 부분 코드를 코랩, 시험환경에서 모두 실행해보았을 때 결측치를 채워넣지 않았음에도 에러 없이 잘 실행이 됩니다. 수정을 전혀 하지 않고 그대로 실행하였음에도 제대로 실행이 되어서 왜 그런지 알고싶습니다.

이 부분에 대한 답변도 받을 수 있을까요? 질문이 2개였어서 누락된 것 같아요.

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

확인해보니 사이킷런이 업데이트되면서 자동처리 해주고 있네요!

시험환경도 코랩과 같은 버전이라 실행이 잘 되는 것 같아요!

문자, 숫자도 동일하게 처리 됩니다.

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

네!! 감사합니다.

0

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

# 에러 코드
import pandas as pd
from sklearn.datasets import load_wine
wine = load_wine()
df = pd.DataFrame(wine.data, columns=wine.feature_names)
df['target'] = wine.target

# 알콜이 14 이상일 때 1, 14미만 일때는0으로 변경하려고 함
def isAlcohol(x):
    if x>=14:
    	return 1
		else:
    	return 0
# def isAlcohol(x):
# 		if x>=14:
# 			return 1
# 		else:
# 			return 0

df['alcohol'] = df['alcohol'].apply(isAlcohol)
print(df.head())
퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

파이썬은 줄맞춤이 중요합니다.

탭으로 줄맞춤 하던 스페이스로 줄맞춤 하던 맞춰야 하는데

지금 if와 else가 들여쓰기가 달라요 else 들여쓰기 부분 수정하니 정상 작동됩니다.

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

말씀해주신대로 수정해봤더니 오류 없이 잘 실행됩니다! 감사합니다.

0

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

안녕하세요

눈으로 봤을 때 큰 차이 없어 보여요.

제가 재현할 수 있도록 텍스트로 주실 수 있을까요? 코드 블럭을 사용해 주시면 감사하겠습니다.

image.png

 

0

안녕하세요, 인프런 AI 인턴입니다. dibby367님, 에러메세지 관련 궁금증에 대해 도와드리겠습니다.

에러가 발생하지 않고 코드가 제대로 실행되는 이유에는 여러 가지가 있을 수 있습니다. 이 문제는 특히 결측치나 데이터의 특성과 관련될 수 있는데, 환경에 따라서 또는 사용되는 데이터셋의 상태에 따라 달라질 수 있습니다. 주로 발생할 수 있는 원인들은 다음과 같습니다:

  1. 기본 데이터셋의 차이: 현재 사용 중인 데이터셋에 결측치가 포함되어 있지 않은 경우라면 오류가 발생하지 않을 수 있습니다. 확인하신 환경에서 다른 데이터셋이 사용되었을 수 있습니다.

  2. 버전 차이: 코랩 및 테스트 환경의 버전에 따라 동일한 코드가 다르게 작동할 수 있습니다. 사용하는 라이브러리의 버전이 다를 경우, 결측치 처리 방법이나 기본값이 다르게 설정될 수 있습니다.

  3. 환경 초기 설정: 초기 설정에서 결측치를 이미 일부 처리했거나, 특정 설정에 의해 자동으로 처리되었을 가능성도 있습니다.

  4. 코드 실행 순서: 코드 실행 순서가 바뀌면서 중간 단계에서 처리된 값이 영향을 미칠 수 있습니다.

이와 관련해서, 아래 질문들은 비슷한 문제를 다루었을 수 있으니 참고해 보시면 좋겠습니다:

  1. 예시문제 작업형2 test 데이터 예측시 발생하는 오류

    • 이 질문에서는 결측치가 있는 데이터에 대한 처리 방법을 설명하고 있습니다.
  2. 에러 이유

    • 데이터의 전처리가 제대로 이루어지지 않아 발생할 수 있는 오류에 대해 설명합니다.

문제가 해결되지 않거나 더 궁금한 점이 있다면, 구체적인 상황과 함께 추가로 질문해 주세요. 그러면 더 나은 답변을 제공할 수 있을 것입니다.

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

dibby367님의 프로필 이미지
dibby367

작성한 질문수

질문하기