2020년 8월 31일 월요일

Dataframe의 apply

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로 가로축이 됩니다.)








댓글 없음:

댓글 쓰기