반응형
Cleaning Data
분석을 위해 읽어온 원본 데이터의 데이터 타입이 올바른지 확인하지 않으면 분석과정에 사용하는 다양한 통계적 지표나 필터결과가 오류를 발생시킨다.
원데이터를 datetime, "int", "category"데이터로 형식을 변화시키고 category와 int형 데이터의 describe()함수의 결과의 차이를 확인한다.
# Cleaning data and difference btwn describe() of int, category data types
import pandas as pd
import datetime as dt
df = pd.DataFrame({"year": ['1900','1901','1910','2021', '2023'],
"n_sales" : ['10EA', '20EA', '40EA', '100EA', '210EA'],
"status" : ['good', 'bad', 'normal', 'bad', 'good']})
df.info()
print(f"Today is {dt.date.today()}")
#
print("")
print("==========================================")
df['year'] = pd.to_datetime(df['year'])
df['n_sales'] = df['n_sales'].str.strip('EA').astype('int')
df['status'] = df['status'].astype('category')
df.info()
# describe 'category'
print("")
print("==========================================")
print("describe <category>")
display(df['status'].describe())
# describe ''
print("")
print("==========================================")
print("describe <int>")
display(df['n_sales'].describe())
to_datetime()함수를 이용하여 데이터 타입으로 변경하고 나머지 컬럼은 int와 category 형식으로 변환하였다.
아래의 "n_sales"는 int형식인 "n_sales" 컬럼의 describe()결과를 보면 평균, 표준편차, 사분위값등의 통계정보가 표시됨을 알 수 있다.
하지만 category형식으로 변환되 "status" 컬럼은 status상태를 표현하는 카테고리값들의 종류를 보여주는 unique값, top, freq등의 정보로 표현됨을 알 수 있다.
"status" : ['good', 'bad', 'normal', 'bad', 'good'] 컬럼은 "good", "bad", "normal" 3개의 값으로 표현됨을 unique값이 3인 것으로 확인할 수 있으며 가장 많이 사용된 값은 "bad"로 5회 중 2회 사용되었다.
반응형
'Programming > Pandas' 카테고리의 다른 글
판다스 데이터프레임을 파일로 저장 (0) | 2024.05.23 |
---|---|
[Pandas] Text파일의 데이터 읽기 (0) | 2022.12.20 |
[Pandas] 데이터 결합/병합 .merge() (0) | 2022.01.08 |
[Pandas] 데이터접합 방향설정 및 이름설정 (0) | 2022.01.07 |
[Pandas] 데이터 연결 (concat), 인덱스 연결 (0) | 2022.01.07 |