[Pandas] data type별로 컬럼들을 사전 형태로 모으기

2020. 7. 23. 19:32분석 Python/Pandas Tip

728x90

판다스에서 data type 별로 모으기 위해서 여러 가지를 시도할 수가 있다.

data.sample(50).select_dtypes("float").columns.tolist()
data.sample(50).select_dtypes("object").columns.tolist()

하지만 이런 것 말고 타입별로 한꺼번에 모으는 작업을 하고 싶다면 아래와 같은 함수를 사용하면 된다.

def make_type_dct(df) :
    import re
    type_dct = {"float" : [], "int" : [], "object" :[] , "category" : []}
    r = re.compile(r"([A-Za-z\s]+)")
    [ type_dct[r.search(str(k)).group(1)].extend(list(v)) for k, v in df.groupby(df.dtypes, axis=1)] 
    return type_dct
make_type_dct(data)

나름 꿀팁인 것 같아 공유~

하면서 느끼는 점은 Groupby 가 참 여러가지를 쉽게 해줄 수 있는 것 같다.

728x90