[Pandas] DataFrame | apply() 함수 사용 법

원준·2023년 5월 23일

데이터 분석 - Python

목록 보기
10/12

1. apply() 함수 란?

  • map() 함수와 비슷한 형태.
  • DataFrame의 컬럼에 복잡한 연산을 시리즈별로 할 수 있게 해주는 함수.
  • 간단할 경우 lambda()함수를 적용할 수도 있고, 복잡도에 따라 사용자 정의 함수도 적용 가능하다.

2. 사용자 정의 함수 사용

  • DataFrame.apply(함수)를 사용해 적용이 가능하다.
  • 해당 함수의 인자 갯수에 따라 args를 통해 추가하기에도 가능하다.
  • 사용 예시)
# 사용자 정의 함수
def stars_result(points):
  if points >= 95: #point 점수가 95점 이상일 경우 3리턴
    return 3
  elif points >= 85: #point 점수가 85이상 일 경우 2리턴
    return 2
  else: # 나머지 point 점수 1리턴
    return 3
    
# reviews 데이타프레임안의 points컬럼을 가져와서 stars_result의 첫번째 파라미터로 넣으며,
# 인덱스의 크기만큼 반복한다. (map과 비슷함)
reviews['points'].apply(stars_result)

# 결과는 3,2,1의 값으로 리턴한다.

3. lambda() 사용

  • lambda를 사용해서 계산이 가능하다.
  • 전체 DataFrame에서 특정 컬럼에 접근하는 것도 가능하다. (사용자 정의 함수도 가능)
# points 컬럼의 값이 price 컬럼의 값보다 클 경우 points - price 계산을 한다.
# 전체 DataFrame에서 각각의 컬럼에 접근 가능.
reviews.apply(lambda x: x['points'] - x['price'] if x['points'] >= x['price'] else 0)
profile
공부해보자

0개의 댓글