개요
DataFrame의 데이터 타입을 확인할 때는 dtypes 속성을 사용한다. 그리고 dtypes 속성은 Series이다.
import numpy as np
import pandas as pd
map_code_message = [
{'code':'00','return_message':'Continue'},
{'code':'01','return_message':'Switching Protocol'},
{'code':'02','return_message':'Processing'},
{'code':'03','return_message':'Early Hints'},
]
df = pd.DataFrame(map_code_message)
print(df.dtypes)
print(f'type : {type(df.dtypes)}')
dtypes 속성으로 얻은 결과를 Dictionary로 변환하고 싶다. 방법을 정리해 둔다.
방법
Series 데이터를 Dictrionary로 변환할 때는 to_dict 함수를 사용한다.
import numpy as np
import pandas as pd
map_code_message = [
{'code':'00','return_message':'Continue'},
{'code':'01','return_message':'Switching Protocol'},
{'code':'02','return_message':'Processing'},
{'code':'03','return_message':'Early Hints'},
]
df = pd.DataFrame(map_code_message)
print(df.dtypes.to_dict())
다만 dtypes 속성값에 to_dict 함수를 사용하면 클래스 정보까지 보이게 된다. 이 글에서는 컬럼명을 키로 하고 타입의 이름을 값으로 하는 Dictionary로 변환하고 싶다. to_dict 함수를 사용한 결과에서 클래스 정보를 제거하고 싶을 때는 아래와 같이 사용하면 된다.
df.dtypes.apply(lambda x: x.name).to_dict()
예시)
import numpy as np
import pandas as pd
map_code_message = [
{'code':'00','return_message':'Continue'},
{'code':'01','return_message':'Switching Protocol'},
{'code':'02','return_message':'Processing'},
{'code':'03','return_message':'Early Hints'},
]
df = pd.DataFrame(map_code_message)
print(f'to_dict : {df.dtypes.to_dict()}')
print(f'apply and to_dict : {df.dtypes.apply(lambda x: x.name).to_dict()}')
참고 문서
Is there a way to generate the dtypes as a dictionary in pandas?