AI 학습 시 데이터 전처리 등은 필수적이다. 데이터 처리에 대해 알아보자!

     

    데이터 전처리

    1) 데이터 구조 만들기

    2) 모델링을 위한 전처리

     

     데이터프레임 변경하기

    데이터프레임의 column name을 변경해보자!

     

     열 변경

    - column 속성 변경

    모든 열 이름을 변경할 때는 .columns에 리스트를 할당해준다.

    df.columns = ['total', 'day', 'time', 'month']

    rename() 메소드 사용으로 딕셔너리를 활용하여 지정한 열 이름 변경이 가능하다.

    단, 변경하지 않으려는 이름은 그대로 적어주어야 한다.

    df.rename(columns = {'total': 'total_size', 'day': 'date', 
    			'time': 'time', 'month': 'wall'}, inplace = True)

    inplace = False일 경우 적용이 되지 않는다.

     

    - 열 추가

    없는 열을 변경하게 되면 맨 뒤에 그 열이 추가된다.

    df['없는 열 추가'] = 2	# df 출력 시 맨 뒤에 '없는 열 추가' 열이 추가된다.

    insert() 메소드로 지정한 위치에 열을 추가할 수 있다.

    df.insert(3, '열 이름', 값)	# (0 1 2) 3번째 열 위치에 추가된다.

    - 열 삭제

    drop() 메소드를 사용하여 열을 삭제할 수 있다.

    axis = 0: 행 삭제(default) / axis = 1: 열 삭제

    df.drop('day', axis=1, inplace = True)
    
    # 열 여러 개 삭제
    df.drop(['열1', '열2', ...], axis=1, inplace = True)

    inplace = False일 경우 삭제한 것처럼 보여주기만 하고, 실제 반영은 되지 않는다.

    - 값 변경

    전체 값을 변경하거나 조건에 따라 값을 변경할 수 있다.

    # 전체 값 변경
    df['열이름'] = 0	# 특정 열의 모든 값을 0으로 변경
    
    # 조건
    df.loc[df['열이름'] < 5, '열이름'] = 0	# df의 '열이름' 열의 값이 5보다 작을 경우, 값을 0으로 변경
    
    df['열이름'] = np.where(df['열이름'] < 20, 0, 1)	# 20보다 작으면 0 아니면 1로 바꾸기

    .map(): 범주형 값을 다른 값으로 변경할 때 사용

    # 남자는 0, 여자는 1
    df['성별'] = df['성별'].map({'남자': 0, '여자': 1})

    cut(): 숫자형 변수를 범주형 변수로 변환

    df['열이름'] = pd.cut(df['열이름'], 4, labels=['A', 'B', 'C', 'F'])
    # '열이름' 열에 대해서 균등 간격으로 4등분하고, 값을 a b c f로 바꿔라

     

     

     데이터프레임 결합하기

     

    Concat - 붙이기

    매핑 기준: 인덱스(행), 열이름(열)

    방향: axis = 0: 세로(행)로 합치기 / axis = 1: 가로(열)로 합치기

    방법: join = 'outer' -> 모든 행과 열 합치기(default), join = 'inner' -> 매핑되는 row, col만 합치기

     

    example = pd.concat([ex1, ex2], join='outer', axis=1)	# 모든 행열 합치고 가로로 붙인다
    
    example = pd.concat([ex1, ex2], join='inner', axis=1)	# 매핑되는 행열 합치고 가로로 붙인다

     

    Merge - 병합

    매핑 기준: 특정 열(key) 값 기준으로 결합 (= 데이터베이스의 테이블 조인)

    pd.merge(df_left, df_right, how='inner', on=None)	# default

    left / right / inner / outer

     

    Pivot

    집계된 데이터를 재구성하는 함수

    Dataframe.pivot(index, column, values)	# default

     

     

    정리

    concat: 데이터프레임 구조에 맞게 합치기

    merge: 데이터 값 기준으로 합치기

    pivot: groupby로 집계 후 데이터프레임 구조 변형

     
     

    Posted by 저본