본문 바로가기
공부 목록/IT & 프로그래밍

python 팁 : pandas dataframe style로 데이터 특성 확인 및 출력하기

by 독학박사 2023. 7. 16.

목차


    파이썬으로 데이터의 특성을 확인하기 위해 일반적으로 matplotlib의 pyplot을 이용하여 가시화를 하게 됩니다. 데이터의 양이 많을 경우에는 해당 방법이 좋긴 하지만 가시화 코드를 별도로 구성해야 하기 때문에 조금의 시간이 더 듭니다. dataframe에서 style이란 모듈을 제공하고 있는데, dataframe을 단순히 출력해 주는 것만으로도 데이터의 특성을 확인할 수 있게 해 줍니다. 사용방법과 어떻게 특성을 확인할 수 있는지 확인해 보도록 하겠습니다.

     

     

    1. DataFrame.style이란?

    DataFrame.style은 Pandas에서 제공하는 기능으로, 데이터프레임의 시각적인 표현을 지원하는 객체입니다. 이를 사용하여 데이터프레임을 색상, 글꼴, 배경 등의 스타일로 꾸밀 수 있습니다. 주로 데이터프레임을 시각화하거나 보고서 작성에 데이터를 첨부할 때 활용할 수 있습니다. style에 포함되어 있는 몇 가지 함수들에 대해 각각의 예제코드와 같이 설명드리겠습니다.

     

    데이터 프레임 꾸미기
    데이터 프레임 꾸미기

     

     

    2. background_gradient

    데이터 값에 따라 배경색을 그라데이션으로 표현합니다. 각 함수의 특징을 확인하기 위한 dataframe을 임의의 숫자를 넣어 구성하였습니다. 

     

    import pandas as pd
    import numpy as np
    
    # 예제 DataFrame 생성
    data = {'A': np.random.rand(5),
            'B': np.random.rand(5),
            'C': np.random.rand(5)}
    df = pd.DataFrame(data)
    
    # 배경색 그라데이션 적용
    styled_df = df.style.background_gradient()
    
    # 스타일링 된 DataFrame 출력
    styled_df

     

    DataFrame.style.background_gradient()의 결과는 아래의 이미지와 같습니다. gradient의 의미는 '기울기' 또는 '경도'입니다. 해당 데이터 프레임의 데이터에서 작은 값을 흰색으로 시작해서 값이 높아질수록 점점 짙은 색으로 배경을 칠해 주는 함수입니다.

     

     

    background_gradient 적용 결과
    background_gradient 적용 결과

     

     

     

    3. highlight_max / highlight_min

    각 열 또는 행에서 가장 큰 값 또는 가장 작은 값을 강조 표시합니다. highlight_max와 highlight_min 함수는 축을 지정해 줘야 합니다. 'axis=0'은 칼럼을 기준으로 '1'은 행을 기준으로 합니다.

     

     

    import pandas as pd
    import numpy as np
    
    # 예제 DataFrame 생성
    data = {'A': np.random.rand(5),
            'B': np.random.rand(5),
            'C': np.random.rand(5)}
    df = pd.DataFrame(data)
    
    # 열별로 가장 큰 값 강조 표시
    styled_df = df.style.highlight_max(axis=0)
    
    # 스타일링 된 DataFrame 출력
    styled_df

     

    위의 예제 코드의 결과는 아래의 이미지와 같습니다. 'axis=0'으로 하니 칼럼에서 제일 큰 값을 노란색 배경으로 하이라이트 하여 출력합니다.

     

     

    highlight_max 적용 결과
    highlight_max 적용 결과

     

     

    4. bar

     수평 막대그래프를 생성하여 값의 상대적 크기를 시각화합니다. 단순히 데이터 프레임을 출력하는 것만으로 데이터 크기의 분포를 확인할 수 있어 보고 자료 작성에 매우 유용하게 사용됩니다.

     

    import pandas as pd
    import numpy as np
    
    # 예제 DataFrame 생성
    data = {'A': np.random.rand(5),
            'B': np.random.rand(5),
            'C': np.random.rand(5)}
    df = pd.DataFrame(data)
    
    # 수평 막대그래프로 값 시각화
    styled_df = df.style.bar()
    
    # 스타일링 된 DataFrame 출력
    styled_df

     

     

    위의 코드의 출력 결과물은 아래와 같으며, 값의 크기에 따른 바의 크기는 전체 데이터를 기준으로 만들어집니다.

     

    style.bar 적용 결과
    style.bar 적용 결과

     

     

    5. highlight_null

    누락된 값(null) 이 있는 셀을 강조 표시합니다. 누락된 값이 아주 적게 있을 경우 해당 함수를 이용하여 쉽게 찾아볼 수 있습니다.

     

    import pandas as pd
    
    # 예제 DataFrame 생성
    data = {'A': [1, 2, None, 4, 5],
            'B': [6, None, 8, 9, 10],
            'C': [11, 12, 13, None, 15]}
    df = pd.DataFrame(data)
    
    # 누락된 값 강조 표시
    styled_df = df.style.highlight_null()
    
    # 스타일링된 DataFrame 출력
    styled_df

     

    데이터 프레임에서 'None'으로 입력된 값에 대해 빨간색으로 nan 표기를 해줍니다.

     

     

    highlight_null 적용 결과
    highlight_null 적용 결과

     

     

    6. set_properties

    스타일을 설정하기 위한 속성들을 지정합니다. 예를 들어 글꼴, 텍스트 정렬 등을 변경할 수 있습니다. 데이터 프레임의 style은 데이터 프레임을 발표 자료 등에 첨부하기 위함이 큽니다. 파이썬에서 제공해 주는 폰트 속성으로 이쁜 자료를 만들기에는 무리가 있습니다. 그럴 경우 해당 함수를 이용하여 출력해 주면 됩니다.

     

    import pandas as pd
    import numpy as np
    
    # 예제 DataFrame 생성
    data = {'A': np.random.rand(5),
            'B': np.random.rand(5),
            'C': np.random.rand(5)}
    df = pd.DataFrame(data)
    
    # 속성 설정
    styled_df = df.style.set_properties(**{'text-align': 'right',
                                           'font-size': '12pt'})
                                           
    # 스타일링된 DataFrame 출력
    styled_df

     

    이번 예제 코드에서는 폰트를 오른쪽으로 맞추고 폰트 사이즈를 '12'로 지정해 주었습니다.

     

     

    set_properties 적용 결과
    set_properties 적용 결과

     

     

    7. 마치며

     python의 데이터프레임을 이용하여 데이터를 불러오고 전처리 등을 해서 최종 결과물을 나타냈지만 이를 보고 자료 등에 첨부하기 위해 일반적으로 엑셀로 추출하여 엑셀에서 편집 작업을 하게 됩니다. 위에서 설명한 방법들을 이용하여 데이터 프레임의 출력 결과물을 바로 사용한다면 보고 자료가 한층 전문스러울 수 있습니다. style의 기능을 잘 활용해 보시기 바랍니다.