let us not love with words or tongue but actions and truth.

IT/파이썬

applymap 활용하기

sarah0518 2021. 1. 5. 14:27
728x90

오늘은 파이썬을 이용한 데이터 전처리에 잘쓰이는 applymap을 알아보도록 해요.

 

보통 dataframe을 다루는 경우가 많은데, 그때 유용하게 잘 쓰입니다.

 

1. 공백제거 & 대소문자 or 소문자로 통일

2. 시간데이터 다루기

3. 소수점 제거하기

를 간단히 해보려고합니다.

 

 

1. 공백제거 & 대소문자 or 소문자로 통일

아래와 같은 df 데이터셋이 있다고 해볼게요.

inout컬럼에서 주황색으로 표시된 부분은 공백과 대소문자가 통일되지 않은 경우입니다.

 

1
2
3
4
5
# 공백제거
df['inout']=df[['inout']].applymap(lambda x: x.strip())
 
# 대소문자로 통일
df[['inout']]=df[['inout']].applymap(lambda x: x.upper())
cs

 

위와 같이 간단한 코드로 정리된 inout컬럼을 볼수 있습니다.

소문자로 정리해주고 싶다면 upper대신에 lower을 써주시면 됩니다.

 

[output]

 

 

 

2. 시간데이터에 applymap 적용하기

 

end 컬럼중에 값이 20:00초과인 것들에 True라고 해줄 수 있는 컬럼을 만들어 보겠습니다.

 

1
2
df['flag']=df[['end']].astype('str').applymap(lambda x: x>'20:00')
 
cs

 

위의 코드 한줄이면 flag라는 컬럼이 생성되고 그 값은 20을 넘는 end값일 때 true라는 값을 포함하고 있습니다.

end값이 string타입이 아닐 수 있어 형변환을 해줬습니다.

 

[output]

 

 

 

3. 소수점 내림하기

 

age컬럼에 나이를 표현하는 값이 소수점까지 표현되어있는데 내림을 적용해보겠습니다.

 

1
df['age2']=df[['age']].applymap(lambda x: math.floor(x))
cs

 

[output]

 

 

만약 올림을 하고싶으면 ceil(), round(x, 소수점자리수)를 쓰시면 됩니다.

 

** 소수 첫째자리에서 반올림하는경우면 소수점 자리수는 생략가능합니다.

** 양수에서는 floor나 trunc나 같지만 음수에서는 다르니 유의하세요.

728x90