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
'여러 가지 이야기 > 에러 모음' 카테고리의 다른 글
TypeError: unhashable type: 'set' (0) | 2023.08.07 |
---|---|
OverflowError: Python int too large to convert to C long (0) | 2023.08.07 |
TypeError: '<' not supported between instances of 'type' and 'type' (0) | 2023.08.07 |
TypeError: Index(...) must be called with a collection of some kind, 'col1' was passed (0) | 2023.07.10 |
ValueError: invalid literal for int() with base 10: (0) | 2023.06.07 |