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

TypeError: '<' not supported between instances of 'type' and 'type'

by 김판다t 2023. 8. 7.
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

 

 

 

 

 

 

 

 

 

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

 

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