본문 바로가기
Data Science

[Pandas] 판다스 정렬 sort_values groupby

by Lora Baek 2022. 8. 17.
300x250

판다스 정렬 sort_values

 

데이터프레임과 시리즈 정렬 모두 sort_values()를 이용하면 된다.

 

sort_values는 RDBMS SQL의 order by와 매우 유사한 기능으로,

by=['칼럼명'] 으로 특정 칼럼 기준 정렬을 수행할 수 있고

ascending=True로 오름차순, False로 내림차순 정렬이 가능하다.(기본은 True 즉 오름차순)

inplace=True 로 데이터프레임의 정렬 결과를 그대로 적용할 수도 있다.(기본은 False)

 

판다스 Aggregation

SQL의 aggregation 함수와 비슷하게 min, max, sum, count와 같은 기초 통계량을 계산할 수 있지만,

판다스 Aggregation은 데이터프레임에서 바로 호출해서 칼럼들 전체에 적용할 수 있다.

 

예를 들어 df.count()를 적용해서 모든 칼럼의 결과를 반환할 수도 있고,

df[['Age','Fare']].mean() 과 같이 원하는 특정 칼럼만 선택해서 값을 확인할 수도 있다.

값을 계산할 때는 데이터 타입에 따라서 의미 있는 결과값을 도출할 수 있도록 유의하자.

판다스 groupby()

SQL의 groupby와 비슷하지만, 데이터프레임에서는 by='칼럼명'을 입력하면 대상 칼럼을 기준으로 그룹이 형성된다.

데이터프레임에 groupby()를 호출 시, DataFrameGroupBy라는 데이터프레임 객체가 반환된다.

보통은 groupby로 반환된 결과에 aggregation 함수를 적용한 결과를 바로 얻는다.

Pclass로 그룹화한 데이터들을 각 그룹별로 몇 개씩 있는지 count()를 이용해서 확인해보았다.

Select count(PassengerId), count(Survived) from titanic_table group by Pclass

SQL에서 위와 같이 해야 한다면,

 

데이터프레임에서는 아래와 같은 식으로 수행할 수 있다.

df_new = df.groupby('Pclass')[['PassengerId','Survived']].count()

 

만약 aggregation 함수를 여러개를 사용하고 싶다면, agg()내에 인자로 입력해야 한다.

SQL에서 Select max(Age), min(Age) from table1 groupby Pclass로 구현되었다면

df.groupby('Pclass')['Age'].agg([max,min]) 으로 구현할 수 있다.

 

agg()내에 딕셔너리 형태로 aggregation이 적용될 칼럼을 아래와 같이 각각 지정해줄 수도 있다.

 

agg_format={'Age' : 'max', 'SibSp' : 'sum', 'Fare' : 'mean'}

df.groupby('Pclass').agg(agg_format)

 

 

 

판다스 기본 개념 정리하기

2022.08.07 - [Data Science] - [Pandas] 판다스 데이터프레임 기초 with 캐글 타이타닉 파일

2022.08.15 - [Data Science] - [Pandas] 넘파이 리스트 딕셔너리 판다스 변환

2022.08.15 - [Data Science] - [Pandas] Column 열 생성 및 삭제

2022.08.16 - [Data Science] - [Pandas] 판다스 인덱스 초기화 재정렬

2022.08.16 - [Data Science] - [Pandas] 판다스 loc iloc 원하는 행 열만 선택하기 with 위치 기반, 명칭 기반 인덱싱의 이해

 


 

넘파이 (numpy) 기초에 대한 공부가 필요하다면 아래 링크들을 참고 부탁드린다.

 

차근차근 넘파이 개념 정리하기

2022.08.02 - [Data Science] - [Numpy] 넘파이 설치+차원 확인+데이터 타입 확인 및 변경

2022.08.02 - [Data Science] - [Numpy] 넘파이 배열 생성 arange range 차이+파이썬 빈 배열 만들기

2022.08.03 - [Data Science] - [Numpy] 넘파이 reshape 차원 추가 축소 변경하기

2022.08.04 - [Data Science] - [Numpy] 넘파이 인덱싱 슬라이싱 팬시인덱싱 등으로 인덱스 반환하기 +찾기

2022.08.05 - [Data Science] - [Numpy] argsort 넘파이 정렬 내림차순까지 간단히 정리

 

댓글