해결된 질문
작성
·
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
라이브러리에서는 이 값을 첫 번째로 선택합니다.
강의에서 제공한 방식:
X_train['workclass'] = X_train['workclass'].fillna(X_train['workclass'].mode()[0])
fillna()
의 인자로 사용합니다.변수에 저장 후 사용:
m1 = X_train['workclass'].mode()[0]
X_train['workclass'] = X_train['workclass'].fillna(m1)
두 방법 모두 본질적으로 동일한 결과를 가져옵니다. 변수에 저장하여 사용하는 방식(m1, m2)을 사용하면 코드의 가독성이 높아지고, 다른 부분에서도 이 값을 재사용할 수 있다는 장점이 있습니다. 따라서, 기호를 만들어 활용하는 방법도 충분히 실행 가능한 좋은 접근법입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.