inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

캐글 작업형1 T1-19

60

박나현

작성한 질문수 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

51

1

강의 추천해주세요

2

28

1

네트워크 전체 흐름 복습 질문

1

34

3

Sequence 관련 질문

1

32

2