- DataFrame, Series 정렬
DataFrame과 Series를 정렬하기 위해서는 sort_values() 메서드를 이용한다. sort_values()의 주요 파라미터 값에는 by, ascending, inplace가 있다. by값에는 정렬 기준이 되는 열 이름을 입력하고, ascending은 오름차순으로 정렬할지 내림차순으로 정렬할지를 결정한다. 기본값은 ascending=True(오름차순)이다. inplace는 정렬한 결과를 원본 DataFrame에 적용할지를 결정한다. 기본값은 inplace=False(원본 DataFrame은 유지)이다.
import pandas as pd
# 타이타닉 데이터 DataFrame으로 불러오기
titanic_df = pd.read_csv('train.csv')
# 1차로 Age열을 기준으로, 2차로 Name열을 기준으로 내림차순 정렬된 데이터 반환
titanic_sorted = titanic_df.sort_values(by=['Age', 'Name'], ascending=False, inplace=False)
titanic_sorted.head()
실행 결과

- Aggregation 함수
DataFrame에서는 min(), max(), sum(), count(), mean()과 같은 다양한 aggregation 함수를 사용할 수 있다.
# 모든 열에 대하여 데이터의 개수 구하기
titanic_df.count()
실행 결과

데이터가 모두 들어있는 열은 891로 나오고, 그렇지 않은 열은 비어 있는 행의 개수를 제외한 만큼 출력된 결과를 확인할 수 있다. 아래와 같이 특정 열에 대해서만 함수를 적용할 수도 있다.
# Age와 Fare열의 평균 구하기
titanic_df[['Age', 'Fare']].mean()
실행 결과

- groupby() 적용
groupby()의 파라미터 by에 열 이름을 입력하면 해당 열을 기준으로 groupby된 DataFrame Groupby 객체를 반환한다.
titanic_groupby = titanic_df.groupby(by='Pclass')
print(type(titanic_groupby))
실행 결과

groupby()를 호출하여 반환된 결과에 aggregation 함수를 적용하면 기준이 된 열을 제외한 모든 열에 대하여 aggregation 함수를 적용한 결과를 얻을 수 있다.
# groupby에 aggregation함수를 적용하여 Pclass별 Age의 최댓값 구하기
titanic_groupby = titanic_df.groupby(by='Pclass')[['Age']].max()
titanic_groupby
실행 결과

groupby()로 반환된 객체에 여러 개의 aggregation함수를 적용하고자 할 때는 agg()내에 함수명을 입력하여 사용할 수 있다.
# Pclass별 Age, Fare의 최대값, 최소값 구하기
titanic_groupby = titanic_df.groupby(by='Pclass')[['Age', 'Fare']].agg([max, min])
titanic_groupby
실행 결과

각 열에 대해 서로 다른 aggregation함수를 적용하려면 aggregation이 적용될 열 이름과 aggregation 함수로 이루어진 딕셔너리 형태를 agg() 내에 입력한다.
# Pclass별 Age의 최소값, Fare의 최대값 구하기
titanic_groupby = titanic_df.groupby('Pclass').agg({'Age':'min', 'Fare':'max'})
titanic_groupby
실행 결과

만약 별도의 열 이름을 지정해주고자 할 때는 agg() 내에 지정할 열 이름에 기존 열과 aggregation함수를 튜플 형태로 저장한다.
# Age의 최소값은 age_min열로, Fare의 최대값은 fare_max열로 지정하여 나타내기
titanic_groupby = titanic_df.groupby('Pclass').agg(age_min = ('Age', 'min'), fare_max = ('Fare', 'max'))
titanic_groupby
실행 결과

'머신러닝(MachineLearning) > 판다스(Pandas)' 카테고리의 다른 글
DataFrame 결손 값 처리하기, apply lambda (0) | 2022.07.14 |
---|---|
DataFrame에서 원하는 데이터 추출하기 (0) | 2022.07.08 |
Index 객체 (0) | 2022.07.07 |
DataFrame 데이터셋 수정하기 (0) | 2022.06.26 |
DataFrame으로 데이터 불러오기 (0) | 2022.06.24 |