본문 바로가기

데이터

파이썬 기초 - 전처리 과정에서 사용되는 다양한 함수

반응형

전처리 과정에서 사용되는 다양한 함수

 

 

 


datetime 함수

데이트타임을 변환하면 날짜 정보를 쉽게 추출해 낼 수 있다.

사용 예시는 아래와 같다.

 

pd.to_datetime(df['생년월일'])

 

이 상태에서

df['생년월일'].dt.year 를 사용하면 연도만 뽑아온다.

df['생년월일'].dt.dayofweek 를 사용하면 요일을 뽑아온다.

**월요일: 0 화요일: 1, 수요일: 2, 목요일: 3, 금요일: 4, 토요일: 5, 일요일: 6**

 

df['생년월일'].dt.weekofyear 는 일 년 중 몇 번째 주인지 나타낸다.

 

 

 

 

 

컬럼의 키 값을 1 혹은 0으로 만들고 싶을 때

 

df.loc[df['성별'] == '남자', '성별'] = 1

df.loc[df['성별'] == '여자', '성별'] = 0

 

첫 번째로 이와 같은 형식으로 사용할 수 있다.

 

def male_or_female(x):

if x == '남자':

return 1

elif x == '여자':

return 0

 

df['성별'].apply(male_or_female)

 

두 번째로는 이같이 직접 함수를 만들어서 사용 할 수도 있다.

함수를 만든 뒤에는 반드시 apply함수를 사용해서 컬럼에 적용시켜준다.

 

 

혹은 람다함수를 만들어서 적용시켜줄 수도 있다.

가령 cm당 브랜드평판지수를 구한다고 해보자.

 

def cm_to_brand(df):

value=df['브랜드평판지수']/df['키']

return value

df.apply(cm_to_brand,axis=1)

 

(데이터프레임 전체에 적용하기 위해선 axis=1이라는 옵션을 넣어주어야 한다)

 

두 번째 방법을 사용하면 이런 식으로 함수를 작성할 수 있을 것이다.

그러나 더 간단한 방법이 있다.

키를 반으로 쪼개는 컬럼을 만든다고 했을 때

 

f = lambda x: 1 if x == '남자' else 0

df['성별'].apply(f)

 

혹은

 

df['키/2'] = df['키'].apply(lambda x:x/2)

 

이런 식으로 사용할 수 있다.

 

 

마지막으로 map 함수를 사용할 수 있다.

 

my_map = {

    '남자': 1,

    '여자': 0

}

 

df['성별'].map(my_map)

 

참고로 map함수는 사전 형태여야 한다. 즉 키 값과 밸류 값이 있어야 한다.

 

 

반응형