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

데이터 프레임의 정보를 확인하는 pandas의 메서드들

by 독학박사 2023. 5. 30.

목차


    파이썬의 라이브러리  pandas는 데이터 분석과 조작을 위한 강력한 라이브러리로, 다양한 메서드를 제공합니다. 오늘은 이러한 메서드들을 이용하여 데이터 프레임의 각종 정보를 확인하는 데 유용한 내용들을 정리해보려고 합니다. 오늘 확인할 메서드들은 다음과 같습니다.

     

    info / head / tail / describe / value_counts / unique / nunique / dtypes

     

     

    파이썬에서 데이터셋의 내용이 궁금할 때
    파이썬에서 데이터셋의 내용이 궁금할 때

     

     1. pandas.info()

     데이터프레임의 전반적인 정보를 제공합니다. 열의 개수, 열의 이름, 데이터 타입, 누락된 값의 개수 등을 확인할 수 있습니다. 이 메서드는 데이터프레임의 구조를 파악하는 데에 유용합니다.

     

    import pandas as pd
    
    # 데이터프레임 생성
    data = {'Name': ['John', 'Emma', 'Mike'],
            'Age': [25, 28, 32],
            'City': ['New York', 'London', 'Paris']}
    df = pd.DataFrame(data)
    
    # 데이터프레임 정보 출력
    df.info()

     

    # 결과물
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 3 entries, 0 to 2
    Data columns (total 3 columns):
     #   Column  Non-Null Count  Dtype 
    ---  ------  --------------  ----- 
     0   Name    3 non-null      object
     1   Age     3 non-null      int64 
     2   City    3 non-null      object
    dtypes: int64(1), object(2)
    memory usage: 200.0+ bytes

     

    해당 코드에서는 info() 메서드를 사용하여 데이터프레임의 전반적인 정보를 출력합니다. 열의 개수, 열의 이름, 데이터 타입 및 누락된 값의 개수 등을 확인할 수 있습니다. 이 경우, 데이터프레임에는 3개의 행과 3개의 열이 있으며, 'Name'과 'City' 열은 object(문자열) 타입이고, 'Age' 열은 int64(정수) 타입입니다. 누락된 값은 없음을 알 수 있습니다.

     

     

     2. pandas.head()

     데이터프레임의 첫 n개의 행을 반환합니다. 기본값은 5입니다. 이 메서드를 사용하면 데이터의 일부를 미리 확인할 수 있어 데이터의 구성을 파악하는 데 도움이 됩니다.

     

    import pandas as pd
    
    # 데이터프레임 생성
    data = {'Name': ['John', 'Emma', 'Mike', 'Sarah', 'David'],
            'Age': [25, 28, 32, 29, 36],
            'City': ['New York', 'London', 'Paris', 'Sydney', 'Tokyo']}
    df = pd.DataFrame(data)
    
    # 첫 3개 행 출력
    print(df.head(3))
    
    # 결과물
    #   Name  Age      City
    #0  John   25  New York
    #1  Emma   28    London
    #2  Mike   32     Paris

     

     

    위 코드에서는 head(3) 메서드를 사용하여 데이터프레임의 첫 3개 행을 출력합니다. 이를 통해 데이터의 일부를 미리 확인할 수 있습니다. 출력된 결과에서는 'Name', 'Age', 'City' 열의 값이 3개의 행에 대해 출력되었습니다.

     

     3. pandas.tail()

     데이터프레임의 마지막 n개의 행을 반환합니다. 기본값은 5입니다. head()와 마찬가지로 데이터의 뒷부분을 확인할 수 있습니다.

     

    import pandas as pd
    
    # 데이터프레임 생성
    data = {'Name': ['John', 'Emma', 'Mike', 'Sarah', 'David'],
            'Age': [25, 28, 32, 29, 36],
            'City': ['New York', 'London', 'Paris', 'Sydney', 'Tokyo']}
    df = pd.DataFrame(data)
    
    # 마지막 2개 행 출력
    print(df.tail(2))
    
    # 결과물
    #     Name  Age    City
    # 3  Sarah   29  Sydney
    # 4  David   36   Tokyo

     

    위 코드에서는 tail(2) 메서드를 사용하여 데이터프레임의 마지막 2개 행을 출력합니다. 이를 통해 데이터의 뒷부분을 확인할 수 있습니다. 출력된 결과에서는 'Name', 'Age', 'City' 열의 값이 마지막 2개 행에 대해 출력되었습니다.

     

     4. pandas.describe()

     자형 열에 대한 기술통계를 제공합니다. 각 열의 개수, 평균, 표준편차, 최소값, 25%, 50%, 75% 백분위수, 최대값 등을 확인할 수 있습니다. 이를 통해 데이터의 분포와 중심 경향성을 파악할 수 있습니다.

     

    import pandas as pd
    
    # 데이터프레임 생성
    data = {'Name': ['John', 'Emma', 'Mike', 'Sarah', 'David'],
            'Age': [25, 28, 32, 29, 36],
            'City': ['New York', 'London', 'Paris', 'Sydney', 'Tokyo']}
    df = pd.DataFrame(data)
    
    # 기술통계 출력
    print(df.describe())
    
    
    # 결과물
    #              Age
    # count   5.000000
    # mean   30.000000
    # std     4.320494
    # min    25.000000
    # 25%    28.000000
    # 50%    29.000000
    # 75%    32.000000
    # max    36.000000

     

    위 코드에서는 describe() 메서드를 사용하여 숫자형 열('Age')에 대한 기술통계를 출력합니다. 이를 통해 데이터의 분포와 중심 경향성을 파악할 수 있습니다. 출력된 결과에서는 열의 개수(count), 평균(mean), 표준편차(std), 최소값(min), 25%, 50%, 75% 백분위수, 최대값(max) 등이 제공됩니다.

     

     5. pandas.value_counts()

    범주형 열의 각 값의 빈도를 세어 반환합니다. 이를 통해 범주형 데이터의 분포를 파악할 수 있습니다.

     

    import pandas as pd
    
    # 데이터프레임 생성
    data = {'Category': ['A', 'B', 'A', 'C', 'B', 'B', 'C']}
    df = pd.DataFrame(data)
    
    # 값의 빈도 출력
    print(df['Category'].value_counts())
    
    
    # 결과물
    # B    3
    # C    2
    # A    2
    # Name: Category, dtype: int64

     

    위 코드에서는 value_counts() 메서드를 사용하여 'Category' 열의 각 값의 빈도를 출력합니다. 이를 통해 범주형 데이터의 분포를 파악할 수 있습니다. 출력된 결과에서는 'B' 값이 3번, 'C' 값이 2번, 'A' 값이 2번 등장함을 알 수 있습니다.

     

     

     6. pandas.unique()

     열의 고유한 값들을 반환합니다. 이를 통해 열에 어떤 값이 있는지 확인할 수 있습니다.

     

    import pandas as pd
    
    # 데이터프레임 생성
    data = {'Category': ['A', 'B', 'A', 'C', 'B', 'B', 'C']}
    df = pd.DataFrame(data)
    
    # 고유한 값 출력
    print(df['Category'].unique())
    
    
    # 결과물
    # ['A' 'B' 'C']

     

    위 코드에서는 unique() 메서드를 사용하여 'Category' 열의 고유한 값을 출력합니다. 이를 통해 열에 어떤 값이 있는지 확인할 수 있습니다. 출력된 결과에서는 'A', 'B', 'C'가 열에 고유하게 존재함을 알 수 있습니다.

     

     7. pandas.nunique()

     열의 고유한 값의 개수를 반환합니다. 이를 통해 열에 있는 고유한 값의 개수를 확인할 수 있습니다.

     

    import pandas as pd
    
    # 데이터프레임 생성
    data = {'Category': ['A', 'B', 'A', 'C', 'B', 'B', 'C']}
    df = pd.DataFrame(data)
    
    # 고유한 값의 개수 출력
    print(df['Category'].nunique())
    
    # 결과물
    # 3

     

    위 코드에서는 nunique() 메서드를 사용하여 'Category' 열의 고유한 값의 개수를 출력합니다. 이를 통해 열에 있는 고유한 값의 개수를 확인할 수 있습니다. 출력된 결과에서는 'Category' 열에는 3개의 고유한 값이 존재함을 알 수 있습니다.

     

     8. pandas.dtypes()

     각 열의 데이터 타입을 반환합니다. 이를 통해 열의 데이터 타입을 파악할 수 있습니다

     

    import pandas as pd
    
    # 데이터프레임 생성
    data = {'Name': ['John', 'Emma', 'Mike'],
            'Age': [25, 28, 32],
            'City': ['New York', 'London', 'Paris']}
    df = pd.DataFrame(data)
    
    # 데이터 타입 출력
    print(df.dtypes)
    
    
    # 결과물
    # Name    object
    # Age      int64
    # City    object
    # dtype: object

     

    위 코드에서는 dtypes 속성을 사용하여 각 열의 데이터 타입을 출력합니다. 이를 통해 열의 데이터 타입을 파악할 수 있습니다. 출력된 결과에서는 'Name'과 'City' 열은 object(문자열) 타입이고, 'Age' 열은 int64(정수) 타입임을 알 수 있습니다.

     

     

    9. 마치며

     데이터 분석을 위해 사용하는 데이터프레임이 어떤 형태로 되어 있는지 확인을 할 수 있어야 데이터 분석 방향을 잡을 수 있습니다. 오늘 소개한 메서드들을 이용하면 데이터프레임의 정보를 여러 각도에서 확인해 볼 수 있을 겁니다.