DataFrame에서 알아두면 굉장히 유용한 기능이 됩니다. 비슷하게 map도 있지만, map은 하나의 값만 처리가 가능하기 때문에 apply의 경우 map의 기능을 포함하게 됩니다.
축을 기반으로 셀의 정보를 이용하여 새로운 값을 만들 수 있습니다. 람다 함수로 예제를 들어놓은 곳도 많은데 이해가 쉽도록 일반 함수로 만들어 봤습니다.
예제
import pandas as pd d = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9]} df = pd.DataFrame(data=d) print(df) """ col1 col2 col3 0 1 4 7 1 2 5 8 2 3 6 9 """ def resultx(x): return x[0]+x[1]+x[2] df['Y'] = df[['col1','col2','col3']].apply(resultx, axis=1) print(df) """ col1 col2 col3 Y 0 1 4 7 12 1 2 5 8 15 2 3 6 9 18 """ df['Y'] = df.apply(resultx, axis=1) print(df) """ col1 col2 col3 Y 0 1 4 7 12 1 2 5 8 15 2 3 6 9 18 """
단순하게 df.apply 이런 식으로 호출하면 함수로 전체 column의 목록이 모두 넘어옵니다.
특정 컬럼을 선택하려면 df[['col1','col2','col3']] 리스트를 넘기면 됩니다.
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html
정의:데이터 프레임의 축을 따라서 함수를 적용하는 기능 입니다.
(컬럼축은 axis=1로 가로축이 됩니다.)
댓글 없음:
댓글 쓰기