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
'IT > 파이썬' 카테고리의 다른 글
[시간 데이터 다루기] rsub활용하여 시간차이 구하기 (0) | 2021.01.08 |
---|---|
[시간 데이터 다루기] to_datetime활용하기 (0) | 2021.01.06 |
one-hot encoding(원-핫 인코딩) (0) | 2021.01.04 |
kkma를 활용한 word cloud 그리기 (0) | 2021.01.03 |
Permutation Feature Importance(변수중요도)를 통한 feature selection (0) | 2020.12.24 |