전처리 과정에서 사용되는 다양한 함수
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함수는 사전 형태여야 한다. 즉 키 값과 밸류 값이 있어야 한다.
'데이터' 카테고리의 다른 글
파이썬 실습 - '민간 아파트 가격동향' 데이터 전처리 (0) | 2020.09.16 |
---|---|
파이썬 기초 - 전처리 과정에서 사용되는 다양한 함수(2) (0) | 2020.09.16 |
파이썬 기초 - 표 합치기 (0) | 2020.09.16 |
엑셀 기초 - 조건부서식 (2) (0) | 2020.09.15 |
엑셀 기초 - 조건부서식 (1) (0) | 2020.09.13 |