일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- jd
- pandas
- lambda
- 프로젝트
- SQL
- 머신러닝
- 기초통계
- 데이터분석
- 클러스터링
- 프롬프트 엔지니어링
- 히트맵
- 시각화
- Chat GPT
- 전처리
- GA4
- 데이터 분석
- 크롤링
- 서브쿼리
- Python
- 팀프로젝트
- cross join
- 기초프로젝트
- 태블로
- streamlit
- 최종 프로젝트
- data analyst
- If
- 군집화
- SQLD
- da
Archives
- Today
- Total
세조목
Python - lambda함수 본문
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(열)이다라는 것을 알려주기위함이다.
'데이터 분석 공부 > Python' 카테고리의 다른 글
Python - Pandas Series, Dataframe 만들기 & assign 메서드 (0) | 2024.03.13 |
---|---|
Python - 긴 코드의 가독성 높이기(역슬래시, 메서드 체이닝) (0) | 2024.03.12 |
Python - shape속성 & loc와 iloc의 차이 (0) | 2024.03.11 |
Python 예제(3진법 뒤집기) (0) | 2024.02.26 |
Python 정리(데이터 카운팅 - count, size, value_counts, unique, nunique)(24.02.07) (1) | 2024.02.07 |