<aside>
user_purchase_data.csv 파일에는 결측치가 포함되어 있습니다.
모든 결측치를 확인하고, 결측치가 있는 행을 제거하세요.
</aside>
# dropna() 함수 사용 - 결측치 제거
df = df.dropna()
# 결측치 개수 확인
df.isnull().sum()
<aside>
purchase_date 컬럼의 데이터 타입을 문자열에서 datetime으로 변환하고, total_spent 컬럼의 데이터 타입을 정수로 변환하세요.
</aside>
# csv 파일 읽어오기
data = pd.read_csv('user_purchase_data.csv')
# purchase_date = datetime 형으로 변환
data['purchase_date'] = pd.to_datetime(data['purchase_date'])
# total_spent = int 형으로 변환
data['total_spent'] = data['total_spent'].astype(int)
# dtypes 조회
data.dtypes
<aside>
중복된 구매 데이터를 확인하고 제거하세요.
중복의 기준은 user_id, purchase_date, product_id가 동일한 행으로 합니다.
</aside>
# csv 파일 읽어오기
data = pd.read_csv('user_purchase_data.csv')
# 중복행 제거하기
data = data.drop_duplicates(subset=['user_id', 'purchase_date', 'product_id'])
# 중복행 확인하기
data.duplicated(subset=['user_id', 'purchase_date', 'product_id'])
<aside>
price 컬럼에 이상치가 존재합니다.
IQR (Interquartile Range) 방법을 사용하여 이상치를 찾아 제거하세요.
</aside>
# csv 파일 읽어오기
data = pd.read_csv('user_purchase_data.csv')
# 사분위수 구하기
q1 = data['price'].quantile(0.25)
q3 = data['price'].quantile(0.75)
# IQR 값 구하기
iqr = q3 - q1
# 하한 이상치, 상한 이상치
lower_bound = q1 - (1.5 * iqr)
upper_bound = q3 + (1.5 * iqr)
# 이상치 구하기
condition = (data['price'] <= upper_bound) \\
& (data['price'] >= lower_bound)
# 조건에 맞는 데이터 변수에 담기
data_no_outliers = data[condition]
<aside>
total_spent 컬럼을 Min-Max 정규화를 사용하여 0과 1 사이의 값으로 변환하세요.
</aside>