edwith_python_(13)데이터 전처리하기

Updated:

edwith 부스트코스 파이썬으로 시작하는 데이터 사이언스 를 공부하는 과정입니다.

지난 포스트 :point_right: edwith_python_(12)K-beauty 판매 데이터 살펴보기


5. 데이터 전처리

5.1 기간에서 연도를 분리하기

기간에서 연도만 분리하여 “연도”라는 컬럼에 넣기
df["연도"] = df["기간"].map(lambda x : int(x.split()[0]))
df.head()

*결과*

  국가(대륙)별 상품군별 판매유형별 기간 백만원 연도
0 합계 합계 2014 1/4 148272 2014
1 합계 합계 면세점 2014 1/4 - 2014
2 합계 합계 면세점 이외 2014 1/4 - 2014
3 합계 컴퓨터 및 주변기기 2014 1/4 4915 2014
4 합계 컴퓨터 및 주변기기 면세점 2014 1/4 - 2014

lambda: 이름의 정의 없이 간단하게 만드는 익명의 함수
반복되는 계산식을 만들 때 주로 사용
int(x.split()[0]): x 값을 공백으로 나누고, 0번째 인덱스 값을 int형식으로 나타내기

“기간”에서 분기만 분리하여 “분기”라는 컬럼에 넣기
df["분기"] = df["기간"].map(lambda x : int(x.split()[1].split("/")[0]))
df.head() 

*결과*

  국가(대륙)별 상품군별 판매유형별 기간 백만원 연도 분기
0 합계 합계 2014 1/4 148272 2014 1
1 합계 합계 면세점 2014 1/4 - 2014 1
2 합계 합계 면세점 이외 2014 1/4 - 2014 1
3 합계 컴퓨터 및 주변기기 2014 1/4 4915 2014 1
4 합계 컴퓨터 및 주변기기 면세점 2014 1/4 - 2014 1

5.2 금액을 수치데이터로 표현하기 위한 데이터 타입 변경하기

’ - ‘ 문자를 결측치로 변경하고 float 타입으로 변경하기 (현재는 str 타입임)
df["백만원"] = df["백만원"].replace("-", pd.np.nan).astype(float)
df.head()

*결과*

  국가(대륙)별 상품군별 판매유형별 기간 백만원 연도 분기
0 합계 합계 2014 1/4 148272.0 2014 1
1 합계 합계 면세점 2014 1/4 NaN 2014 1
2 합계 합계 면세점 이외 2014 1/4 NaN 2014 1
3 합계 컴퓨터 및 주변기기 2014 1/4 4915.0 2014 1
4 합계 컴퓨터 및 주변기기 면세점 2014 1/4 NaN 2014 1

5.3 필요없는 데이터 제거하기

합계 데이터는 따로 구할 수 있으므로, “국가(대륙)별” 합계와 “상품군별” 합계는 전체 데이터에서 제외하기
df = df[(df["국가(대륙)별"]  != "합계") & (df["상품군별"]  != "합계")].copy()
df.head()

*결과*

  국가(대륙)별 상품군별 판매유형별 기간 백만원 연도 분기
48 미국 컴퓨터 및 주변기기 2014 1/4 2216.0 2014 1
49 미국 컴퓨터 및 주변기기 면세점 2014 1/4 NaN 2014 1
50 미국 컴퓨터 및 주변기기 면세점 이외 2014 1/4 NaN 2014 1
51 미국 가전·전자·통신기기 2014 1/4 2875.0 2014 1
52 미국 가전·전자·통신기기 면세점 2014 1/4 NaN 2014 1
결측치 보기
df.isnull().sum()

*결과*

국가(대륙)별       0
상품군별          0
판매유형별         0
기간            0
백만원        3024
연도            0
분기            0
dtype: int64

.
. 다음 포스트 :point_right: edwith_python_(14)lineplot으로 판매 데이터 시각화하기

Categories:

Updated:

Leave a comment