EDA (exploratory data analysis) =분석과 이해를 통해서 ===> Data Preprocessing(전처리) 과정이 들어감
EDA란, 데이터 분석에 있어서 매우 중요한, 초기 분석의 단계를 의미하며
- 시각화 같은 도구를 통해서 패턴을 발견하거나
- 데이터의 특이성을 확인하거나
- 통계와 그래픽 (혹은 시각적 표현)을 통해서 가설을 검정하는 과정 등을 포함합니다.
EDA의 방법은 크게 2가지 (Graphic, Non-Graphic) 으로 나눠질 수 있으며
- Graphic : 차트 혹은 그림 등을 이용하여 데이터를 확인하는 방법입니다.
- Non-Graphic :그래픽적인 요소를 사용하지 않는 방법으로, 주로 Summary Statistics를 통해 데이터를 확인하는 방법입니다.
동시에, EDA의 "타겟"(데이터) 또한 2가지 (Univariate, Multi-variate)로 나눠집니다.
*Uni Non Graphic
-sample Data의 Distribution을 확인하는 것이 목적
(= Numeric data 경우 summary statistics) 사용 // df.describe() == Descriptive Statistics(기술적 통계치)
*Uni Graphic
- QQPlot (= 데이터의 분포와 이론상 분포가 잘 일치하는것인지 확인), Pie-chat, Boxplot 등
*Multi Non Graphic
-Multi-variate 의 경우 여러 변수들간의 관계를 보는 것이 주요 목적입니다.
- Crosstab, CrossStatistics(cov, corr)
*Multi - Graphic
- Category & Numeric : Boxplots, Stacked bar, Parallel Coordinate, Heatmap
csv (comma separated value)
#변수 지정 및 transpose() == T ==> row가 아닌 column에 매출액, 영업이익이 가도록 transpose
#excel 파일불러오기
*pd.read_excel('asjdiasd.xlsx') ==> 가능한 파일 형식: 'xls, xlsx, xlsm ....'
#sheet_name= '불러올 시트지정'/ '시트명' or '0
#df.sheet_names ==> sheeet_name 불러오기
#df.head(n) n행까지만 보여줌 안적으면(columns부분 포함 + index 행 나옴)
#df.tail(n) 꼬리부분 보여줌(행)
#df.info() ==> Technical summary /
#df.describe ==> summary statistics?
#df.shape ==> dimenstion 확인 (head/tail/info and dtypes 속성은 첫번째로 확인
#header= 열 헤더로 사용할 행 지정/ 첫 행이 헤더가 아닌경우 = None ==> 첫번째 행이 인덱스로 나옴
#index= False = index 부분 없애줌
#names= 열 이름 변경 / 불러오는 열의 개수와 일치해야함!!
#usecols= ['사용할열_1', '사용할열_2']) 불러올 열 지정 or [0, 1] 숫자로 지정
#na_values= '결측값의 형태' (' - ', '여러가지 형태' ....)결측값 인식하기 해당형태 NaN으로 변경
#skiprows = *n 앞에서 n개 행 생략
#nrows= n *처음부터 n-1개 행까지
#df1.isnull() ==> NaN값을 True로 나옴 /
df1.notnull()==> NaN값이 False로 나옴
========>>>>astype(int)로 바꿔줄수 있을것 같음 또는 map(int)
#결측치 변경 fillna(숫자 or '형태') ==> 숫자 or '형태'로 변환 >>값이 소수로나옴?? O
#or operator == l / and operator == &
#iloc[ 행, 열] ==> ex) iloc[9:25, 2:5] == 행 9 till n-1까지 / 열 3 till n-1까지 ??????
#loc[] ==> 이름으로 리스트 슬라이싱
#iloc[] ==> 숫자로 (잘 사용되지 않음)
#iloc[ [1,2], [1,4] ] ====>> [1,2]은 1번행과 2번행을 꺼내/ [1, 4]은 1번 열과 4번째 열
=============================> 첫번째 name 열이 0 임
#파일 변경(df1 = .xlsx
df1.to_csv('변경할이름') ==> xlsx 가 csv로 변경됨 == '변경할이름'으로 저장됨
#특정 columns을 추출하고 그 변수에 대해서 cross-tabulation
import seaborn as sns
pp = sns.load_dataset('penguins')
pd.crosstab(pp.columns, pp.columns) ===> 첫번째 columns가 행으로, 두번째 columns 열로
==> pd.crosstab(index= pp.['?'], columns= pp.['?']) 로 지정해줄 수 있음
/////////////////////////도전과제////////////////////////
hue = 'asd' ==> 그래프안에 박스
*plot 내장함수
kind=
'line' 'kde' = 커널 밀도 그래프
'bar' 'area' = 면적그래프
'barh' = 수평막대 'pie' = 파이그래프
'his' = 히스토그램 'scatter' = 산점도그래프
'box' = boxplot 'hexbin' = 고밀도 산점도 그래프
# datetime으로 변경 // df.Date 라고 해도 불러올 수 있음
df['Date'] = pd.to_datetime(df['Date'])
# datetime에서 year만 가져오기(dt = datetime)
df['Date'].dt.year // month, day만 불러올 수 있음
'통계, EDA, 선형대수 > Data Process & EDA' 카테고리의 다른 글
n114 기초미분 Basic Derivative (0) | 2021.05.15 |
---|---|
n113 Data Manipulation(merge, melt, concat) (0) | 2021.05.10 |
N112a Feature Engineering / iloc (0) | 2021.05.09 |
댓글