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

- Categorical Data
- Nominal
- Values represent discrete units
- Changing the order of units does not change their value
- Ordinal
- Values represent discrete and ordered units
- Distance between units is not the same
- Nominal
- Continuous data
- Interval
- Ordered units with intermediate values
- Distance between units is the same
- No absolute zero→ A person with an IQ score of 160 is Not twice as smart as someone with an IQ score of 80
- → Origin is arbitrary
- Ratio
- Ordered units with intermediate values
- Distance between units is the same
- Absolute zeroA 12 inch long sandwich is twice the length of a 6 inch sandwich
- → Origin is at zero
- Interval
*** 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 |