df['test'] = np.where(조건, 참일 때 값, 거짓일 때 값) 형태로 쓰게 되는데

각 line별로 function을 태우고 그 값을 넣고 싶을 때가 생긴다.

그 경우 lambda를 활용할 수 있다.

df["test"] = df.apply(lambda r: func(r.col0, r.col1), axis=1)

여기서 axis는 컬럼 기준으로 작업할지, 행 기준으로 작업할지에 대한 매개변수다.

axis=1일 경우 컬럼 기준, 0인 경우 행 기준으로 작업한다.

 

함수의 return이 여러 개인 경우엔,

df["test1"], df["test2"], df["test3"] = zip(*df.apply(lambda r: func(r.col0, r.col1), axis=1))

들어갈 각 열들을 나열하고, zip으로 묶어주면 return의 순서대로 값이 들어간다.

+ Recent posts