TOP
class="layout-aside-left paging-number">
본문 바로가기
[파이썬 Projects]/<파이썬 기초>

[파이썬] 판다스 (Pandas) - 4

by 기록자_Recordian 2024. 5. 28.
728x90
반응형
시작에 앞서
해당 내용은 '<파이썬 머신러닝 완벽 가이드> 권철민 지음. 위키북스' 를 토대로 작성되었습니다. 보다 자세한 내용은 해당 서적에 상세히 나와있으니 서적을 참고해 주시기 바랍니다.
 

네이버 도서

책으로 만나는 새로운 세상

search.shopping.naver.com


이전 내용
 

[파이썬] 판다스 (Pandas) - 3

시작에 앞서해당 내용은 ' 권철민 지음. 위키북스' 를 토대로 작성되었습니다. 보다 자세한 내용은 해당 서적에 상세히 나와있으니 서적을 참고해 주시기 바랍니다. 네이버 도서책으로 만나는

puppy-foot-it.tistory.com


sort_values( ): DataFrame, Series 정렬

 

sort_values( ): DataFrame, Series 정렬을 위해서 사용하는 메서드. RDBMS SQL의 order by 키워드와 매우 유사하다.

 

[주요 입력 파라미터]

  • by: 특정 칼럼을 입력하면 해당 칼럼으로 정렬 수행
  • ascending; 오름차순, 내림차순 정렬 (ascending=True: 오름차순 - 기본값 / False: 내림차순)
  • inplace: 원본 유지 여부. (inplace=False: 원래 DataFrame 유지 - 기본값 / True: 반환되는 값으로 원본이 변경됨)

Name 칼럼을 기준으로 오름차순 정렬(ascending=True 생략 가능)

 

★ 여러 칼럼을 기준으로 정렬할 때에는 by에 리스트 형식으로 정렬하려는 칼럼을 입력하면 된다.

내림차순이므로, ascending=False 필수


Aggregation (집계) 함수

 

DataFrame에서 min, max, sum, count와 같은 집계 함수 (RDBMS SQL의 aggregation 함수 적용과 유사)

다만 DataFrame의 경우 DataFrame에 바로 집계 함수를 호출 시 모든 칼럼에 해당 집계 함수를 적용한다는 차이가 있다.

▶ count( )는 Null 값을 반영하지 않은 결과를 반홚나기 때문에 Null 값이 있는 Age, Cabin, Embarked 칼럼은 count( )의 결과 값이 다르다.

 

★ 특정 칼럼에 집계 함수를 적용하기 위해서는 DataFrame에 대상 칼럼들만 추출해 적용하면 된다.


groupby( ) 적용

 

DataFrame의 groupby( ) 는 RDBMS SQL의 groupby 키워드와 유사하면서도 다른 면이 있다.

유사한 면은 둘 다 groupby를 분석 작업에 매우 많이 활용한다는 것이다.

 

DataFrame의 groupby( ) 사용 시 입력 파라미터 by에 칼럼을 입력하면 대상 칼럼으로 groupby된다.

DataFrame에 groupby( )를 호출하면 DataFrameGroupBy 라는 또 다른 형태의 DataFrame을 반환한다.

 

SQL 과는 다르게, groupby( ) 대상 칼럼을 제외한 모든 칼럼에 해당 집계 함수를 적용한다.

※ SQL의 경우 group by 적용 시 여러 개의 칼럼에 집계 함수를 호출하려면 대상 칼럼을 모두 Select 절에 나열해야 한다.

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

★ 특정 칼럼만 집계 함수를 적용하려면 groupby( )로 반환된 DataFrameGroupBy 객체에 해당 칼럼을 필터링한 뒤 집계 함수를 적용한다.

 

DataFrame의 groupby( )와 SQL group by 의 또 다른 차이는

  • SQL: 서로 다른 집계 함수를 적용할 경우 Select 절에 나열 (예. Select max(Age), min(Age) from titanic_table group by Pclass)
  • DataFrame: 적용하려는 여러 개의 집계 함수명을 DataFrameGroupBy 객체의 agg( ) 내에 인자로 입력해서 사용

향후 pandas 버전에서는 함수가 직접 호출되도록 변경될 예정 이라는 주의문

 

DataFrame의 groupby( )를 이용해 API 기반으로 처리는 SQL의 group by보다 유연성이 떨어진다.

groupby( ) 는 agg( )를 이용해 agg( ) 내에 입력값으로 딕셔너리 형태로 집계가 적용될 칼럼들과 집계 함수를 입력한다.

오늘 쓰다가 세번 날아가서 여기까지만....ㅠㅠ


다음글

[파이썬] 판다스 (Pandas) - 5

 

728x90
반응형