python의 pandas를 통한 기초 EDA(Exploratory Data Analysis)
: 데이터를 분석하기 전 탐색하여
- 패턴을 발견하거나
- 데이터의 특이성을 확인하거나
- 시각화를 통해 가설을 검정하는 과정 등을 말합니다.
데이터셋을 불러온 후 해야하는 것
- 행과 열의 수 체크 # (DataFrame.head(), DataFrame.shape)
- 열에 헤더가 있는지(컬럼 명 체크) # (DataFrame.head()
- 결측 데이터(Missing Data) 체크 # isna, isnull
EDA관련된 함수
Missing Data
- isna : NA값을 확인합니다.
- isnull : NULL값을 확인합니다
- notnull : NULL값을 확인합니다
- dropna : NA값 제거
- fillna : NA값 채우기
Data Frame
- index : index 확인
- columns : columns 확인
- dtypes : 컬럼 별 타입(ex. object, float ..)
- info : Non_Null Count와 컬럼별 타입
- select_dtypes : DataFrame.select_dtypes(include = 'float'or 'object') include 값을 통한 컬럼 타입별 조회
- loc, iloc
- DataFrame.loc['a'] index의 a행만 선택 -> 시리즈 반환,
- DataFrame.loc[['a', 'b']] index의 a,b행 선택 -> 데이터프레임 반환
- DataFrame.loc[['a', 'b'], ['c', 'd', 'e']] c,d,e열의 index a,b행 선택 -> 데이터프레임 반환
- DataFrame.loc[0,'a':'z'] index 0행의 a부터 z열까지 선택
- DataFrame.iloc[0] 첫째행 선택
- DataFrame.iloc[:0] 첫째열 선택
- DataFrame.iloc[:, 0:3] 첫 세개의 열만 선택
- DataFrame.iloc[[1,2], [1,3,4]] 두번째, 세번째 행과 두번째, 네번째, 다섯번째 열 선택
- insert
- DataFrame.insert(0, 'Column', ['data']) 0번째 열에, 'Column'이라는 이름으로 내용은 'Data'로 열 삽입
- head, tail
- DataFrame.head() 레코드의 순서상 위 5개
- DataFrame.tail() 레코드의 순서상 마지막부터 위로 5개
- apply
- result=object.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)
- object.apply(함수, axis=(0 or 1) A열에 함수 적용
- DataFrame['A'].apply(함수) A열에 함수 적용
- DataFrame['A'].apply(lambda x : x + 1) 사칙연산과 같이 단순한 작업의 경우 함수 대신, (lambda 입력값 : 결과 값)으로 사용 가능
- drop
- DataFrame.drop(['a','b']) index 중 a,b 삭제
- DataFrame.drop(index=0) 첫째 index 삭제, axis = 0 기본 값
- DataFrame.drop('A_Col', axis=1) 'A_col'이라는 이름 컬럼 삭제
- rename
- DataFrame.rename(columns={'기존 속성명':'바꿀 속성명', index={'기존 인덱스명' : '바꿀 인덱스명'})
- replace
- object.replace(old, new, [count])
- object.replace(",", "") object의 ","을 ""로 대체
- object.replace(",", "", 1) object의 ","을 1번만 ""로 대체
- nsmallest
- heapq.nsmallest(1, list) 리스트 내 가장 작은 수 1개 반환
- nlargest
- heapq.nlargest(3, list) 리스트 내 가장 큰 수 순서대로 3개 반환
- sort_values
- DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)
- DataFrame.sort_values(by='A') A라는 컬럼 기준으로 오름차순 정렬 한다.
- DataFrame.sort_values(by='A', ascending=False) A라는 컬럼 기준으로 내림차순 정렬 한다.
- DataFrame.sort_values(by='A', ascending=False, na_position='first) A라는 컬럼 기준으로 내림차순 정렬하되 NA값이 있는 경우 첫번째로 순서가 변경
- sort_index
- DataFrame.sort_index(axis=0, level=None, ascending=True, inplace=False, kind='quicksort', na_position='last', sort_remaining=True, ignore_index=False, key=None
- DataFrame.sort_index() index기준 오름차순으로 정렬
- DataFrame.sort_index(ascending=False) index기준 내림차순 정렬
- value_counts
- DataFrame.value_counts(subset=None, normalize=False, sort=True, ascending=False, dropna=True)[source]
- DataFrame.value_counts() 동일한 레코드의 합계 반환
- describe
- object.describe(percentiles=None, include=None, exclude=None, datetime_is_numeric=False)
- numeric_series.describe() numeric Series 기준 count, mean, std, min, 사분위 값, max
- categorical_series.describe() categorical Series 기준 count, unique, top, freq
- timestamp_series.describe() timestamp Series 기준 count, mean, std, min, 사분위 값, max
- DataFrame.describe() 컬럼 별 타입에 따라 반환
- shape
- DataFrame.shape DataFrame의 (행, 열)형태로 반환
데이터 시각화
: 데이터를 시각화 하는 이유는
- 데이터의 trend 확인 및 탐색 (EDA)
- 인사이트를 얻고, 해당 내용을 직관적으로 이해할 수 있게하며 강조할 수 있기 때문
vis
matplotlib.pyplot as plt
- plot
- plt.plot([1,2,3,4)
- plot.bar
- bar plot 출력
- plot.barh
- 가로 bar plot 출력
- plot.box
- box plot 출력
- plot.density
- 밀도 plot 출력
- plot.hist
- 히스토그램 plot 출력
- plot.line
- 선그래프 출력
- plot.pie
- 파이차트 출력
- plot.scatter
- 산점도 출력
'머신러닝' 카테고리의 다른 글
다중선형회귀( Multiple Linear Regression) (0) | 2021.08.03 |
---|---|
단순선형회귀( Simple-Regression ) (0) | 2021.08.02 |
Clustering (0) | 2021.07.31 |
High dimensional data, 차원 축소 (0) | 2021.07.31 |
Feature Engineering, Data Manipulation (0) | 2021.07.15 |