본문 바로가기

Python_Intermediate/Pandas

Data Preprocessing(데이터 전처리) - 기초

1. 데이터 전처리

분석에 적합하게 데이터를 가공하는 작업.

데이터 분석에서 가장 많은 시간이 걸리는 작업.

Data Manipulation(데이터 가공) / Data Handling(데이터 핸들링) / Data Cleanging(데이터 클리닝)이라 불린다.


2. Prettytable

pip install prettytable


3. DataFrame Source

grade_dic = {
'국어': [98, 88, 92, 63, None],
'영어': [None, 90, 70, 60, 50],
'수학': [88, 62, None, 31, None],
'과학': [64, 72, None, 70, 88]
}

import pandas
from pandas import DataFrame
from prettytable import PrettyTable

df = DataFrame(grade_dic, index=['코난', '뭉치', '아름', '세모', '장미'])

if isinstance(df, pandas.core.frame.DataFrame):
table = PrettyTable([''] + list(df.columns))
for row in df.itertuples():
table.add_row(row)

print(str(table))

else:
print(df)

+------+------+------+------+------+

|      | 국어 | 영어 | 수학 | 과학 |

+------+------+------+------+------+

| 코난 | 98.0 | nan  | 88.0 | 64.0 |

| 뭉치 | 88.0 | 90.0 | 62.0 | 72.0 |

| 아름 | 92.0 | 70.0 | nan  | nan  |

| 세모 | 63.0 | 60.0 | 31.0 | 70.0 |

| 장미 | nan  | 50.0 | nan  | 88.0 |

+------+------+------+------+------+


Process finished with exit code 0


4. 특정 열로 오름차순 정렬

inplace=True

원본 자체를 정렬

inplace=False

정렬되 결과를 리턴하고 원본 변화 없음(기본값)

df.sort_values('국어', inplace=True)

+------+------+------+------+------+

|      | 국어 | 영어 | 수학 | 과학 |

+------+------+------+------+------+

| 세모 | 63.0 | 60.0 | 31.0 | 70.0 |

| 뭉치 | 88.0 | 90.0 | 62.0 | 72.0 |

| 아름 | 92.0 | 70.0 | nan  | nan  |

| 코난 | 98.0 | nan  | 88.0 | 64.0 |

| 장미 | nan  | 50.0 | nan  | 88.0 |

+------+------+------+------+------+


Process finished with exit code 0


5. 특정 열로 내림차순 정렬

ascending=False

내림차순

ascending=True

오름차순

df.sort_values('국어', inplace=True, ascending=False)

+------+------+------+------+------+

|      | 국어 | 영어 | 수학 | 과학 |

+------+------+------+------+------+

| 코난 | 98.0 | nan  | 88.0 | 64.0 |

| 아름 | 92.0 | 70.0 | nan  | nan  |

| 뭉치 | 88.0 | 90.0 | 62.0 | 72.0 |

| 세모 | 63.0 | 60.0 | 31.0 | 70.0 |

| 장미 | nan  | 50.0 | nan  | 88.0 |

+------+------+------+------+------+


Process finished with exit code 0


6. 두 개 이상의 열을 기준으로 정렬

df.sort_values(['국어', '영어'], inplace=True)

국어 점수가 동일 할 경우 영어 점수로 정렬


7. 데이터 전 처리에서 수행 작업

- 행 / 열 추출

- 정렬

- 열 / 변수 추가

- 통계치 산출

- 나누기

- 열 / 행 합치기