JuJuKwakKwak

데이터 전처리 본문

Data Science/코드 관련 모음

데이터 전처리

jujukwakkwak 2022. 7. 27. 20:48

1) 날짜 유형 바꾸기

df_sample['yearqtr'] = pd.to_datetime(df_sample['yearqtr'])

 

2) 분기별로 나누어 바꾸기

df_sample['yearqtr'] = pd.PeriodIndex(df_sample['yearqtr'], freq='Q')

 

3) 조건식을 사용해서 추출하기

df_sub = df.loc[df['행정동']=='심곡동', :]

 

4) str.replace(), str.split() 사용하기

df_sample['yearqtr'] = df_sample['yearqtr'].str.replace(pat=r'[ㄱ-ㅣ가-힣]', repl=r'', regex=True) # 한글 제거
# 2017년 1분기 => 2017 1

df['수정할 열'] = df['수정할 열'].str.replace(',', '')

df_sample['yearqtr'] = df_sample['yearqtr'].str.split() # 분리
# 2017 1 => [2017, 1]

df_sample['yearqtr'] = [''.join(row) for row in df_sample['yearqtr']] # 붙이기
# [2017 Q1] => 2017Q1

 

5) 특정 컬럼을 인덱스로 변경하기

df_sample.set_index('yearqtr', inplace=True)

 

6) 범주형 변수를 수치형으로 변환하기

# gender 변수 전처리 : 2개만 있는 경우
body['gender'] = np.where(body['gender'] == 'M', 0, 1)

# class 변수 전처리 : 3개 이상인 경우
mapping = {'A':0, 'B':1, 'C':2, 'D':3}
body['class_2'] = body['class'].map(mapping)

 

7) 칼럼 이름을 변경하기

# 방법 1
col_new = ['base_date'] + [col[:-4] for col in df_1.columns[1:]] # 먼저 리스트 안에 넣기
df_1.columns = col_new # 칼럼 이름 통째로 바꾸기

# 방법 2
df.columns = ['a', 'b', 'c', 'd']

 

8) pd.melt() 여러 개 컬럼을 한 개 컬럼으로 바꾸기(와이디 한 것을 좁게 만들기)

df_2 = pd.melt(df_1, id_vars=['base_date'], var_name='nm_Adm', value_name='num_case')

 

9) groupby 사용하기

df1 = df.groupby(by='APT_MAN_SN').min().reset_index()

# min() 자리에 sum() 등을 넣을 수 있다

 

10) 결측치에 값 채우기

df['열'].fillna(0, inplace=True)

 

11) 날짜 between 함수로 추출하기

new_df = df[df['날짜'].between('2022-07-03', '2022-08-01')]

 

12) 결측치 있는 행 제거하기

data = data.dropna(axis=0)