카테고리 없음

[Python] 함수적용 / apply · agg · lambda

데이터분석쇼니 2024. 1. 24. 16:39

 

|  함수적용 이란

  • apply 함수는 DataFrame에 함수를 적용하여 반환하는 메서드
  • 함수에 전달되는 객체는 Series 형식이며 DataFrame의 index / columns 에 따라 다르다
  • agg 함수는 apply 와 비슷하게 함수를 적용하지만 여러개의 함수를 동시에 적용할 수 있다

 

■  agg

df.agg(func=None, axis=0, args, kwargs)
  • func : 함수입니다.
  • axis :{0 : index(row) / 1 : columns} 축입니다 0은 행, 1은 열 입니다.
  • arg : 함수의 인수 입니다.
  • kwargs : dict 형태의 함수의 인수입니다.
df = pd.DataFrame([[1,4,7],[2,5,8],[3,6,9]])
print(df)
>>
   0  1  2
0  1  4  7
1  2  5  8
2  3  6  9
  • agg 에 입력되는 함수로는 np.함수 형태나 그냥 문자열 형태로 입력 
ex1 = df.agg(np.prod)
print(ex1)
>>
0      6
1    120
2    504
dtype: int64


# prod는 곱하기
# df를 세로로 곱해서 반환
  • agg 를 사용해서 여러개를 동시에 진행할 경우
ex6 = df.agg(['min','max','sum','prod'])
print(ex6)
>>
      0    1    2
min   1    4    7
max   3    6    9
sum   6   15   24
prod  6  120  504

 

 

■  lambda  

  • 람다는 함수를 간편하게 작성할 수 잇어서 다른 함수의 인수로 넣을 때 주로 사용
  • 람다 표현식
    :  람다라는 키워드 입력 후 그 뒤에 매개변수(인자)를 입력하고 콜론을 넣은 후, 그 매개변수의 동작을 적으면 됨
lambda x : x *2

 

  • 일반 식과의 비교 
# 일반식
def is_even(x): 
	return x % 2 == 0

# 람다식
is_even = lambda x : x % 2 == 0


# 호출하는 방법은 동일
is_even(1) # False
is_even(2) # True