인프런 커뮤니티 질문&답변
결측치 처리 X_train데이터
해결된 질문
작성
·
52
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])- 이 방식은 X_train의 각 컬럼에 대해 최빈값을 직접 fillna()의 인자로 사용합니다.
 
 
- 이 방식은 X_train의 각 컬럼에 대해 최빈값을 직접 
- 변수에 저장 후 사용: - m1 = X_train['workclass'].mode()[0] X_train['workclass'] = X_train['workclass'].fillna(m1)- 이 방식은 최빈값을 먼저 변수에 저장한 후, 그 변수를 이용해 결측치를 채웁니다. 이는 코드의 재사용성과 가독성을 높이는 방법 중 하나입니다.
 
 
- 이 방식은 최빈값을 먼저 변수에 저장한 후, 그 변수를 이용해 결측치를 채웁니다. 이는 코드의 재사용성과 가독성을 높이는 방법 중 하나입니다.
두 방법 모두 본질적으로 동일한 결과를 가져옵니다. 변수에 저장하여 사용하는 방식(m1, m2)을 사용하면 코드의 가독성이 높아지고, 다른 부분에서도 이 값을 재사용할 수 있다는 장점이 있습니다. 따라서, 기호를 만들어 활용하는 방법도 충분히 실행 가능한 좋은 접근법입니다.
관련 질문 참고 자료
- 결측값 채우기 관련하여 최빈값 모드 사용법: 모드 사용 시 인덱싱의 활용에 대한 설명이 있습니다.
 
- 기타 다양한 결측치 처리가 다루어진 예시: 머신러닝 모델에 대한 결측치 처리 방식을 설명합니다.
 
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






