25.05.19 코딩 공부 시작

코딩 척척석박사 분들 피드백 환영합니다.

공대생이 코딩에서 살아남기

강의자료/데이터 분석 종합반

2강. (05.19)

코딩 아가 2025. 5. 20. 10:11

파이썬 문법 주의사항

  1. 구글 사용
  2. 특수기호를 잘 활용하: "검색어 + 특정기술",  "검색어 - 특정기술"
  3. 영어로 검색

Colab으로 파이썬과 친해지기

Colab이란?

온라인에서 파이썬 데이터 분석을 학습할 수 있는 환경을 구글에서 제공

파이썬 문법

변수란?

  • 데이터를 담는 컨테이너
  • 원하는 데이터를 쉽게 찾아 사용 가능 
  • 변수 선언하기: 원하는 변수 이름 = 변수에 넣을 데이터
  • 변수 호출하기: print(변수이름)

리스트란?

  • 하나하나 변수 지정을 하기에는 관리에 어려움이 있어서 리스트 사용
  • 순서를 기억하여 저장
  • 인덱스(데이터들의 번호, 순서0: 0부터 시작

변수이름_list = [데이터0, 데이터1, ...]

딕셔너리란?

  • ”이름”과 “이름에 해당하는 값”이 쌍으로 이뤄진 데이터들의 모음집
  • 각 변수이름에 데이터를 붙여 기억하여 저장

딕셔너 = {'변수이름0' : 데이터0, '변수이름1' : 데이터1, ... }

Pandas로 데이터 분석

1) Pandas 라이브러리 사용 선언하기

import pandas as pd

2) 데이터 가져오기

titanic = pd.read_table('train.csv',sep=',')

3) 데이터 확인 및 표 읽기

titanic.head(100)     #데이터 제대로 들어갔는지 확인기(생략가능)

print(titanic.isnull().sum())     #Null(공백) 데이터 파악하기(생략가능)

4) 공백 데이터 제거하기

titanic = titanic.dropna()     #공백 데이터 제거하기

print(titanic.isnull().sum())     #다시 Null(공백) 데이터 파악하기(생략가능)

5) 데이터 분석하기(상관관계)

#피어슨 상관계수란? 결정계수(r제곱)로 계산하며 X로부터 Y예측 가능

corr=titanic.corr(method='pearson')

corr     #(생략가능)

corr = corr[corr.Survived !=1] #생존과 생존의 상관관계=1

corr

Matplotlib로 시각화 하기

1) Matplotlib 사용 선언하기

import matplotlib.pyplot as plt

2) 상관계수 그래프 그리기

corr.plot()

corr['Survived'].plot()     #생존률과의 상관관계

corr = corr.drop(['PassengerId'], axis ='rows')     #필요없는 정보 삭제

corr['Survived'].plot()

corr['Survived'].plot.bar()     #막대그래프로 변경하기

[한 걸음 더]나이대별로 생존율과의 관계 정확히 파해쳐보기

import pandas as pd

import matplotlib.pyplot as plt

#Numpy란? 데이터 연산을 도와주는 라이브러리

import numpy as np         

#Seaborn이란? Matplotlib보다 다양한 그래프로 시각화 가능

import seaborn as sns

 

titanic = pd.read_table('train.csv',sep=',')

titanic = titanic.dropna()

#데이터 요약하기: 총 데이터수, 평균, 표준편차 등 보기 가능

titanic.describe()

#hist(): 나이별로 히스토그램 구하기 titanic['Age'].hist(bins=40,figsize=(18,8),grid=True

#or

#나이별 구분 및 각 나이별 생존율 확인 하기

titanic['Age_cat'] = pd.cut(titanic['Age'],bins=[0,3,7,15,30,60,100],include_lowest=True,labels=['baby','children','teenage','young','adult','old'])

#groupby(): 그룹 묶기 / mean(): 평균값 구하기

titanic.groupby('Age_cat').mean()

 

#그래프 크기 설정

plt.figure(figsize=(14,5))

#바 그래프 그리기(x축 = Age_cat, y축 = Survived)

sns.barplot(x='Age_cat',y='Survived',data=titanic) 

#그래프 나타내기

plt.show()

결론: baby와 children 생존률이 다른 나이대보다 높은 것을 확인할 수 있다

숙제

MISSION: 피마 인디언 당뇨병 데이터 세트를 이용해 당뇨병 발생에 가장 많이 영향을 미치는 요소를 찾기

1) 문제 정의 및 가설 설정하기

당뇨병 발병에 가장 큰 영향을 미치는 요소는 글루코스(혈당) 수치이다.

2) 데이터 분석 기본 세팅 하기 + 분석하기

import pandas as pd


diabetes = pd.read_table('diabetes.csv',sep=',')

diabetes.head()


diabetes = diabetes.dropna()

print(diabetes.isnull().sum())


corr=diabetes.corr(method='pearson')

corr = corr[corr.Outcome !=1]

corr

3) 분석 결과 시각화 하기

import matplotlib.pyplot as plt

corr['Outcome'].plot()

corr['Outcome'].plot.bar()

4) 최종 결론 내리기

데이터 분석 결과, 당뇨병 발병에 가장 큰 영향을 미치는 요소는 “ Glucose “ 입니다.

가설이 옳습니다.

학습하면서 겪었던 문제점이나 에러

  1. [한 걸음 더]부분에서 새로운 용어들이 많이 나와 이해하는데 약간의 어려움이있었다.
 

'강의자료 > 데이터 분석 종합반' 카테고리의 다른 글

5강. (05.22) <히트맵, cut>  (2) 2025.05.22
4강. (05.21)  (0) 2025.05.21
3강. (05.20)  (6) 2025.05.20
1강. (05.19)  (1) 2025.05.19