[Pandas] apply() 함수

cybergangster·2022년 6월 23일
0

Pandas

목록 보기
13/20
post-thumbnail

1) Series(1차원), DataFrame(2차원) 타입의 객체에서 사용 가능
2) 행/열, 전체 셀에 원하는 연산 지원
3) numpy의 sqrt과 같이 단일 연산인 경우 전체에 적용
4) numpy의 min, max, average와 같이 집계되는 경우 사라질 축 지정
5) 열 단위 집계 - axis=0

df.apply(np.sqrt, axis=0)

6) 행 단위 집계 - axis=1

df.apply(np.sqrt, axis=1)

7) 함수 적용 가능

def get_avg(df):
 return math.round((df['math']+df['english'])/2) # 반올림

df['res']=df.apply(get_avg, axis=1) # 데이터 프레임에 행 단위로 평균값 함수 적용, 결과값 저장
def grouping(x):
 if x<=5:
  return 1
 elif x>5:
  return 2

df['res']=df['col_name'].apply(grouping)
# grouping 함수를 적용하여 결과값 저장, 행 단위

8) 간단한 경우 lambda() 함수 적용 가능(복잡한 경우 사용자 정의 함수 적용 가능)

df['res']=df.apply(lambda x : x['firstNum'] * x['secondNum']
                   if (x['firstNum'] >= x['secondNum'])
                   else -1, axis=1)
# 람다식 적용하여 결과값 저장, 행 단위

0개의 댓글