data type 변환 : type(), int, float, boolean, String, str(), escape
data cleaning
1) domain knowledge
2) visualization
3) Math/Statistics
Handling missing values
one hot encoding : 텍스트를 숫자데이터로 변경(모델은 텍스트를 이해 못하므로), 표현하고 싶은 인덱스에 1을 부여, 다른 인덱스에는 0을 부여
Feature Engineering을 사용하는 이유 : 수학, 통계 및 도메인 지식을 기준으로 새로운 feature(열)를 만드는 것
Feature engineering의 목적 : 기존의 feature를 바탕으로 더 의미있는 패턴을 만들기 위함
DataFrame : 테이블 형태의 데이터 (Tidy 형태에 대해 알아둘 것 : 호환성을 위해서)
DataFrame에서의 datatype
1) 파이썬에선 결측치를 NaN으로 표현 (float타입)
2) 따라서 NaN이 존재하면 다른 데이터도 강제형변환 (int->float)
3) 빅데이터를 관리할 때는 data type을 신경써야할 수도
string 형변환과정
1) 숫자아닌부분제거 (string variable).replace("삭제할 글자",'')
2)문자를 숫자로 변환
함수로 만들기 (1)
def toInt(string):
return int(string.replace(',','')
Data Manipulation : 여러개의 분리된 데이터를 분석하기 쉽게 하나의 데이터 셋으로 만드는 과정
Tidy Data : 각 변수가 열이고 관측치가 행으로 배열된 데이터
melt : pandas에서 Tidy Data를 만드는 방법
df.melt(id_vars=['first','last'])
df.melt(id_vars='',var_name='',value_name='')
Concat(Concatenate) : 데이터를 물리적으로 붙임
1) 문자열 더하기 : tostring, join
2) 문자열 나누기 : split
data.frame에서는 열이나 행을 기준으로 붙이는 것을 고려해야함
Index가 다른 경우 : 없는 항목은 어떻게 채워지는가? -> NaN처리
pd.concat([x,y])
- row를 붙임
pd.concat([x,y], axis = 1)
- column을 붙임
read_csv(url+'원하는 데이터.csv')
의 식으로 불러오기도 가능 (문자열 연결을 통해서)
pandas first row header : 첫 행으로 헤더를 끌어올리기
Merge : concat과 다르게 공통된 부분 기반으로 합침
inner-join (다른 option은 추가로 공부할 것)
x1.merge(x2) 의 형태 how,on 옵션도 있음 (how의 경우 outer는 합집합, inner는 교집합을 의미한다, 디폴트는 inner)
Condition : 필터링 조건 설정
isin
1) 필터링 설정 중 하나
2) column이 list의 값을 포함하고 있는 것만 걸러낼 때 사용
Groupby : 그룹화
1) df.group('이름').column이름.mean()
식으로 이용 가능
pandas styling : 잡기술이지만 알아두면 좋다
Tidy 데이터 : 원칙을 가지고 데이터를 만들자
앞으로는 Tidy format에 익숙해지자
reset_index() : rownames을 feature로 설정
tidy는 한 행에 한 observation (누가 어떤값을 가지는지)
rename() : 열의 이름 수정
pivot_table : tidy -> wide로 변환 (melt)의 반대결과
tidy는 Seaborn과 같은 시각화 라이브러리에 유용하게 쓰인다.