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

파이썬 판다스의 데이터 프레임 통계 값 관련 메서드 정리

by 독학박사 2023. 4. 27.

목차


     파이썬에서는 수많은 라이브러리를 사용하는데, 각 라이브러리마다 갖고 있는 메서드들이 있습니다. 데이터 분석을 위해 파이썬을 이용하시는 분들이라면 이러한 메서드들의 종류와 사용 목적을 정확히 알아야 합니다. 오늘은 판다스 라이브러리 중 데이터 프레임의 메서드들 중에서 통계 관련된 것들을 정리해 보려고 합니다.

     

     

    파이썬 Pandas DataFrame의 통계 메서드들
    파이썬 Pandas DataFrame의 통계 메서드들

     

    1. describe()

     오늘 메서드를 설명하기 위한 기본 데이터는 아래와 같은 코드로 생성합니다. Pandas을 pd라는 이름으로 임포트를 하고, 딕션너리 형태의 데이터를 만들어 준 후 DataFrame이라는 메서드를 통해 df 객체를 생성해 줍니다.

     

    import pandas as pd
    
    data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Ella'],
            'age': [25, 30, 45, 22, 37],
            'height': [165.2, 180.3, 175.0, 160.9, 170.7],
            'weight': [62.3, 75.0, 80.1, 57.2, 68.5]}
            
    df = pd.DataFrame(data)

     

    생성된 데이터 모습
    생성된 데이터 모습

     

     'describe()'는 데이터 프레임의 기술 통계 정보를 요약해서 출력하는 메서드입니다. df.describe(percentiles=None, include=None, exclude=None, datetime_is_numeric=False) 형태로 사용하며, 기본적으로 숫자형 데이터에 대한 통계 정보를 출력합니다. percentiles를 통해 원하는 분위수의 값을 지정할 수 있고, include와 exclude를 통해 특정 데이터 타입의 열만 선택하거나 제외할 수도 있습니다. datetime_is_numeric을 True로 설정하면 datetime 타입의 열도 숫자형 데이터로 취급하여 통계 정보를 출력합니다.

     

    df = pd.DataFrame(data)
    
    # describe() 메소드 사용
    print(df.describe())
    
    # 결과값
    #             age      height     weight
    #count   5.000000    5.000000   5.000000
    #mean   31.800000  169.420000  68.620000
    #std    10.301691    7.865767  8.202088
    #min    22.000000  160.900000  57.200000
    #25%    25.000000  165.200000  62.300000
    #50%    30.000000  170.700000  68.500000
    #75%    37.000000  175.000000  75.000000
    #max    45.000000  180.300000  80.100000

     

     

    2. mean()

     데이터 프레임의 각 열의 평균값을 계산하는 메서드입니다. df.mean(axis=None, skipna=None, level=None, numeric_only=None, **kwargs) 형태로 사용하며, axis를 통해 평균을 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 평균을 계산하고, True로 설정하면 결측치를 제외한 평균을 계산합니다.

     

    print(df.mean())
    
    # 결과값
    #age        31.80
    #height    170.42
    #weight     68.62
    #dtype: float64

     

    3. median()

     데이터 프레임의 각 열의 중앙값을 계산하는 메서드입니다. df.median(axis=None, skipna=None, level=None, numeric_only=None, **kwargs) 형태로 사용하며, axis를 통해 중앙값을 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 중앙값을 계산하고, True로 설정하면 결측치를 제외한 중앙값을 계산합니다.

    print(df.median())
    
    #결과값
    #age        30.0
    #height    170.7
    #weight     68.5
    #dtype: float64

     

     

    4. min()

     데이터 프레임의 각 열의 최솟값을 계산하는 메서드입니다. df.min(axis=None, skipna=None, level=None, numeric_only=None, **kwargs) 형태로 사용하며, axis를 통해 최솟값을 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 최솟값을 계산하고, True로 설정하면 결측치를 제외한 최솟값을 계산합니다.

     

    print(df.min())
    
    # 결과값
    #name        Alice
    #age            22
    #height      160.9
    #weight       57.2
    #dtype: object
     

     

    5. max()

     데이터 프레임의 각 열의 최댓값을 계산하는 메서드입니다. df.max(axis=None, skipna=None, level=None, numeric_only=None, **kwargs) 형태로 사용하며, axis를 통해 최댓값을 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 최댓값을 계산하고, True로 설정하면 결측치를 제외한 최댓값을 계산합니다.

    print(df.max())
    
    # 결과값
    #
    #name        Ella
    #age           45
    #height     180.3
    #weight      80.1
    #dtype: object

     

     

    6 sum()

     데이터 프레임의 각 열의 합계를 계산하는 메서드입니다. df.sum(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs) 형태로 사용하며, axis를 통해 합계를 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 합계를 계산하고, True로 설정하면 결측치를 제외한 합계를 계산합니다. 이번 데이터에서 name 칼럼에 있는 데이터들은 문자열인데 sum을 하게 되면 문자열들을 다 붙여주는 결과가 나옵니다.

     

    print(df.sum())
    
    #결과값
    #name      AliceBobCharlieDavidElla
    #age                            159
    #height                       852.1
    #weight                       343.1
    #dtype: object

     

    7. std()

     데이터 프레임의 각 열의 표준편차를 계산하는 메서드입니다. df.std(axis=None, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs) 형태로 사용하며, axis를 통해 표준편차를 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 표준편차를 계산하고, True로 설정하면 결측치를 제외한 표준편차를 계산합니다. ddof는 자유도를 지정하는데, 기본값은 1로 설정되어 있습니다.

     

     std() 메서드는 숫자만 계산합니다. 데이터 안에 문자열이 들어가게 되면 해당 값을 제외한 결괏값을 반환합니다. 일반적으로 데이터 프레임 안에 숫자와 문자가 같이 존재하는 경우가 있는데, 해다 메서드를 사용한 결과는 data의 칼럼 개수와 다를 수 있습니다.

    print(df.std())
    
    # 결과값
    #age       9.311283
    #height    7.690059
    #weight    9.258348
    #dtype: float64

     

    8. var()

     데이터 프레임의 각 열의 분산을 계산하는 메서드입니다. df.var(axis=None, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs) 형태로 사용하며, axis를 통해 분산을 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 분산을 계산하고, True로 설정하면 결측치를 제외한 분산을 계산합니다. ddof는 자유도를 지정하는데, 기본값은 1로 설정되어 있습니다. std()와 마찬가지로 문자열은 취급하지 않습니다.

    print(df.var())
    
    #결과값
    #age       86.700
    #height    59.137
    #weight    85.717
    #dtype: float64

     

    9. corr()

     데이터 프레임의 각 열 간의 상관계수를 계산하는 메서드입니다. df.corr(method='pearson', min_periods=1) 형태로 사용하며, method를 통해 상관계수를 계산하는 방법을 선택할 수 있습니다. 기본값은 'pearson'으로 피어슨 상관계수를 계산합니다. min_periods는 최소한으로 필요한 유효한 관측치의 개수를 지정하는데, 기본값은 1로 설정되어 있습니다.

    print(df.corr())
    
    #             age    height    weight
    #age     1.000000  0.603735  0.853526
    #height  0.603735  1.000000  0.903434
    #weight  0.853526  0.903434  1.000000

     

     

    10. 마치며

     지금까지 판다스 내 데이터프레임의 메서드들 중에서 통계값을 구할 때 사용하는 것들에 대해 알아보았습니다. 파이썬 라이브러리 사용에 있어 가장 어려운 부부이 메서드들의 파라미터에 대한 이해일 겁니다. 파이썬 메서드들의 사용에 있어 파라미터들이 의미하는 것과 그에 따른 결과에 대해 지속적인 포스팅을 할 예정입니다.

    댓글