정렬 _수정 필요

Bleu·2023년 9월 15일
0

python

목록 보기
13/22

index이름, column 이름을 기준으로 정렬

  • sort_index(axis, ascending=True)
    • axis
      • index 이름 기준 정렬(행) : 'index' 또는 0 (기본값)
      • column 이름 기준 정렬(열) : 'columns' 또는 1
    • ascending
      • 정렬방식
      • True(기본): 오름차순, False: 내림차순
    • inplace
      • 원본에 적용 여부
      • False(기본): 변경한 복사본 반환
      • True : 원본을 변경

특정 컬럼(열)의 값을 기준으로 정렬

  • sort_values(by, ascending, inplace)
    • by
      • 정렬 기준 컬럼이름을 문자열로 지정
      • 여러 컬럼에 대해 정렬할 경우 리스트에 담아 전달
    • ascending
      • 정렬방식
      • True(기본): 오름차순, False: 내림차순
      • 여러 컬럼에 대해 정렬할 경우 정렬방식도 리스트에 담아 전달
    • inplace
      • 원본에 적용 여부
      • False(기본): 변경한 복사본 반환
      • True : 원본을 변경
    • 결측치는 방식과 상관없이 마지막에 나온다.

기술통계 메소드들을 이용한 데이터 집계

주요 기술통계 메소드

함수설명
sum()합계
mean()평균
median()중위수
mode()최빈값
quantile()분위수
std()표준편차
var()분산
count()결측치를 제외한 원소 개수
min()최소값
max()최대값
idxmax()최대값 index
idxmin()최소값 index
unique()고유값
nunique()고유값의 개수
cf) value_counts()는 Series에만 사용할 수 있다.
  • DataFrame에 위의 기술 통계 메소드들을 적용할 경우 컬럼별로 계산한다.
  • sum(), mode(), max(), min(), unique(), nunique(), count()는 문자열에 적용가능하다.
    • idxmax(), idxmin() 는 문자열 컬럼에 사용할 수 없다. (문자열의 경우 넘파이의 argmax(), argmin() 함수를 사용한다.)
  • 공통 매개변수
    • skipna=True(기본값)
      • 결측치(NA)를 포함해서 계산할지 여부 설정.
      • True가 기본값으로 결측치(NA)를 제외하고 처리한다.
      • 결측치 제외하지 않으려면 skipna=False로 설정하는데 결측치가 있으면 결과는 결측치가 된다.
    • axis
      • DataFrame에 적용할 때 계산방향을 설정
        • 0 또는 'index' (기본값): 컬럼 방향으로 집계
        • 1 또는 'columns': 행 방향으로 집계

aggregate(func, axis=0, *args, **kwargs) 또는 agg(func, axis=0, *args, **kwargs)

  • DataFrame, Series의 메소드로 집계결과를 다양한 형태로 묶어서 볼 때 사용한다.
    • 사용자 정의 집계메소드를 사용할 때도 편리하다.
  • 매개변수
    • func
      • 집계 함수 지정
        • 함수명/함수리스트 (문자열)
          • 판다스 제공 집계메소드들은 문자열로, 사용자정의 집계함수는 함수 객체로 전달
        • Dictionary : {'집계할컬럼' : 집계함수, ... }
          • 컬럼별로 다른 집계를 할 경우
    • axis
      • DataFrame에 적용할 때 0 방향으로 계산할 지 1 방향으로 계산할지 설정
        • 0 또는 'index' (기본값): 컬럼 방향으로 집계
        • 1 또는 'columns': 행 방향으로 집계
    • *args, **kwargs
      • 함수에 전달할 매개변수.
      • 집계함수는 첫번째 매개변수로 Series를 받는다. 그 이외의 매개변수가 있는 경우.

ex) aggregate 사용

# 판다스가 제공하는 집계 메소드(함수)를 사용할 경우 함수명을 문자열로 지정

flight["ARR_DELAY"].aggregate(["min", "max"])
flight['ARR_DELAY'].aggregate(['mean', 'std'])

Groupby

  • 특정 열을 기준으로 같은 값을 가지는 행끼리 묶어서 group화 한다.
  • ~~ 별 집계를 할 때 사용한다. (성별, 직급별, 등급별 ...)
    • Group으로 묶을 기준 열은 범주형타입(category)을 사용한다.
  • 구문
    • DF.groupby('그룹으로묶을기준컬럼')
      • DataFrameGroupby 객체를 반환한다.
      • DataFrameGroupby 객체는 어떤 행끼리 묶여있는지 정보를 가진다. 이 객체의 집계함수를 사용하면 그룹별 집계를 할 수 있다.
        • DataFrameGroupby객체['집계할 컬럼'].집계함수()
      • groupby에 여러개의 컬럼을 기준으로 나눌 경우 리스트에 묶어서 전달한다.
      • 집계할 컬럼이 여러개인 경우 리스트로 묶어준다.
    • 집계함수
      • 기술통계 함수들
      • agg()/aggregate()
        • 여러 다른 집계함수 호출시(여러 집계를 같이 볼경우)
        • 사용자정의 집계함수 호출시
        • 컬럼별로 다른 집계함수들을 호출할 경우

Group 별 집계결과에서 특정 조건의 항목만 조회

  • Groupby 집계 후 boolean indexing 처리한다.

사용자 정의 집계함수를 만들어 적용

사용자 정의 집계 함수 정의

  • 매개변수
    1. Series 또는 DataFrame을 받을 매개변수(필수)
    2. 필요한 값을 받을 매개변수를 선언한다. (선택)

agg() 를 사용해 사용자 정의 집계 함수 호출

  • DataFrame.agg(func=None, axis=0, *args, **kwargs)
    • axis : 사용자 정의 함수에 전달할 값들(Series)의 축 지정
  • Series.agg(func=None, axis=0, *args, **kwargs)
    • DataFrame의 agg와 매개변수 구조를 맞추기 위해 axis 지정한다. (kwargs를 이용해 매개변수 전달할 경우 axis는 생략해도 된다. - axis기본값 0을 그냥 쓰면 되므로. - keyword 인자 뒤에 position 인자는 안되서 *args로 값 전달시에는 axis를 지정해야 한다.)
  • DataFrameGroupBy.agg(func, *args, **kwargs) :
    • axis 지정안함.
    • 사용자 함수에 Series를 group 별로 전달한다.
  • SeriesGroupBy.agg(func=None, *args, **kwargs)
    • axis 지정안함
    • 사용자 함수에 Series를 group 별로 전달한다.
  • *args, **kwargs는 사용자 정의 함수에 선언한 매개변수가 있을 경우 전달할 값을 전달한다.
    • 키워드 인자를 이용해 가변인자로 전달하는 것이 편하다.

0개의 댓글