본문 바로가기

Python_Intermediate/Pandas

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

 

Live Codeing

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. 리스트 사용 행 추가

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

df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# print_df(df)

# 리스트 행 추가
df.loc['짱구'] = [90, 80, 70, 30]

# 누락되는 값(결측치) 또는 초과에 경우 에러 발생
#df.loc['짱구'] = [70, 20, 34, 10, 49]

 

3. 딕셔너리 사용 행 추가

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

df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# print_df(df)

# 딕셔너리 행 추가
df.loc['짱구'] = {'국어': 70, '영어': 60, '수학': 73, '과학': 24}

print_df(df)

 

4. 행 복사

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

df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# print_df(df)

# 행 복사
df.loc['짱구'] = df.loc['도라에몽']

print_df(df)

 

5. 다른 데이터프레임 병합 행 추가

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

df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# print_df(df)

# 다른 데이터 프레임 병합
# 제외된 열 -> NaN(결측치)
# sort -> 열을 이름순으로 정렬(기본값 : true)

df2 = DataFrame({'국어': 34, '수학': 40, '과학': 90}, index=['짱구'])
new_df = df.append(df2, sort=False)

print_df(new_df)

 

6. 한 개 행 삭제

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

df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# print_df(df)

# 행 삭제(결과 반영된 복사본 생성)
del_df = df.drop('노진구')

print_df(del_df)

 

7. 여러 개 행 삭제

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

df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# print_df(df)

# 행 여러개 삭제
del_df = df.drop(['이슬이', '퉁퉁이', '도라에몽'])

print_df(del_df)

 

8. 인덱싱 사용 행 삭제

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

df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# print_df(df)

# 인덱싱을 이용 삭제
del_df = df.drop(df.index[0])

print_df(del_df)

 

9. 슬라이싱 사용 행 삭제

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

df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# print_df(df)

# 슬라이싱 사용 삭제
del_df = df.drop(df.index[2:5])

print_df(del_df)

 

10. 삭제 결과 원본 반영

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

df = DataFrame(grade_dic, index=['노진구', '이슬이', '비실이', '퉁퉁이', '도라에몽'])

# print_df(df)

# 삭제 결과 원본 반영
# drop() -> 원본 수정 x / 복사본 반영
# inplace -> True : 원본 자체 삭제
df.drop(['노진구', '퉁퉁이'], inplace=True)

print_df(df)