Series나 DataFrame에 좀 더 구체적인 로직을 적용하고 싶은 경우 활용한다.
반드시 apply를 쓰기 위해서는 함수의 정의가 필요하다.def 함수명: if 조건1: return 값 elif 조건2: return 값 else: return 값 df["new_칼럼명"]=df["칼럼명"].apply(함수명)
- cf. DataFrame을 통째로 넘겨주는 경우
def cm_to_brand(df): value=df["브랜드평판지수"]/df["키"] return value cm_to_brand(cm_to_brand, axis=1) # Series로 넘겨주는 경우에는 상관없다. # 하지만, DataFrame이니까 axis를 지정해줘야 한다.
- lambda를 이용하면, 한 줄로 함수를 작성할 수 있다.
- apply를 이용할 때, 함수를 정의해줘야 했는데 재사용하지 않는 함수들은 lambda를 이용해서 간단하게 사용하고 버릴 수 있다.
lambda x:1 if x=='남자' else 0 df["성별"].apply(lambda x:1 if x=='남자' else 0)
- 실제로는 간단한 계산식을 적용하는 경우에 많이 쓰인다.
df["새로운 칼럼명"]=df["칼럼명"].apply(lambda x:x/2) # 새로운 칼럼명에는 2로 나눈 값으로 채워진다.
딕셔너리 형태로 어떤 값을 어떻게 바꾸고 싶은지 적어주기.
- key
기존의 값- value
바꾸고 싶은 값mydict={'남자':1, '여자':0} df["성별"].map(mydict)
- apply + 정의된 함수
- 한 줄로 함수를 작성해주는 lambda
단순한 계산식을 가진 함수를 작성할 때 유용하다.- 값을 다른 값으로 변경해주는 map
기능을 잘 알아두고, 필요할 때 잘 사용하기~!