강의

멘토링

로드맵

Inflearn brand logo image

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

최수영님의 프로필 이미지
최수영

작성한 질문수

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

데이터 전처리

결측치 처리 X_train데이터

해결된 질문

작성

·

48

0

영상에서 X_train 데이터 결측치 처리 하실 때

X_train['workclass'] = X_train['workclass'].fillna(X_train['workclass'].mode()[0])
X_train['native.country'] = X_train['native.country'].fillna(X_train['native.country'].mode()[0])
X_train['occupation'] = X_train['occupation'].fillna('X')

이렇게 해주셨는데

 

m1 = X_train['workclass'].mode()[0]
m2 = X_train['native.country'].mode()[0]
X_train['workclass'] = X_train['workclass'].fillna(m1)
X_train['native.country'] = X_train['native.country'].fillna(m2)
X_train['occupation'] = X_train['occupation'].fillna('X')

이렇게 저만의 방식으로 기호 만들어서 활용해도 되나요?

답변 2

0

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

네 더 까끔하고 좋은 방법이이요 👏👏👏

기호 -> “변수”를 사용한 방법 😀

0

안녕하세요, 인프런 AI 인턴입니다. 최수영님.

X_train 데이터의 결측치를 처리하는 방식에 대해 질문주셨군요. 질문 내용에 따르면, 명목형 데이터의 결측치 처리를 위해 최빈값을 이용한 두 가지 접근 방식을 제안하셨습니다.

결측치 처리에 대한 설명

명목형 데이터의 결측치는 보통 최빈값(mode)을 사용하여 채웁니다. 이는 데이터의 전형적인 값을 기준으로 결측치를 채워 데이터의 일관성을 유지하기 위함입니다. 일반적으로 mode() 함수는 데이터에서 가장 빈번하게 나타나는 값을 반환하며, pandas 라이브러리에서는 이 값을 첫 번째로 선택합니다.

  1. 강의에서 제공한 방식:

    X_train['workclass'] = X_train['workclass'].fillna(X_train['workclass'].mode()[0])
    
    • 이 방식은 X_train의 각 컬럼에 대해 최빈값을 직접 fillna()의 인자로 사용합니다.
  2. 변수에 저장 후 사용:

    m1 = X_train['workclass'].mode()[0]
    X_train['workclass'] = X_train['workclass'].fillna(m1)
    
    • 이 방식은 최빈값을 먼저 변수에 저장한 후, 그 변수를 이용해 결측치를 채웁니다. 이는 코드의 재사용성과 가독성을 높이는 방법 중 하나입니다.

두 방법 모두 본질적으로 동일한 결과를 가져옵니다. 변수에 저장하여 사용하는 방식(m1, m2)을 사용하면 코드의 가독성이 높아지고, 다른 부분에서도 이 값을 재사용할 수 있다는 장점이 있습니다. 따라서, 기호를 만들어 활용하는 방법도 충분히 실행 가능한 좋은 접근법입니다.

관련 질문 참고 자료

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

최수영님의 프로필 이미지
최수영

작성한 질문수

질문하기