내일배움캠프_QAQC 트랙 1기/강의 요약

[내일배움캠프] 데이터 분석 종합반 2주차

hyewonnnn 2024. 12. 17. 11:35

[ 수업 목표 ]

  1. 데이터 분석을 위한 Python 기초 문법에 익숙해질 수 있다
  2. Pandas의 사용법을 익힌다
  3. 데이터 분석 시각화에 필요한 matplolib의 사용법을 익힌다

[ 데이터 분석 종합반 커리큘럼 ]

 

[ 참고 ] 구글링 하는 꿀팁!

       1. 구글을 사용하자 : 구글링이 괜히 구글링이 아니겠죠!
                                       다른 사이트보다 많은 정보를 찾을 수 있습니다.

       2. 특수기호를 잘 활용하자 : " 검색어 + 특정기술 " 형태로 검색해보세요
                                                 뒷부분의 특정기술 부분이 반드시 포함되어야 하므로
                                                  원하는 내용을 찾기가 쉽습니다!
                                                  ( 반대로 - 기호를 넣으면 해당 내용은 제거됩니다)

      3. 영어로 검색하자 : 코딩 관련 영어 커뮤니티가 더 많다보니
                                     영어로 검색하는 것이 더 확실한 데이터를 얻을 수 있습니다.

 

 구글 Colab

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

    ( 1 ) 내 컴퓨터에 파이썬을 설치 할 필요 없고

   ( 2 ) 인터넷만 되면 어디서든 접근 가능하고

   ( 3 ) 내 컴퓨터보다 빠르답니다!

[ 알아두기 ]

  Google Colab은 무료로 제공되는 만큼, 아래 ' 사용 제한 '이 있어요

   = > 연속 연결 시간 최대 90분, 하루 이용 제한 12시간

 

[ python 기본 문법 ]

  • pandas에서 엑셀 파일 여는 방법
 titanic = pd.read_table('파일경로', 'sep = ',')

 

1 ) 변수

   - 변수란?   데이터를 담는 컨테이너

    특정한 이름이 있는 상자에 원하넨 데이터를 담아 두었다가, 

    그 이름만 부르면 데이터를 호출 할 수 있습니다

 

 2 ) 기본 사칙 연산 가능

 

 3 ) 리스트와 딕셔너리

  •  리스트는 순서가 있는 데이터들의 모음집

[ 변수를 하나하나 지정 ]                                             [ 리스트의 경우 ]

   student_1 = "김철수"                                                

   student_2 = "김영희"                                                    student_list = ["김철수", "김영희", "오영상", ... , "주은비"]

   student_3 = "오영상"

    . . .

   student_100 = "주은비"

 

    (1) 리스트 사용법

  • 리스트 선언하기

    리스트는 "대괄호"를 사용하여 작성합니다.

    리스트 = [데이터, 데이터, 데이터, ... ]

    a_list = [1, 2, 3, 4, 5]

    b_list = [1, 2, 'hey', 'world']

 

  • 리스트 데이터 호출하기

    b_list[1] => 2를 출력

    b_list[2] = > hey를 출력

 

 리스트 안의 데이터들의 번호, 즉 순서를 뜻합니다

  - 학생들의 번호를 리스트에는 디폴트로 정하고 가는 것
  - 순서를 불러주면 순서에 해당하는 데이터를 가져올 수 있음

 * 리스트 순서는 1이 아니라, 0부터 시작한다는 점 잊지 마세요!

 

  •  딕셔너리는 "이름"과 "이름에 해당하는 값"이 쌍으로 이뤄진 데이터들의 모음집

[ 변수를 하나하나 지정 ]                                             [ 딕셔너리의 경우 ]

   김철수_height = 182                                          

   김철수_weight = 68                                                    김철수 = {'height' : 183, 'weight' : 68, ...}

   김철수_eyesight = 2.0

    . . .

   김철수_room  = "room100"

 

 ( 2 ) 딕셔너리 사용법

  • 딕셔너리 선언하기

    딕셔너리는 "중괄호"를 사용하여 작성합니다.

    딕셔너리 = {키 : 벨류, 키 : 벨류, 키 : 벨류, ...}

    student_age = {'Jack' : 32, 'Ritika' : 31, 'Mark' : 22, 'Mathew' : 27}

 

  • 딕셔너리 값 호출하기

    student_age['Jack']  => 32를 출력

 

[ 주제 ] 

파이썬으로 타이타닉 사망자의 비밀 파헤치기

 

1. 상관관계 분석을 위한 Pandas

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

          import pandas as pd

 

 (2) 데이터 가져오기

          titanic = pd.read_table('파일경로', sep=',')

 

 (3) 표 읽기 및 데이터 확인

          titanic.head(n)     

      # 데이터의 처음 n 줄의 데이터를 출력합니다

      # 아무 입력이 없을 경우 5줄을 기본으로 출력합니다

 

 (4) 공백란 제거하기

    #1. Null(공백) 데이터 파악하기

           print(titanic.isnull().sum())

 

    #2. 공백 데이터 제거하기

           titanic = titanic.dropma()

 

2. 상관관계 분석

 (1) 상관계수 구하기

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

 

 (2) 결과 확인하기

          corr

 

 (3) 상관계수 Survived 요소가 1(최대)이 아닌 수만 불러오기

  -> 생존률과 생존률의 상관관계를 굳이 확인할 필요는 없으므로

           corr = corr[corr.Survived !=1]

 

3. matplotlib을 이용하여 분석 결과 시각화하기

 (1) matplotlib 사용 선언하기

           import matplotlib.pyplot as plt

 

 (2) 그래프 그리기

           corr.plot()

                           -> Passengerld 부터 Survived 까지 모든 데이터의 상관계수 그래프

(3) 그래프로 사용할 부분만 남기기

   - 그래프로 나타낼 열 지정하기

            corr['Survived'].plot()

   - 필요없는 행 삭제하기

            corr = corr.drop(['PassengerID'], axis = 'rows')

            corr['Sorvived'].plot()

 

 (4) 원하는 그래프로 변경하기

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

 

 

[ 전체 코드 ] 

import pandas as pd
import matplotlib.pyplot as plt
titanic = pd.read_table('train.csv', sep = ',')

# 1. Null(공백) 데이터 파악하기
 print(titanic.isnull().sum()

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

# 상관계수 구하기
 corr = titanic.corr(method='pearson')

# survived 1인 요소 제외하기
 corr = corr[corr.Survived !=1]

# passengerId 열 삭제하기
 corr = corr.drop(['PassengerId'], axis = 'rows')

# 생존율 상관관계 바 그래프 생성하기
 corr['survived'].plot.bar()

# x축 레이블 45도 회전하기
 plt.xticks(rotation=45)

 


 

[ 2주차 숙제 ]

 

지난 주 진행하였던 파마 인디언 당뇨병 데이터 세트를 "Pandas"와 "matplotlib"을 이용하여 상관관계 분석을 진행해봅시다.

 

- 전체 코드

import pandas as pd

diabetes = pd.read_table('/content/diabetes (1).csv',sep=',')
diabetes.head()

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

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

corr

corr = corr[corr.Outcome !=1]

corr

import matplotlib.pyplot as plt

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

 

시각화 자료

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