Python_Intermediate/Pandas
[Python]Data Preparation Basic(데이터 전처리 기초) 1
AnKiWoong
2020. 1. 21. 21:10
반응형
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)
반응형