데이터 분석 공부/Python
Python - lambda함수
세조목
2024. 3. 11. 20:55
lambda함수는
데이터프레임에 들어있는 각각의 값들을 하나 하나 함수에 넣어주고싶을때 사용한다.
예를 들어 아래와 같은 코드가 있다고해보자.
data['startprice'].apply(lambda x: x * 100 if x % 1 == 0 else (x + 0.01) * 100)
data라는 이름의 데이터프레임에 startprice라는 이름의 컬럼이 있다.
startprice 컬럼에 여러 속성값들이 속해있을텐데
그 각각의 속성값들에 lambda x: 뒤에 적혀있는 조건을 걸어주는 것이다.
x * 100 if x % 1 == 0 else (x + 0.01) * 100 이라고 적혀있는데 해석해보면
만약 x를 1로 나눴을때의 나머지가 0이라면 x * 100을,
그렇지 않다면 x에 0.01을 더해주고 그 값에다 100을 곱해줘라
이다.
원래 if문을 쓸때 1) 조건을 쓰고, 2) 조건에 해당됐을때 반영하고자 하는 코드를 작성해주는데
lambda에서는 2)를 먼저 써주고 1)을 써준다.
위에서는 data['startprice']와같이 인덱싱을 먼저 해주고 .apply를 했는데
데이터프레임 전체에 lambda를 적용할수도 있다.
data.apply(lambda x: price(x['startprice']), axis=1)
price는 미리 만들어둔 함수다.
앞에 경우에서였다면
data['startprice'].apply(lambda x: price(x))
라고 적었을텐데 이번 경우에는
lambda x: 뒤에 함수명(x['컬럼명'])을 적어주고, axis=1을 적어준다.
여기서 axis=1을 적어주는 이유는 우리가 함수를 적용하고자하는 것이 column(열)이다라는 것을 알려주기위함이다.