DS_EDA

ParkJangSik·2021년 5월 6일
1

Codestates_DS

목록 보기
1/6

주제 : EDA

과제 주요 문제 정리

  • 데이터셋 불러오기 + DataFrame 행렬 transepose하기 + sheet별로 불러 + Dataframe csv파일 저장
  • 첫번째 row를 column name으로 설정하기
  • 데이터 dimension 확인하기
  • 데이터의 결측치 확인하고, 0으로 대체 or 해당 행,열 제거
  • graphic EDA : 특정 column값을 barplot으로 나타내기 + trouble shooting
  • graphic EDA : qq plot 그리기 = 데이터의 분포 확인하기
  • graphic EDA : box plot 그리기
  • Non graphic EDA : summary statistics, cross-tabulation

과제에 사용된 명령어들 모음

1. 데이터셋 불러오기

ktng_data_url= 'https://ds-lecture-data.s3.ap-northeast-2.amazonaws.com/stocks/Travel.xlsx'
df1 = pd.read_excel(ktng_data_url, sheet_name=0)
df1 = df1.T
df1.head()
df1.to_csv("df1.csv", mode='w')
- 특정 변수에 데이터의 주소값을 선언
- excel 파일로 읽기 + 뒤에 sheet_name을 통해 시트별로 불러 올 수 있다.
- 행과열을 Transepose 시켜주기
- Dataframe의 요약정보 보여주기
- Dataframe csv 파일로 변환 (python export csv) 이후 똑같이 읽어주면 된다.

2. 첫번째 row를 행의 이름으로 설정하기

https://stackoverflow.com/questions/31328861/python-pandas-replacing-header-with-top-row
- 과제에서는 column의 모든 이름을 수작업으로 바꿔 주었다.
- 위의 stackoverflow에서 편한 방법 확인 가능하다.

3. 데이터 dimension 확인하기

print(df1.size) 
print(df1.shape) 
print(df1.ndim)
-  행 * 열 계산한 모든 갯수
-  행, 열 각각의 갯수를 파악할 수 있다
-  dataframe의 차원 알려준다 1차원 or 2차원

4. 데이터의 결측치 확인하고, 0으로 대체 or 해당 행,열 제거

df1.isnull()
df1=df1.fillna(0)
pp.dropna()
df.isnull().sum() # 컬럼별 결측값 총합계
-  결측이면 True  , 결측이 아니면 False
   (참고) df1.isnull().sum() ==> 칼럼별 결측값 갯수

-  결측치 값 0으로 대체
-  결측치가 존재하는 행 제거하기

5. graphic EDA : 특정 column값을 barplot으로 나타내기

  • bar로 나타내기

    df2['FCF'].plot.bar()

  • 그래프 그릴 때 오류나면 봐줘야 하는 설정들.

    import matplotlib.pyplot as plt
    import warnings
    import matplotlib as mpl
    import seaborn as sns
    import numpy as np
    import warnings
    warnings.filterwarnings("ignore")
    %matplotlib inline
    %config InlineBackend.figure_format='retina'
    mpl.rc("font", family='Malgun Gothic')
    mpl.rc('axes', unicode_minus=False)

6. graphic EDA : qq plot 그리기 = 데이터의 분포 확인하기

import scipy.stats as stats
import pylab
stats.probplot(pp.bill_length_mm, dist="norm", plot=pylab)
pylab.show()

특정 Column을 기준으로 나머지 Column에 대해 Plot그린다

7. graphic EDA : box plot 그리기

pp.boxplot(column=['bill_length_mm','bill_depth_mm','flipper_length_mm','body_mass_g',])

8 summary statistics, cross-tabulation

summary statistics

pp[pp.columns[i]].mean()
pp[pp.columns[i]].std()
pp[pp.columns[i]].quantile(q=0.5)
(0 <= q <= 1 에서 Q의 값에 따라 백분위수가 바뀐다. 25, 50, 75, 100 따라서 현재는 3Q)


cross-tabulation

pd.crosstab(index=[pp.species], columns= pp.sex)

예를들어 펭귄의 종족에 따른 성별 수를 알아보기 위해 사용할 수 있다.

github에서 해당 명령어 사용방법 확인하기

profile
취준생

0개의 댓글