본문 바로가기
여러 가지 이야기/에러 모음

TypeError: '<' not supported between instances of 'str' and 'int'

by 김판다t 2023. 8. 7.
TypeError: '<' not supported between instances of 'str' and 'int'

 

번역 : 'str'와 'int' 인스턴스 사이에는 '<' 연산자를 사용할 수 없습니다.

 

 

문자열과 정수를 비교연산했을 때 발생하는 에러이다.

 

크게 다음과 같은 두 가지 경우에 발생하는 에러이다.

 

1.  실제로 문자열과 수치형 자료형을 연산할 때 

 

말 그대로 문자열이 일부 존재하는 객체(시리즈나 데이터 프레임)과  수치형 자료형인 객체를 연산하면 발생한다.

 

예시)

 

import pandas as pd
s1 = pd.Series([1, 2, 3])
s2 = pd.Series(['4', 5, 6])

 

 

s2의 원소인 4는 정수가 아니고 문자열 '4'이다.

s1

0    1
1    2
2    3
dtype: int64 <-- s1은 모두 정수이지만


s2

0    4
1    5
2    6
dtype: object <-- s2는 int가 아닌 object라서 문자열이 섞여 있다.

 

 

이 때 s1과 s2를 연산하면 위 에러가 발생한다.

 

s1 + s2

 

 

TypeError: unsupported operand type(s) for +: 'int' and 'str'

 

 


 

2. 문자열과 숫자의 정렬을 시도할 때

 

 

문자열과 숫자의 정렬을 시도할 때도  나타난다.

 

정렬이 대소 비교 연산의 결과에 따라 정렬을 하는 것이기 때문이다.

 

 

예시)

 

import pandas as pd
s = pd.Series([1, 2, 3, '4', 5])

 

 

s

 

0    1
1    2
2    3
3    4
4    5
dtype: object

 

위 시리즈 s는 4번째 행의 값인 4가 숫자가 아닌 '4'이기 때문에 전체 자료형이 object이다

 

 

이 때 정렬을 시도하면 문자열과 숫자들 사이의 비교연산을 시도하기 때문에 위와 같은 에러가 난다

 

 

s.sort_values()

 

TypeError: '<' not supported between instances of 'str' and 'int'

 

 

 

 

 

 

 

유튜브에서 판다스 강의 중입니다

 

https://www.youtube.com/@KimPandas