Jin's Dev Story

[Python] apply 함수 본문

Programming Language/Python

[Python] apply 함수

woojin._. 2024. 6. 13. 09:01

apply 함수 활용

  • DataFrame 타입의 객체에서 호출가능한 apply 함수에 대해 살펴보자
  • 본인이 원하는 행과 열에 연산 혹은 function을 적용할 수 있음
  • 열 기준으로 집계하고 싶은 경우 axis = 0
  • 행 기준으로 집계하고 싶은 경우 axis = 1

열 기준 집계

# apply 함수
# 열 기준 집계
abalone_df[['diameter']].apply(np.average, axis=0)

행 기준 집계

# 행 기준 집계
abalone_df[['diameter']].apply(np.average, axis=1)

사용자 함수를 통한 집계

# 사용자 함수를 통한 집계 ★★★★★
import math

def avg_ceil(x, y, z):
    return math.ceil((x+y+z)/3) # ceil 올림

abalone_df[['diameter', 'height', 'whole_weight']].apply(lambda x: avg_ceil(x[0], x[1], x[2]), axis=1)

문제

# 문제
# 1. 사용자 정의 함수 사용
# 2. ['diameter', 'height', 'whole_weight'] 변수 사용
# 3. 세 변수의 합이 1이 넘으면 True, 아니면 False 출력 후 answer 변수에 저장
# 4. abalone_df에 answer 열을 추가하고 입력

def f(x):
    sum_ = x[0] + x[1] + x[2]
    
    if sum_ > 1:
        return True
    else:
        return False
    
answer = abalone_df[['diameter', 'height', 'whole_weight']].apply(lambda x: f(x), axis=1)
abalone_df['answer'] = answer

컬럼 갯수 확인 - value_counts()

# 컬럼 내 유니크한 값 뽑아서 갯수 확인(카테고리 변수)
abalone_df['sex'].value_counts()

  • ascending=True → 정렬
# 컬럼 내 유니크한 값 뽑아서 갯수 확인(카테고리 변수)
abalone_df['sex'].value_counts(ascending=True)

  • dropna=True → 결측치 제외
# 컬럼 내 유니크한 값 뽑아서 갯수 확인(카테고리 변수)
abalone_df['sex'].value_counts(dropna=True)