TypeError: '<' not supported between instances of 'type' and 'type'
번역 : 'type'과 'type' 인스턴스 사이에는 '<' 연산자를 사용할 수 없습니다.
type자료형과 type 자료형을 비교연산하거나 정렬했을 때 발생하는 에러이다
다음 예를 보자
import pandas as pd
data1 = {'팀': ['주식매매1', '채권관리', '채권매매', '파생상품1', '주식매매2', '비상장주식'],
'잔고': [10, '20', 30, float('nan'), '50', 60]}
df = pd.DataFrame(data1)
이 예에서 잔고열의 dtype의 빈도수를 집계하고 싶다
아래와 같은 코드로 가능하다
<class 'int'> 3
<class 'str'> 2
<class 'float'> 1
Name: 잔고, dtype: int64
이 결과를 index로 정렬하면 위와 같은 에러가 발생한다
df['잔고'].map(type).value_counts().sort_index()
TypeError: '<' not supported between instances of 'type' and 'type'
정렬을 하고 싶다면 type을 문자열로 바꾸거나
df['잔고'].map(type).astype('str').value_counts().sort_index()
<class 'float'> 1
<class 'int'> 3
<class 'str'> 2
Name: 잔고, dtype: int64
type(x).__name__을 써서 애초부터 문자열로 반환시키자
df['잔고'].map(lambda x: type(x).__name__).value_counts().sort_index()
float 1
int 3
str 2
Name: 잔고, dtype: int64
유튜브에서 판다스 강의 중입니다
'여러 가지 이야기 > 에러 모음' 카테고리의 다른 글
OverflowError: Python int too large to convert to C long (0) | 2023.08.07 |
---|---|
TypeError: '<' not supported between instances of 'str' and 'int' (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 |
[pandas] NameError: name 'pd' is not defined (0) | 2023.06.02 |