[Pandas] 정렬, Aggregation 함수, GroupBy 적용
19 Mar 2020 | PandasDataFrame, Series의 정렬 - sort_values( )
DataFrame과 Series의 정렬을 위해서는 sort_values( ) 메서드를 사용한다. 주요 파라미터는 by, ascending, inplace이며 by는 정렬의 기준이 될 칼럼들을 명시해주면 된다. Ascending은 말 그대로 오름차순 정렬이니 True면 오름차순, False면 내림차순이다. Default는 True상태이다.
여러 개의 칼럼을 정렬하려면 리스트를 넣어주면 된다. Pclass와 Name을 내림차순으로 정렬하면 아래와 같다.
Aggregation 함수 적용
Aggregation 함수에는 min( ), max( ), sum( ), count( ) 같은 함수가 존재한다. DataFrame에서 aggregation을 바로 호출할 경우 모든 칼럼에 해당 aggregation을 적용한다. 다음과 같이 titanic_df에 count( )를 적용하면 모든 칼럼에 count( ) 결과를 반환한다.
특정 칼럼에 aggregation 함수를 적용하기 위해서는 대상 칼럼들만 추출해서 적용시켜주면 된다.
groupby( ) 적용
groupby( ) 사용 시 입력 파라미터 by에 칼럼을 입력하면 대상 칼럼으로 groupby 된다. DataFrame에 groupby( )를 호출하면 DataFrameGroupBy라는 또 다른 형태의 DataFrame을 반환한다. 아래는 Pclass 칼럼 기준으로 GroupBy 시키는 예이다.
이렇게 얻은 결과에 aggregation 함수를 적용하면 groupby 대상 칼럼을 제외한 모든 칼럼에 해당 aggregation이 적용된다.
또한 여러개의 aggregation을 함께 적용이 가능하다. 밑의 예제는 SQL문법으로 Select max(Age), min(Age) from titanic_table groupby Pclass
와 동일한 의미를 가진다.
SQL Select max(Age), sum(SibSp), avg(Fare) from titanic_table group by Pclass
와 같이 여러 개의 칼럼에 서로 다른 aggregation을 적용하기 위해서는 agg 의 인자로 딕셔너리 형태를 넣어주면 된다.
Comments