Python/NumPy | Pandas

[Python] Pandas - DataFrame.dtypes를 Dictionary로 변환

비번변경 2023. 3. 26. 18:01

개요

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?