<filename>src/deep_learning_basics/python_code/appendix1_data.py
# -*- coding: utf-8 -*-
"""appendix1-data.ipynb

Automatically generated by Colaboratory.

Original file is located at
    https://colab.research.google.com/github/blackdew/tensorflow1/blob/master/appendix1-data.ipynb

# 데이터 타입 조정
https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/iris2.csv

- 변수(칼럼) 타입 확인: 데이터.dtypes
- 변수를 범주형으로 변경: 
  - 데이터['칼럼명'].astype('category')
- 변수를 수치형으로 변경: 
  - 데이터['칼럼명'].astype('int')
  - 데이터['칼럼명'].astype('float')
- NA 값의 처리 
  - NA 갯수 체크: 데이터.isna().sum()
  - NA 값 채우기: 데이터['칼럼명'].fillna(특정숫자)
"""

# 라이브러리 사용
import pandas as pd

# 파일 읽어오기
파일경로 = 'csv/iris2.csv'
아이리스 = pd.read_csv(파일경로)
아이리스.head()

# 원핫인코딩 되지 않는 현상 확인
인코딩 = pd.get_dummies(아이리스)
인코딩.head()
# 판다스는 숫자는 그냥 숫자로 인식해버리기 때문에 범주형 컬럼으로 인식하지 못해서 그대로 유지된다.

# 칼럼의 데이터 타입 체크
print(아이리스.dtypes)

# 품종 타입을 범주형으로 바꾸어 준다. 
아이리스['품종'] = 아이리스['품종'].astype('category')
print(아이리스.dtypes)

# 카테고리 타입의 변수만 원핫인코딩
인코딩 = pd.get_dummies(아이리스)
인코딩.head()

# NA값을 체크해 봅시다. 
아이리스.isna().sum()

아이리스.tail()

# NA값에 꽃잎폭 평균값을 넣어주는 방법
mean = 아이리스['꽃잎폭'].mean()
print(mean)
아이리스['꽃잎폭'] = 아이리스['꽃잎폭'].fillna(mean)
아이리스.tail()

