inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

캐글 작업형1 T1-19

62

박나현

작성한 질문수 21

0

선생님 ! 캐글 T1 -19번 문제에서

이벤트가 1인 sales값은 80%만 반영되게끔 하려면

def event_sales(x):

if x['Events'] == 1:

x['Sales2'] = x['Sales']*0.8

else:

x['Sales2'] = x['Sales']

return x

df = df.apply(lambda x: event_sales(x), axis=1) #1일 경우 row, 0일 경우 컬럼

df.head()

이 풀이방식 외의 더 쉬운 식으로는 문제 풀 수 없을까요? ㅜㅜ

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

박나현님, 말씀하신 캐글 작업형1 T1-19번 문제에 대한 다른 접근 방식으로는 numpy를 활용하는 방법이 있습니다. numpywhere 함수를 사용하면 조건에 따라 값을 선택하여 새로운 컬럼에 적용하는 것이 가능합니다. 코드는 다음과 같습니다.

import numpy as np

df['Sales2'] = np.where(df['Events'] == 1, df['Sales'] * 0.8, df['Sales'])

이 방식을 사용하면, if-else 조건문을 함수로 정의하고 apply 메소드로 적용하는 것보다 훨씬 간결하게 조건에 따른 값의 변경을 할 수 있습니다. numpywhere 함수는 조건에 따라 배열의 요소를 선택하기 위해 사용되므로 이 경우에 적합한 방식입니다.

위 코드에서는 Events의 값이 1인 경우, Sales 값의 80%를, 그렇지 않은 경우는 원래의 Sales 값을 Sales2라는 새로운 컬럼에 저장하게 됩니다.

강의 수강 후 포트폴리오 준비 방향에 대해 조언 부탁드립니다.

2

35

1

오늘 처음으로 자동매매가

1

56

2

안녕하세요, Oracle Cloud Free Tier 가입 과정에서 계속 오류가 발생해 문의드립니다.

1

59

2

pipeline/run-buy-pipeline 실행시 "LLM호출전체실패"에러발생

1

34

2