본문 바로가기

Python_Intermediate/Pandas

[Python]Data Preparation Basic(데이터 전처리 기초) 1

 

Live Coding

1. Sample Data

# 딕셔너리 성적 리스트
grade_dic = {
    '국어': [98, 88, 68, 64, 120],
    '영어': [None, 90, 60, 20, 50],
    '수학': [90, 70, None, 31, None],
    '과학': [120, 50, None, 60, 88]
}

 

2. prettytable

pip install prettytable

 

3. 열 순서 변경

from pandas import DataFrame
from Data import grade_dic
from print_df import print_df

# 데이터 프레임
df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# 열 순서 변경
df_columns = df.reindex(columns=['국어', '수학', '영어', '과학'])

# 열 순서 변경 후 출력
print_df(df_columns)

 

4. 행 순서 변경

from pandas import DataFrame
from Data import grade_dic
from print_df import print_df

# 데이터 프레임
df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# 행 순서 변경
df_index = df.reindex(index=['이슬이', '노진구', '퉁퉁이', '비실이', '도라에몽'])

# 행 순서 변경 후 출력
print_df(df_index)

 

5. 열, 행 이름 변경

from pandas import DataFrame
from Data import grade_dic
from print_df import print_df

# 데이터 프레임
df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# 열, 행 이름 변경
df_c_i = df.rename(
    columns={
        '국어': 'kor', '영어': 'eng', '수학': 'math', '과학': 'sin'
    },
    index={
        '노진구': 'no', '이슬이': 'is', '비실이': 'bs', '퉁퉁이': 'tt', '도라에몽': 'dr'
    }
)

# 열, 행 이름 변경 후 출력
print_df(df_c_i)

 

6. 원본 수정(데이터 프레임 수정)

from pandas import DataFrame
from Data import grade_dic
from print_df import print_df

# 데이터 프레임
df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# 원본 수정
# inplace=True -> 원본 값 수정
df.rename(
    columns={
        '국어': 'kor', '영어': 'eng', '수학': 'math', '과학': 'sin'
    }, inplace=True
)

# 원본 수정 후 출력
print_df(df)

 

7. 특정 열 오름차순

from pandas import DataFrame
from Data import grade_dic
from print_df import print_df

# 데이터 프레임
df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# 특정 열 오름차순
df.sort_values('국어', inplace=True)

# 오름차순 후 출력
print_df(df)

 

8. 특정 열 내림차순

from pandas import DataFrame
from Data import grade_dic
from print_df import print_df

# 데이터 프레임
df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# 특정 열로 내림차순 정렬
df.sort_values('영어', inplace=True, ascending=False)

# 특정 열로 내림차순 후 출력
print_df(df)

 

9. 두 개 이상 열 정렬

from pandas import DataFrame
from Data import grade_dic
from print_df import print_df

# 데이터 프레임
df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# 두 개 이상의 열로 정렬
# 국어 점수가 동일할 경우 과학점수 순으로 정렬
df.sort_values(['국어', '과학'], inplace=True)

# 정렬 후 출력
print_df(df)

 

10. 특정 조건 행 조회

from pandas import DataFrame
from Data import grade_dic
from print_df import print_df

# 데이터 프레임
df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# 특정 조건 행 조회
search_index = df.query('국어 > 70')

# 출력
print_df(search_index)

 

11. 다중 조건 행 조회(and 조건)

from pandas import DataFrame
from Data import grade_dic
from print_df import print_df

# 데이터 프레임
df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# 다중 조건 행 조회
# and 조건
all_index = df.query('국어 > 70 and 과학 > 60')

# 출력
print_df(all_index)

 

12. 다중 조건 행 조회(or 조건)

from pandas import DataFrame
from Data import grade_dic
from print_df import print_df

# 데이터 프레임
df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# 다중 조건 행 조회
# or 조건
all_index = df.query('국어 < 50 or 영어 < 40')

# 출력
print_df(all_index5)