edwith_python_(13)데이터 전처리하기
Updated:
edwith 부스트코스 파이썬으로 시작하는 데이터 사이언스 를 공부하는 과정입니다.
지난 포스트 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
.
.
다음 포스트 edwith_python_(14)lineplot으로 판매 데이터 시각화하기
Leave a comment