본문 바로가기
IT&게임/빅데이터분석기사(빅분기)

빅데이터분석기사 실기 공부하기- 제1유형 : 데이터 전처리①

by 푸루루 2024. 5. 30.
728x90
반응형

※ 빅데이터 분석기사 이기적 책을 학습한 내용 

 

탐색적 데이터분석 (EDA: Exploratory Data Analysis)

 

 

오늘의 공부해볼 데이터는 타이타닉 데이터 ! 

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df=pd.read_csv("https://raw.githubusercontent.com/YoungjinBD/dataset/main/titanic.csv")

 

데이터프레임의 전체 구조를 확인하는 - info()

## 데이터프레임의 구조를 살펴보기 위한 함수
df.info()

결측치가 있음을 확인

 

int인 Survived는 범주형변수(Object)로 형변환을 시켜준다. - astype()

df['Survived']=df['Survived'].astype(str)
df['Pclass']=df['Pclass'].astype(str)

 

기초 통계량을 확인하는 describe()

df.describe(include='all')
## include='all'을 넣으면 모든 변수에 대한 정보를 보여줌
## 즉 결측치를 포함한 모든 값을 보여준다.

만일 셀 수 없는 '범주형 변수'라면 unique(값의 수),top(가장 많이 출현한 애),freq(출현한 애의 값) 을 보여준다.

때문에 위에서 범주형 변수로 바꾼 Survived는 통계량은 Nan이지만 위의 값은 나타나게된다. 

 

기초데이터 분석 

 

Q) Pclass(좌석클래스)에 해당하는 탑승객의 빈도수를 구해보자

- groupby()와 size() 함수를 활용 (size를 쓰지 않으면 DF의 정보 값만 나옴)

 

Q) Fare(요금)별 생존율의 차이가 있는지 파악을 해보자 

death= df[df["Survived"]=="0"]["Fare"] ## 죽은사람의 요금 
live = df[df["Survived"]=="1"]["Fare"] ## 산사람의 요금 

## 박스 플롯을 그리는 함수 ㅡ 빅분기 문제는 그래프를 못씀
fig,ax=plt.subplots()
ax.boxplot([death,live])

- 생존한 사람들이 요금이 높은편이지만 큰차이는 없음 

- 이상치를 발견 ! 

 

Q) Sex(성별)간 생존율 차이가 있는가? (남자만 확인) 

#성별에 따른 생존자 조건값을 봐보자
survive_male = df[df["Sex"]=="male"]["Survived"]
df1=pd.DataFrame(survive_male)
df1_group=df1.groupby("Survived")
df1_group.size()

여자도 동일하게 확인이 가능, 결과는 여성 탑승객이 생존이 더 높음

 

728x90

댓글