카테고리 없음
[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