프로젝트 수행을 위한 EDA 수업 후기

Date:     Updated:

카테고리:

태그:

프로젝트 수행을 위한 EDA 수업 후기

🗓️ 2024.04.26 ~ 2024.04.30

5일간 진행된 ‘프로젝트 수행을 위한 EDA’ 수업을 듣고 나서의 후기를 작성해보려고 한다. 이번 수업은 데이터 분석에서 필요한 numpy, pandas, Matplotlib, seaborn 라이브러리에 대해서 크게 다루었다. 또 CSV파일 데이터를 활용하여 EDA를 진행하고 데이터 분석을 통한 인사이트를 얻는 시간이 되었다. 우선 EDA(Exploratory Data Analysis)는 데이터를 분석하기 위한 첫 번째 단계로 데이터를 분석하면서 데이터의 특성을 파악하고, 데이터의 분포를 확인하고, 데이터의 결측치를 확인하고, 데이터의 이상치를 확인하는 등의 과정을 통해 데이터를 분석하는 것을 말한다.

Numpy

Numpy는 파이썬에서 수치 계산을 위한 라이브러리로 다차원 배열을 효과적으로 처리할 수 있게 해준다.

Numpy 시간에는 numpy의 다차원 배열을 생성하는 방법과 array의 shape, dtype, size, ndim, reshape, indexing, slicing, broadcasting, axis 등의 다양한 기능을 배웠다. numpy의 다양한 메서드들을 활용하여 다양한 데이터 분석과 계산을 효과적으로 수행할 수 있게 되었다.

# numpy 실습 예시

import numpy as np
data = [1, 2, 3, 4]
np.array(data) # array([1, 2, 3, 4])

np.zeros(10) # array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.ones((3, 5)) # array([[1., 1., 1., 1., 1.],
                #        [1., 1., 1., 1., 1.],
                #        [1., 1., 1., 1., 1.]])

np.arange(0, 20, 2) # array([ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18])
np.linspace(0, 1, 5) # array([0.  , 0.25, 0.5 , 0.75, 1.  ])

v1 = np.array((1, 2, 3))
v2 = np.array((4, 5, 6))

v1 + v2 # array([5, 7, 9])
v1 - v2 # array([-3, -3, -3])
v1 * v2 # array([ 4, 10, 18])
v1 / v2 # array([0.25, 0.4 , 0.5 ])

np.random.seed(42)   # set seed number
mat1 = np.random.randn(5, 3) # 5x3 matrix

Pandas

Pandas는 데이터 분석을 위한 라이브러리로 데이터를 다루기 위한 자료구조와 데이터 분석 도구를 제공한다.

Pandas 시간에는 pandas의 Series, DataFrame, Index, MultiIndex, Selection, Filtering, Sorting, Grouping, Pivot Table, Merge, Join, Reshape 등의 다양한 기능을 배웠다. Pandas 그래프 시각화를 위해 머신러닝 데이터 중 유명한 타이타닉 데이터셋을 활용하여 시각화를 연습해보는 시간을 가졌다.

# pandas 실습 예시

import pandas as pd

# Q1. 여성 승객들의 평균 나이를 계산해보세요.
#np.mean(titanic.loc[titanic.Sex == 'female', 'Age'])
titanic.loc[titanic.Sex == 'female', 'Age'].mean()


# Q2. 1등석에 탑승한 승객 중 최대 요금을 낸 사람의 이름을 찾아주세요.
temp = titanic.loc[titanic.Pclass == 1, ['Name', 'Fare']]
temp.loc[temp.Fare == temp.Fare.max(), "Name"]

# Q3. 1등석에 탑승한 승객 중 승선한 곳이 Queenstown인 사람들의 수는?
#temp2 = titanic[titanic.Pclass == 1]
#temp2[temp2.Embarked == 'Q']
## mask & mask : 두 조건을 둘 다 만족하는 mask.   (AND)
## mask | mask : 두 조건중 하나 이상 만족하는 mask. (OR)
## ~mask : 조건을 반전. (NOT)
titanic[(titanic.Pclass == 1) & (titanic.Embarked == 'Q')].shape[0]

# Q4. 승선한 곳이 "S"인 사람들의 생존자 수는?
titanic.loc[titanic.Embarked.isin(['S']), 'Survived'].sum()

# Q5. 미혼 여성중에 나이를 모르는 사람의 수는?
titanic.loc[titanic.Name.str.contains('Miss.'), 'Age'].isnull() #.sum()

Matplotlib & Seaborn

Matplotlib는 데이터 시각화를 위한 라이브러리로 다양한 그래프를 그릴 수 있게 해주며 Seaborn은 Matplotlib을 기반으로 다양한 시각화 기능을 제공하는 라이브러리로 Matplotlib보다 간단하게 사용할 수 있다.


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

AiLab 카테고리 내 다른 글 보러가기

댓글 남기기