본문 바로가기
Study/머신러닝

[4] 머신러닝 - 판다스 기초(3)

by 투말치 2021. 5. 24.

목차

    반응형

    ▶정렬

    데이터 프레임을 정렬하려면 sort_values() 함수를 사용하면 된다.

    주로 입력하는 파라미터로 by, ascending, inplace가 있다.

    by에는 기준으로 잡고 싶은 칼럼명을 입력한다.

    ascending은 true로 하면 오름차순, false면 내림차순으로 정렬이 된다. 기본값은 true다.

    inplace가 true면 정렬된 값이 원본에 바로 적용되고 false면 정렬된 데이터 프레임을 반환한다. 디폴트 값은 false다.

     

     

    #titanic_df : 타이타닉 탑승자 데이터가 담긴 데이터 프레임
    titanic_sorted = titanic_df.sort_values(by=['Name'])
    titanic_sorted.head(3)

    이름이 오름차순으로 정렬된 것을 확인할 수 있다.

     

     

    ▶aggregation 함수

    min(), max(), sum(), count()와 같이 여러 행에서 하나의 값을 반환하는 함수를 aggregation(집계) 함수라고 한다.

    데이터 프레임에서 aggregation을 호출하면 모든 칼럼들에 aggregation을 적용한다.

     

    titanic_df.count()를 실행하면

    다음과 같은 결과가 나온다.

    따라서 특정 칼럼에만 적용하고 싶다면 해당 칼럼을 추출해서 함수를 적용해야 한다.

     

    ▶groupby()

    groupby를 사용하면 데이터를 그룹별로 분류하고 연산도 할 수 있다.

    groupby를 호출하면DataFrameGroupBy 객체를 반환한다. 해당 결과에 aggregation 함수를 적용하면 모든 칼럼에 해당 함수를 적용한다.

     

     

    titanic_groupby = titanic_df.groupby('Pclass').count()
    titanic_groupby

    위와 같이 Pclass의 데이터가 1 / 2 / 3으로 나뉘고 해당 그룹별로 count 함수가 적용된다.

     

    만약 여러 개의 aggregation 함수를 사용하고 싶다면 다음과 같이 DataFrameGroupBy 객체의 agg()에 사용할 함수명을 넣어서 사용해야 한다.

    titanic_df.groupby('Pclass')['Age'].agg([max, min])

     

    ▶결손 데이터 처리

    결손 데이터란 값이 없는, 즉 null인 상태를 말한다. null은 NaN으로 표시된다.

    NaN 여부를 확인하는 함수는 isna()다. 빈 값을 채우기 위한 함수는 fillna()다.

     

    isna() 사용

    titanic_df.isna().head(3)

    isna를 사용하면 위와 같이 결손 데이터의 유무를 알려준다.

     

    결손 데이터의 개수를 구하고 싶다면 isna() 결과에 sum() 함수를 사용하면 된다.

    titanic_df.isna( ).sum( )

     

    fillna() 사용

    titanic_df['Cabin'] = titanic_df['Cabin'].fillna('C000')
    titanic_df.head(3)

    Cabin 칼럼에 Cabin이 아니라 C000으로 대체된 것을 확인할 수 있다.

    대체된 데이터를 원본 데이터에 바로 적용하려면 inplace 파라미터를 True로 해야 한다.

     

     

     

     

     

     

    출처

    책 - 파이썬 머신러닝 완벽 가이드

    반응형