본문 바로가기
통계, EDA, 선형대수/Data Process & EDA

N112a Feature Engineering / iloc

by kiimy 2021. 5. 9.
728x90

Feature Engineering 특정 값을 새롭게 만들어 내는 것

(데이터셋에 존재하는 feature들을 재조합하여 새로운 feature 특성을 부여)

 

 

함수가 메소드보다 더 포괄적인의미를 가짐...

메소드 = 객체와(자료형)연관되어 사용되는 것은 메소드(= .split(), .append() ....)

from google.colab import data_table

data_table.enable_dataframe_formatter()
'''
데이터 불러오기
'''

 

 

sep 또는 delimiter = 지정된 문자로 열을 구분하여 데이터 프레임을 만든다.

 

*sep=',' ==> csv는 쉼표로 구분된 엑셀 파일이라 sep=',' 해줘여하는데 안해도 잘나옴

*thousands= "," ==> 하게 되면 모두 ',' 가 없어지고 int or float로 나옴 //or 천단위로 콤마로 나눠줌

*names= columns 지정 ( columns은 리스트로 설정되있음)

*encoding = "EUR-KR" or 'cp949' == > 한국어가 깨진다면 쓰기

 

*df.함수(columns, inplace=True)

==>inplace=True (해당 변화를 즉각정으로 해당 DataFrame에 반영하겠다는 의미

 

*'columns' 부분 = df['columns'].함수

==>.unique() 지정된 칼럼의 고유값 가져오기 

 

*반복해야할 때는 함수를 지정하고 진행하는 것이 효율적

ex)

def toInt(string):

  return int(string.replace(',''')) => toInt()함수를 쓰면 해당 string 에 ' , '(콤마)를 ' '(콤마 부분)으로 공간을 대체

= 숫자에 콤마가 있으면 string이 됨/ 콤마를 없애고 int()로 cast

or df['colums'].astype(float or int) 해당 칼럼(float나 int) 변경

 

-df['columns'].apply(toInt) 사용함 (*apply()= (func, axis=0, raw=False, result_type=None, args=(), **kwds)

-df['columns'].map(변경됨=int, float, str) = 함수에 소수점 n번째 까지 변경할 수 있는 것을 할당???

==> 이름도 변경가능

map

 

strip()함수 적용 (좌우 공백을 없애는 함수) 

ex) $4,00 $를 없애야 하면 df['columns'].str.lstrip($) / lstrip, rstrip 좌 우 맨끝 제거

 

split('-') = '-' 기준으로 나누고 // matrix array 로 나옴 ==> 하나의 요소가 '-'기준으로 나눠짐

 

*소수점 n째 자리까지 확인법

round(df['columns'], n) = n번째 자리에서 ,

or {:2f}.format = 2째 자리에서 반올림

 

*소수점 제거(정수로 표현) == astype(int)

'{:g}'.format(변수) = 소수점인 변수를 정수로 바꿔줌

 

*DataFrame 작성법

 

변수 = 딕셔너리 사용 { 'columns_name' : ['?', '??'] ==> 해당 columns 행}

format_dict = {'Date':'{:%m/%d/%y}', 'Close':'${:.2f}', 'Volume':'{:,}'}

stocks.style.format(format_dict)

==> 해당 칼럼 적용

 

#df.select_dtypes(object).columns / df.info()==>summary statistics확인

dtype은 object, int, float 확인 ==> object인 것을 확인시킴 칼럼중에

#################################더 알아보기##########

Na, Null, NaN, 0, Undefined

Na = Not Available (사용할수 없는 데이터/ 일반적으로 결측값을 의미) Na가 좀 포괄적인 것

NaN = Not a Number ( 정의 되지 않거나 할 수 없는 결과를 수학 연산으로 나타낼때 사용)

Null  = (어느 언어이든 대상이 없음을 의미

Inf>?? = infinite 무한대

df
      a     b     c     d
0     1     2     3     4
1   100   200   300   400
2  1000  2000  3000  4000

iloc

 

list comprehension == list ,

generator expression == tuple 같지만 함수타입/ 함수도 있다?

===============>tuple(generator expression) cast 가능 but cast 후 next는 불가능

한번 액세스 되면 폐기됨 so, 시스템리소스인? 메모리 최적화에 사용함

728x90

댓글