ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Method] Feature Engineering
    AI부트캠프 2021. 1. 4. 23:28

    [section1-sprint1-n112]

     

     

     

    이런 score라는 dataframe을 생성하였다고 하자. 여기서 수입과 재료비에 해당하는 값들은 중간에 ' , ' 때문에 object로 인식된다. 연산을 위해 numeric value로 바꾸어주자.


    String to Num

    방법 1) column에 replace 적용 - column마다 각각 적용해야함

    방법 2) 함수생성

    *apply 함수

    행(axis=0) 또는 열(axis=1) 또는 전체의 cell에 원하는 연산을 지원

     

    방법 3) for loop로 column 하나씩 불러와서, condition으로 구분 후 apply 적용

    *lambda 함수

    형태) lambda 인자 : 표현식

    인자에 대해 표현식에서 나온 결과값을 return

     

    번외) date format


    Column끼리 연산

    수입-재료비를 계산하여 하루의 순이익을 도출하였고, 새로운 column을 만들어 삽입하였다. insert 함수를 이용하여 간단하게 한줄로 표현할 수 있다.

    형태) df.insert(위치, new_col_name, 삽입할 내용)


    NA value handling (mean imputation)

    2021년 1월 1일자, 재료비를 NaN으로 바꾼 후, 다른 날의 값으로 mean imputation을 해주었다.

    여기서 .loc함수를 사용하여, 날짜 col에 '2021/1/1'이라는 값을 가지고있는(isin 함수) row를 제외한(~ sign) 나머지 row들에서, 재료비 col의 값을 평균하여(mean()) 그 값을(values) 반환하였다.


    Make new feature

    grade라는 새로운 feature를 만들어 classify 하였다. 여기서 함수(def)를 선언하여 그 안에 여러개의 if문을 만들고, 각각의 조건을 만족하면 특정 grade를 return, 특정 column에 apply함수로 이 만들어진 함수를 적용할 수도 있지만,

    그것보다 간단하게 np.select를 사용할 수 있다.

    condition list와 choice list를 만들어 select함수의 parameter로 사용하는 것 만으로도 간단하게 새로운 feature로 기존 data를 classify할 수 있다.


     

    *pandas 에서 문자열을 다룰 때 .str. 필요

    계속 함수 앞에 .str.를 붙여서 이게 뭔가 했는데, python과 달리 pandas에서 문자열 관련 함수를 사용할 때 앞에 붙여야 한다고 한다.

     

    *특정 열만 dataframe 형식으로 추출하기

    처음에는 df['col']로 했는데 dataframe 형식이 아닌 series가 반환되서 당황했는데, loc를 사용하여 df.loc[:,['col']]이렇게 하니 전체 행, 특정 열이 dataframe 형식으로 반환되었다.

    'AI부트캠프' 카테고리의 다른 글

    [Concept] Vectors/ Metrices  (0) 2021.01.13
    [Concept] Hypothesis Test  (2) 2021.01.06
    [Method] Data Visualization  (2) 2021.01.02
    [Method] Data manipulation  (1) 2020.12.31
    [Concept] Feature Engineering  (0) 2020.12.29
Designed by Tistory.