Encoders require their input argument must be uniformly strings or numbers. Got ['int', 'str'] 라는 오류가 떴습니다.
222
작성한 질문수 31
보니깐 int와 str이 혼합되어서 뜬것 같은데..
cols = X_train.select_dtypes(include = 'object').columns print(list) from sklearn.preprocessing import LabelEncoder cols = X_train.select_dtypes(include = 'object').columns le = LabelEncoder() for col in cols : le = LabelEncoder() X_train[col] = le.fit_transform(X_train[col]) X_test[col] = le.transform(X_test[col])
그래서 이렇게 cols라는 코드를 사전에 지정해줬는데... 왜 뜰까요?
처음부터 숫자와 str 데이터를 분리해서 인코딩 했어야 할까요?
답변 3
0
print(cols)는
class 'list'> Index(['workclass', 'education', 'marital.status', 'occupation', 'relationship', 'race', 'sex', 'native.country'], dtype='object')
이렇게 나왔구요.
X_train.head()는 아래와 같습니다..

0
어떤 데이터에서 이런상황이 나왔을까요?
X_trrain.head()와 cols를 print()해서 보여주실 수 있을까요?
0
print(cols)는
class 'list'> Index(['workclass', 'education', 'marital.status', 'occupation', 'relationship', 'race', 'sex', 'native.country'], dtype='object')
이렇게 나왔구요.
X_train.head()는 아래와 같습니다..

답글 달기
수정
삭제
0
큰 문제 없어보이는데 다시 실행해도 에러가 나올까요?
만약 시험에서 이런 상황이라면 컬럼 1개씩 인코딩하고
에러가 나는 컬럼은 제거하거나 아래와같이 str로 변환하겠습니다.
X_train[col] = X_train[col].astype(str)
X_test[col] = X_test[col].astype(str)
0
안녕하세요, 인프런 AI 인턴입니다. 김치현님, 질문 주셔서 감사합니다.
현재 겪고 계신 TypeError: Encoders require their input argument must be uniformly strings or numbers. Got [‘int’, ‘str’] 오류는 데이터의 컬럼에 서로 다른 타입(int와 str)이 혼합되어 있을 때 발생합니다. LabelEncoder는 입력 값들이 모두 문자열이거나 모두 숫자여야 합니다.
문제를 해결하기 위해서는 다음과 같은 방법을 사용할 수 있습니다:
- 데이터 타입 확인 및 변환: 먼저, 데이터를 전처리하여
object타입 컬럼 중에서 int나 float로 변환할 수 있는 것은 미리 변환합니다. 예를 들어, 특정 열이 사실 숫자를 나타낸다면astype(int)혹은astype(float)로 변환하시기 바랍니다.
for col in cols:
if X_train[col].apply(lambda x: isinstance(x, (int, float))).all():
X_train[col] = X_train[col].astype(str)
X_test[col] = X_test[col].astype(str)
NaN 처리: 결측치는 encoding 시 문제가 될 수 있으므로
fillna()를 사용해 NaN 값을 다른 값으로 대체합니다.데이터 타입 확인:
select_dtypes()사용 후 실제로 선택된 컬럼이 의도한 컬럼인지를 출력하여 확인해봅니다.스칼라 사용 고려: 데이터가 비슷한 형태라도 완전히 일치하지 않는 경우가 많아
LabelEncoder대신pd.get_dummies()를 사용하여 가변수화(dummy variable) 해볼 수 있습니다.
위 방법을 사용하여 데이터의 타입을 맞춰주시면 오류를 해결할 수 있을 것입니다. 추가적인 사항이나 개선이 필요하다면 더 문의하세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
수강 연장 가능 여부 문의
0
19
1
강의 구매했는데 교재 필수일까요
0
20
2
수강기간 연장 가부 문의드립니다.
0
19
2
수강기간 연장이 가능한지 양해를 구하며 문의를 드립니다.
0
25
2
작업형2 모의문제2에서 drop이랑 인코딩
0
26
2
인코딩을 다 꼭 해봐야하는지
0
36
2
안녕하세요? 강사님 질문있습니다.(인코딩관련)
0
57
2
이진분류에서 양성 클래스가 0일 때 평가 방법
0
46
2
원핫인코딩 전 train과 test 병합여부
0
50
2
수강기간 연장
0
68
2
29강 작업2형의 이상치 처리
0
65
2
수강기간 연장 문의드립니다!
0
65
2
9월에 실기출제기준 개정내역에 신설된부분
0
55
1
작업형2 모의문제2 결과값 관련 문의드립니다.
0
66
2
12회차 시험 실패 후 13회 도전 예정입니다.
0
55
1
random_state 값
0
72
2
강의 연장 문의 드립니다.
0
66
2
강의 연장 문의
0
61
2
오징어게임
0
70
1
object 컬럼이 여러 개인 경우 인코딩 전처리 방법
1
49
2
데이터 전처리 순서 관련
0
64
2
작업형2 모의문제 데이터 불러오기
0
62
2
강의 연장 부탁드립니다!
0
67
2
수강기간 연장 문의드립니다!
0
65
2





