본문 바로가기

데이터 분석/전처리 및 EDA

Pandas 기본설정

728x90

1. 데이터셋 불러오기

1-1. 데이터셋을 불러오기 위한 단계

1) 데이터셋에 대한 정보를 파악합니다

  • 데이터의 수집방법과 목적 등 을 파악
  • 데이터의 크기는 어느정도 되는지, 결측 데이터가 있는지 확인
  • 원본 파일을 열어 보기, 기대하는 형태로 데이터가 구성되지 않을 수도 있습니다.

2) pandas.read_csv()를 사용하여 데이터셋 불러오기를 시도하고, 오류가 있다면 원인에 대해 조사하기

  • 원본 데이터셋에 따라서 때로는 행의 헤더 부분을 직접 입력 해야 할 수도 있습니다.
  • pandas를 통해 csv파일이 아닌 다양한 파일들을 읽을 수 있습니다.

데이터셋의 Description이 없는 경우는 어떻게 해야 할까요?

→ info() 함수를 통해 데이터에 대한 전반적인 정보를 확인한다

import pandas as pd
myfile = '  ' # csv 파일이 있는 로컬 주소 또는 웹 주소
df = pd.read_csv(myfile)
df.info()

→ describe() 메서드를 통해 데이터 특성의 요약정보를 확인한다

res = object.describe(percentiles = None, include=None)
  • percentiles (기본값으로 [0.25, 0.5, 0.75]을 출력하게 설정되어 있다)
  • 이 입력변수에는 분위수를 출력하기 위한 데이터를 입력받는다
  • include
  • 이 입력변수는 결과를 요약하기 위한 데이터타입의 리스트를 입력받는다

1-2. 메뉴얼보는 방법

# 첫번째 help(pd.read_csv) # 두번째 (recommend) ?pd.read_csv # 세번째 (recommend) -> 구글링

# 첫번째 
help(pd.read_csv) 

# 두번째 (recommend) 
?pd.read_csv 

# 세번째 (recommend) -> 구글링

1-3. CSV 파일의 정의

  • comma separated values
  • feature의 구분이 comma (,)로 이뤄진 데이터의 형태

2. 명령어

2-1. dimension

df.shape() ''' [5 rows x 25 columns] (5, 25) '''

df.shape() 

''' 
[5 rows x 25 columns]
(5, 25)
'''

2-2. 파일 출력

# 방법1 print(df.head) # 방법2 df.head

# 방법1 
print(df.head)

# 방법2 
df.head

df.head(10) # 상위 10개만 출력

# 방법3
df # 상위 5개, 하위 5개 출력

 

2-3. 로컬파일에서 데이터셋 불러오기

  • 구글 코랩 파일 업로드 패키지
from google.colab import files uploaded = files.upload()

 

  • GUI (Graphical User Interface) 사용
pd.read_csv('파일명')

2-4. Missing Data (결측데이터)

  • isna
  • → nan값이 있으면 요소가 True, 아니면 False
  • notna→ 결측값이면 False로 출력
  • → 결측값이 아님을 확인할 때
  • isnull→ isnull().values.any(): dataframe에 nan 항목이 하나도 없으면 False
  • → nan값이 있으면 요소가 True, 아니면 False
  • notnull→ nan값이 있으면 요소가 False, 아니면 True
  • → isnull과 반대
  • dropna→ axis =1로 할경우, 결측값이 있는 열을 모두 제거
  • → 결측값이 있는 행을 모두 제거
  • fillna
  • → 결측값을 지정한 값으로 채우기
df.isna() # 결측값: True 
df.isnull() # 결측값: True 
df.notna() # 결측값: False 
df.notnull() # 결측값: False 
df.dropna(axis=1) # nan값이 있는 열 모두 제거 
df.fillna(0) # 0으로 값 채우기

# 효율적인 결측치 데이터 확인
df.isnull().sum()  
# 결측치가 있는 열과, 결측치의 갯수를 나타낼 수 있음

 

3. Types of Data

  1. Categorical Data
    • Nominal
      1. Values represent discrete units
      2. Changing the order of units does not change their value
    • Ordinal
      1. Values represent discrete and ordered units
      2. Distance between units is not the same
  2. Continuous data
    • Interval
      1. Ordered units with intermediate values
      2. Distance between units is the same
      3. No absolute zero→ A person with an IQ score of 160 is Not twice as smart as someone with an IQ score of 80
      4. → Origin is arbitrary
    • Ratio
      1. Ordered units with intermediate values
      2. Distance between units is the same
      3. Absolute zeroA 12 inch long sandwich is twice the length of a 6 inch sandwich
      4. → Origin is at zero

 

 

*** matplot 또는 seaborn에서 그래프의 한글깨짐 해결

# 한글폰트 설치
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf

# 설치후 런타임 - 런타임 다시시작 - 설치코드 주석처리

import matplotlib.pyplot as plt
import seaborn as sns

# matplot 기준 한글폰트 설정
# 폰트는 나눔바른고딕으로 설정 
plt.rc('font', family='NanumBarunGothic')

# 폰트변경시 발생하는 마이너스 부호 에러 수정코드
plt.rc('axes', unicode_minus=False)

# seaborn 기준 한글폰트 설정(위의 코드와 똑같습니다.)
sns.set(font="NanumBarunGothic", 
        rc={"axes.unicode_minus":False},
        style='darkgrid')

 

colab같이 온라인상 프로그램에서 사용할때는 새로운 파일마다 설치코드를 실행해줘야 합니다.

'데이터 분석 > 전처리 및 EDA' 카테고리의 다른 글

cheat sheet  (0) 2021.02.23
선형모델이란?  (0) 2021.01.28
Pandas란?  (0) 2021.01.26