[Python][Pandas] [apply, lambda, map]

도도요닝·2022년 8월 15일
0

python

목록 보기
6/12

apply 함수

  • 구체적인 로직을 적용하고 싶을 경우
  • 로직이 정의된 함수를 만들고, apply() 함수에 대입
#def 함수 정의 코드임 
#replace_xero : file명
#x = input 들어오는 값들 
def replace_zero(x):
    if x ==0: #input인자가 0일 경우에
        x =165 #값이 0일 경우에 165로 대체하라 
    return x #아닐 경우에 다시 반환하라 
#apply에 (함수코드 파일명)을 입력해주면 함수가 적용됨
df['컬럼명']=df['컬럼명'].apply(replace_zero)
df

lamda 함수

  • def정의된 함수와 동일한 기능
  • 한줄로 작성가능 def return 작성하지 않아도 괜찮음
  • 로직이 복잡하지 않을 경우에 사용
  • 가독성이 좋고 간편함
  • lamda '입력변수':'리턴값' '조건문(옵션)'
#적용하고 싶은 컬럼명 
#  x가 0일 경우에 x를 50으로 반환해라 
# x가 0일 아닌 경우라면 input값 그대로 반환해라 
df['컬럼명']=df['컬럼명'].apply(lamda x:50 if x ==0 else x)
#집계된 컬럼 만들기 #파생 컬럼 생성 #dataframe 마지막 열에 생성됨 
df['컬럼명1'+'컬럼명2'] = df.apply(lamda x: x['컬럼명1']+x['컬럼명2'],axis=1)

map 함수

  • 데이터 값을 특정한 값으로 mapping하고 싶은 경우 사용
  • 하나의 컬럼인, Series 형으로만 적용가능
    • df['컬럼명'].map('매핑정보')
    • key : value
map_info = {'M' : '남자',
            'F' : '여자'}
            
df['컬럼명'] =df['컬럼명'].map(map_info)

0개의 댓글