Data Analyst KIM

[빅데이터 분석기사-실기] 작업형1. 이상치 찾기 예제 본문

일상/자격증

[빅데이터 분석기사-실기] 작업형1. 이상치 찾기 예제

김두연 2023. 5. 23. 22:53
반응형

T1-1. 이상치를 찾아라

데이터에서 IQR을 활용해 Fare컬럼의 이상치를 찾고,
이상치 데이터의 여성의 수를 구해라.

  • 타이타닉 데이터활용
# 라이브러리 불러오기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#데이터셋 불러오고 살펴보기
df1 = pd.read_csv("C:/Users/USER/OneDrive/titanic.csv")
df1.head()
  PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S
4 5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S
df1.isnull().sum()
PassengerId      0
Survived         0
Pclass           0
Name             0
Sex              0
Age            177
SibSp            0
Parch            0
Ticket           0
Fare             0
Cabin          687
Embarked         2
dtype: int64
df1.describe()
  PassengerId Survived Pclass Age SibSp Parch Fare
count 891.000000 891.000000 891.000000 714.000000 891.000000 891.000000 891.000000
mean 446.000000 0.383838 2.308642 29.699118 0.523008 0.381594 32.204208
std 257.353842 0.486592 0.836071 14.526497 1.102743 0.806057 49.693429
min 1.000000 0.000000 1.000000 0.420000 0.000000 0.000000 0.000000
25% 223.500000 0.000000 2.000000 20.125000 0.000000 0.000000 7.910400
50% 446.000000 0.000000 3.000000 28.000000 0.000000 0.000000 14.454200
75% 668.500000 1.000000 3.000000 38.000000 1.000000 0.000000 31.000000
max 891.000000 1.000000 3.000000 80.000000 8.000000 6.000000 512.329200
# 표준편차 확인하기
df1["Fare"].std()
49.693428597180905
# 이상치 범위 확인하기
Q1 = df1['Fare'].quantile(.25)
Q3 = df1['Fare'].quantile(.75)
IQR = Q3-Q1
print(Q1-1.5*IQR,Q3+1.5*IQR)
-26.724 65.6344
# 이상치 데이터 구하기
out1 = df1[df1['Fare']<Q1-1.5*IQR]
out2 = df1[df1['Fare']>Q3+1.5*IQR]
print(len(out1),len(out2))
0 116
# 이상치 데이터 중 여성의 수 구하기
sum(out2['Sex'] == 'female')
70
반응형